@spark-ui/components 16.2.2 → 17.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/dist/{Button-DPncfbbM.mjs → Button-1M9DcZl0.mjs} +25 -79
  2. package/dist/Button-1M9DcZl0.mjs.map +1 -0
  3. package/dist/Button-FZceRWG2.js +2 -0
  4. package/dist/Button-FZceRWG2.js.map +1 -0
  5. package/dist/{Icon-C23-htlD.mjs → Icon-BO327oHU.mjs} +8 -9
  6. package/dist/Icon-BO327oHU.mjs.map +1 -0
  7. package/dist/Icon-C-cNTnzd.js +2 -0
  8. package/dist/Icon-C-cNTnzd.js.map +1 -0
  9. package/dist/{IconButton-D3g86WpZ.js → IconButton-BR1bJSQA.js} +2 -2
  10. package/dist/{IconButton-D3g86WpZ.js.map → IconButton-BR1bJSQA.js.map} +1 -1
  11. package/dist/{IconButton-Bfd-6BAD.mjs → IconButton-DdB3Pq13.mjs} +2 -2
  12. package/dist/{IconButton-Bfd-6BAD.mjs.map → IconButton-DdB3Pq13.mjs.map} +1 -1
  13. package/dist/Spinner-Br4Rp9V2.js +2 -0
  14. package/dist/Spinner-Br4Rp9V2.js.map +1 -0
  15. package/dist/{Spinner-aLrtE2JN.mjs → Spinner-Co3AjkQV.mjs} +7 -8
  16. package/dist/Spinner-Co3AjkQV.mjs.map +1 -0
  17. package/dist/TextLink-5MvP0P8D.js +2 -0
  18. package/dist/TextLink-5MvP0P8D.js.map +1 -0
  19. package/dist/{TextLink-D7mOCjY_.mjs → TextLink-Cc_LeVcx.mjs} +10 -11
  20. package/dist/TextLink-Cc_LeVcx.mjs.map +1 -0
  21. package/dist/accordion/index.js +1 -1
  22. package/dist/accordion/index.mjs +1 -1
  23. package/dist/avatar/index.js +1 -1
  24. package/dist/avatar/index.mjs +2 -2
  25. package/dist/badge/BadgeItem.styles.d.ts +1 -1
  26. package/dist/badge/index.js +1 -1
  27. package/dist/badge/index.js.map +1 -1
  28. package/dist/badge/index.mjs +10 -11
  29. package/dist/badge/index.mjs.map +1 -1
  30. package/dist/breadcrumb/index.js +1 -1
  31. package/dist/breadcrumb/index.mjs +2 -2
  32. package/dist/button/Button.styles.d.ts +1 -1
  33. package/dist/button/index.js +1 -1
  34. package/dist/button/index.mjs +1 -1
  35. package/dist/button/variants/contrast.d.ts +0 -4
  36. package/dist/button/variants/filled.d.ts +0 -4
  37. package/dist/button/variants/ghost.d.ts +0 -4
  38. package/dist/button/variants/outlined.d.ts +0 -4
  39. package/dist/button/variants/tinted.d.ts +0 -4
  40. package/dist/card/Backdrop.d.ts +1 -1
  41. package/dist/card/Card.styles.d.ts +1 -1
  42. package/dist/card/Content.styles.d.ts +1 -1
  43. package/dist/card/index.js +1 -1
  44. package/dist/card/index.js.map +1 -1
  45. package/dist/card/index.mjs +12 -31
  46. package/dist/card/index.mjs.map +1 -1
  47. package/dist/carousel/CarouselPageIndicator.d.ts +1 -1
  48. package/dist/carousel/index.js +1 -1
  49. package/dist/carousel/index.js.map +1 -1
  50. package/dist/carousel/index.mjs +29 -29
  51. package/dist/carousel/index.mjs.map +1 -1
  52. package/dist/checkbox/CheckboxInput.styles.d.ts +1 -1
  53. package/dist/checkbox/index.js +1 -1
  54. package/dist/checkbox/index.js.map +1 -1
  55. package/dist/checkbox/index.mjs +26 -33
  56. package/dist/checkbox/index.mjs.map +1 -1
  57. package/dist/chip/Chip.styles.d.ts +1 -1
  58. package/dist/chip/index.js +1 -1
  59. package/dist/chip/index.js.map +1 -1
  60. package/dist/chip/index.mjs +33 -68
  61. package/dist/chip/index.mjs.map +1 -1
  62. package/dist/chip/variants/dashed.d.ts +0 -4
  63. package/dist/chip/variants/outlined.d.ts +0 -4
  64. package/dist/chip/variants/tinted.d.ts +0 -4
  65. package/dist/combobox/index.js +1 -1
  66. package/dist/combobox/index.mjs +3 -3
  67. package/dist/dialog/index.js +1 -1
  68. package/dist/dialog/index.mjs +2 -2
  69. package/dist/drawer/index.js +1 -1
  70. package/dist/drawer/index.mjs +2 -2
  71. package/dist/dropdown/index.js +1 -1
  72. package/dist/dropdown/index.mjs +1 -1
  73. package/dist/file-upload/index.js +1 -1
  74. package/dist/file-upload/index.js.map +1 -1
  75. package/dist/file-upload/index.mjs +4 -4
  76. package/dist/file-upload/index.mjs.map +1 -1
  77. package/dist/form-field/index.js +1 -1
  78. package/dist/form-field/index.mjs +1 -1
  79. package/dist/icon/Icon.styles.d.ts +1 -1
  80. package/dist/icon/index.js +1 -1
  81. package/dist/icon/index.mjs +1 -1
  82. package/dist/icon-button/index.js +1 -1
  83. package/dist/icon-button/index.mjs +1 -1
  84. package/dist/input/index.js +1 -1
  85. package/dist/input/index.mjs +1 -1
  86. package/dist/pagination/index.js +1 -1
  87. package/dist/pagination/index.mjs +3 -3
  88. package/dist/popover/PopoverContent.styles.d.ts +1 -1
  89. package/dist/popover/PopoverContext.d.ts +1 -1
  90. package/dist/popover/index.js +1 -1
  91. package/dist/popover/index.js.map +1 -1
  92. package/dist/popover/index.mjs +33 -35
  93. package/dist/popover/index.mjs.map +1 -1
  94. package/dist/progress/ProgressIndicator.d.ts +1 -1
  95. package/dist/progress/index.js +1 -1
  96. package/dist/progress/index.js.map +1 -1
  97. package/dist/progress/index.mjs +42 -43
  98. package/dist/progress/index.mjs.map +1 -1
  99. package/dist/progress-tracker/ProgressTrackerStep.styles.d.ts +1 -1
  100. package/dist/progress-tracker/ProgressTrackerStepIndicator.styles.d.ts +1 -1
  101. package/dist/progress-tracker/index.js +1 -1
  102. package/dist/progress-tracker/index.js.map +1 -1
  103. package/dist/progress-tracker/index.mjs +38 -38
  104. package/dist/progress-tracker/index.mjs.map +1 -1
  105. package/dist/radio-group/RadioIndicator.styles.d.ts +1 -1
  106. package/dist/radio-group/RadioInput.styles.d.ts +1 -1
  107. package/dist/radio-group/index.js +1 -1
  108. package/dist/radio-group/index.js.map +1 -1
  109. package/dist/radio-group/index.mjs +47 -53
  110. package/dist/radio-group/index.mjs.map +1 -1
  111. package/dist/rating/index.js +1 -1
  112. package/dist/rating/index.mjs +1 -1
  113. package/dist/rating-display/index.js +1 -1
  114. package/dist/rating-display/index.mjs +1 -1
  115. package/dist/scrolling-list/index.js +1 -1
  116. package/dist/scrolling-list/index.mjs +3 -3
  117. package/dist/segmented-gauge/SegmentedGauge.d.ts +1 -1
  118. package/dist/segmented-gauge/SegmentedGaugeContext.d.ts +1 -1
  119. package/dist/segmented-gauge/index.js +1 -1
  120. package/dist/segmented-gauge/index.js.map +1 -1
  121. package/dist/segmented-gauge/index.mjs +14 -16
  122. package/dist/segmented-gauge/index.mjs.map +1 -1
  123. package/dist/select/index.js +1 -1
  124. package/dist/select/index.mjs +1 -1
  125. package/dist/slider/SliderThumb.styles.d.ts +1 -1
  126. package/dist/slider/SliderTrack.styles.d.ts +1 -1
  127. package/dist/slider/index.js +1 -1
  128. package/dist/slider/index.js.map +1 -1
  129. package/dist/slider/index.mjs +3 -5
  130. package/dist/slider/index.mjs.map +1 -1
  131. package/dist/snackbar/SnackbarItem.styles.d.ts +1 -1
  132. package/dist/snackbar/index.js +1 -1
  133. package/dist/snackbar/index.js.map +1 -1
  134. package/dist/snackbar/index.mjs +24 -35
  135. package/dist/snackbar/index.mjs.map +1 -1
  136. package/dist/snackbar/snackbarVariants.d.ts +0 -8
  137. package/dist/spinner/Spinner.styles.d.ts +1 -1
  138. package/dist/spinner/index.js +1 -1
  139. package/dist/spinner/index.mjs +1 -1
  140. package/dist/stepper/index.js +1 -1
  141. package/dist/stepper/index.mjs +2 -2
  142. package/dist/switch/SwitchInput.d.ts +7 -5
  143. package/dist/switch/SwitchInput.styles.d.ts +1 -1
  144. package/dist/switch/index.js +1 -1
  145. package/dist/switch/index.js.map +1 -1
  146. package/dist/switch/index.mjs +80 -91
  147. package/dist/switch/index.mjs.map +1 -1
  148. package/dist/tabs/TabsTrigger.styles.d.ts +1 -1
  149. package/dist/tabs/index.js +1 -1
  150. package/dist/tabs/index.js.map +1 -1
  151. package/dist/tabs/index.mjs +20 -21
  152. package/dist/tabs/index.mjs.map +1 -1
  153. package/dist/tag/Tag.styles.d.ts +1 -1
  154. package/dist/tag/index.js +1 -1
  155. package/dist/tag/index.js.map +1 -1
  156. package/dist/tag/index.mjs +15 -31
  157. package/dist/tag/index.mjs.map +1 -1
  158. package/dist/tag/variants/filled.d.ts +0 -4
  159. package/dist/tag/variants/outlined.d.ts +0 -4
  160. package/dist/tag/variants/tinted.d.ts +0 -4
  161. package/dist/text-link/TextLink.d.ts +1 -1
  162. package/dist/text-link/index.js +1 -1
  163. package/dist/text-link/index.mjs +1 -1
  164. package/dist/toast/Toast.styles.d.ts +1 -1
  165. package/dist/toast/index.js +1 -1
  166. package/dist/toast/index.js.map +1 -1
  167. package/dist/toast/index.mjs +25 -37
  168. package/dist/toast/index.mjs.map +1 -1
  169. package/dist/toast/types.d.ts +1 -1
  170. package/package.json +4 -4
  171. package/dist/Button-B6rA3-e5.js +0 -2
  172. package/dist/Button-B6rA3-e5.js.map +0 -1
  173. package/dist/Button-DPncfbbM.mjs.map +0 -1
  174. package/dist/Icon-C23-htlD.mjs.map +0 -1
  175. package/dist/Icon-CF0W0LKr.js +0 -2
  176. package/dist/Icon-CF0W0LKr.js.map +0 -1
  177. package/dist/Spinner-_Kffli3B.js +0 -2
  178. package/dist/Spinner-_Kffli3B.js.map +0 -1
  179. package/dist/Spinner-aLrtE2JN.mjs.map +0 -1
  180. package/dist/TextLink-C3xDLsbC.js +0 -2
  181. package/dist/TextLink-C3xDLsbC.js.map +0 -1
  182. package/dist/TextLink-D7mOCjY_.mjs.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),i=require("radix-ui"),c=require("react"),l=require("class-variance-authority"),V=require("@spark-ui/icons/Close"),E=require("../Icon-CF0W0LKr.js"),S=require("../IconButton-D3g86WpZ.js"),y=c.createContext(null),W=":popover",$=({children:e,intent:o})=>{const[r,t]=c.useState(null);return a.jsx(y.Provider,{value:{headerId:r,setHeaderId:t,intent:o},children:e})},u=()=>{const e=c.useContext(y);if(!e)throw Error("usePopover must be used within a Popover provider");return e},N=({children:e,intent:o="surface",modal:r=!1,...t})=>a.jsx($,{intent:o,children:a.jsx(i.Popover.Root,{"data-spark-component":"popover",modal:r,...t,children:e})});N.displayName="Popover";const v=({asChild:e=!1,children:o,ref:r,...t})=>a.jsx(i.Popover.Anchor,{"data-spark-component":"popover-anchor",ref:r,asChild:e,...t,children:o});v.displayName="Popover.Anchor";const f=({asChild:e=!1,width:o=16,height:r=8,className:t,ref:n,...s})=>{const{intent:p}=u(),d=l.cva("visible",{variants:{intent:{surface:"fill-surface",main:"fill-main-container",support:"fill-support-container",accent:"fill-accent-container",basic:"fill-basic-container",success:"fill-success-container",alert:"fill-alert-container",danger:"fill-error-container",info:"fill-info-container",neutral:"fill-neutral-container"}},defaultVariants:{intent:"surface"}});return a.jsx(i.Popover.Arrow,{"data-spark-component":"popover-arrow",ref:n,className:d({intent:p,className:t}),asChild:e,width:o,height:r,...s})};f.displayName="Popover.Arrow";const m=({"aria-label":e,className:o,ref:r,...t})=>a.jsx(i.Popover.Close,{"data-spark-component":"popover-close-button",ref:r,className:l.cx("right-lg top-md absolute",o),asChild:!0,...t,children:a.jsx(S.IconButton,{size:"sm",intent:"neutral",design:"ghost","aria-label":e,children:a.jsx(E.Icon,{children:a.jsx(V.Close,{})})})});m.displayName="Popover.CloseButton";const O=l.cva(["rounded-md","shadow-sm","focus-visible:outline-hidden focus-visible:u-outline","max-h-(--radix-popper-available-height) overflow-y-auto"],{variants:{intent:{surface:"bg-surface text-on-surface",main:"bg-main-container text-on-main-container",support:"bg-support-container text-on-support-container",accent:"bg-accent-container text-on-accent-container",basic:"bg-basic-container text-on-basic-container",success:"bg-success-container text-on-success-container",alert:"bg-alert-container text-on-alert-container",danger:"bg-error-container text-on-error-container",info:"bg-info-container text-on-info-container",neutral:"bg-neutral-container text-on-neutral-container"},matchTriggerWidth:{true:"w-(--radix-popper-anchor-width)"},enforceBoundaries:{true:["max-w-(--radix-popper-available-width)"]},inset:{true:"overflow-hidden",false:"p-lg"},elevation:{dropdown:"z-dropdown",popover:"z-popover"}},compoundVariants:[{inset:!1,class:"has-data-[spark-component=popover-close-button]:pr-3xl"},{enforceBoundaries:!1,matchTriggerWidth:!1,class:"max-w-[min(var(--spacing-sz-384),100vw)]"}],defaultVariants:{matchTriggerWidth:!1,enforceBoundaries:!1,inset:!1,intent:"surface",elevation:"popover"}}),x=({className:e,children:o,matchTriggerWidth:r=!1,align:t="center",arrowPadding:n=16,asChild:s=!1,avoidCollisions:p=!0,"aria-labelledby":d,collisionBoundary:b,collisionPadding:j=0,hideWhenDetached:C=!1,side:I="bottom",sideOffset:A=8,sticky:B="partial",inset:T=!1,elevation:k="popover",ref:q,...H})=>{const{headerId:z,intent:R}=u();return a.jsx(i.Popover.Content,{"aria-labelledby":z||d,className:O({enforceBoundaries:!!b,matchTriggerWidth:r,inset:T,elevation:k,intent:R,className:e}),"data-spark-component":"popover-content",ref:q,align:t,arrowPadding:n,asChild:s,avoidCollisions:p,collisionBoundary:b,collisionPadding:j,hideWhenDetached:C,side:I,sideOffset:A,sticky:B,...H,children:o})};x.displayName="Popover.Content";const P=({children:e,className:o,ref:r,...t})=>{const n=`${W}-header-${c.useId()}`,{setHeaderId:s}=u();return c.useLayoutEffect(()=>(s(n),()=>s(null)),[n,s]),a.jsx("header",{id:n,ref:r,className:l.cx("mb-md text-headline-2",o),...t,children:e})};P.displayName="Popover.Header";const g=({children:e,...o})=>a.jsx(i.Popover.Portal,{...o,children:e});g.displayName="Popover.Portal";const h=({asChild:e=!1,children:o,ref:r,...t})=>a.jsx(i.Popover.Trigger,{"data-spark-component":"popover-trigger",ref:r,asChild:e,...t,children:o});h.displayName="Popover.Trigger";const w=Object.assign(N,{Anchor:v,Arrow:f,CloseButton:m,Content:x,Header:P,Portal:g,Trigger:h});w.displayName="Popover";v.displayName="Popover.Anchor";f.displayName="Popover.Arrow";m.displayName="Popover.CloseButton";x.displayName="Popover.Content";P.displayName="Popover.Header";g.displayName="Popover.Portal";h.displayName="Popover.Trigger";exports.Popover=w;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),i=require("radix-ui"),c=require("react"),l=require("class-variance-authority"),V=require("@spark-ui/icons/Close"),E=require("../Icon-C-cNTnzd.js"),S=require("../IconButton-BR1bJSQA.js"),y=c.createContext(null),W=":popover",$=({children:e,intent:o})=>{const[r,t]=c.useState(null);return a.jsx(y.Provider,{value:{headerId:r,setHeaderId:t,intent:o},children:e})},u=()=>{const e=c.useContext(y);if(!e)throw Error("usePopover must be used within a Popover provider");return e},N=({children:e,intent:o="surface",modal:r=!1,...t})=>a.jsx($,{intent:o,children:a.jsx(i.Popover.Root,{"data-spark-component":"popover",modal:r,...t,children:e})});N.displayName="Popover";const v=({asChild:e=!1,children:o,ref:r,...t})=>a.jsx(i.Popover.Anchor,{"data-spark-component":"popover-anchor",ref:r,asChild:e,...t,children:o});v.displayName="Popover.Anchor";const f=({asChild:e=!1,width:o=16,height:r=8,className:t,ref:n,...s})=>{const{intent:p}=u(),d=l.cva("visible",{variants:{intent:{surface:"fill-surface",main:"fill-main-container",support:"fill-support-container",accent:"fill-accent-container",success:"fill-success-container",alert:"fill-alert-container",danger:"fill-error-container",info:"fill-info-container",neutral:"fill-neutral-container"}},defaultVariants:{intent:"surface"}});return a.jsx(i.Popover.Arrow,{"data-spark-component":"popover-arrow",ref:n,className:d({intent:p,className:t}),asChild:e,width:o,height:r,...s})};f.displayName="Popover.Arrow";const m=({"aria-label":e,className:o,ref:r,...t})=>a.jsx(i.Popover.Close,{"data-spark-component":"popover-close-button",ref:r,className:l.cx("right-lg top-md absolute",o),asChild:!0,...t,children:a.jsx(S.IconButton,{size:"sm",intent:"neutral",design:"ghost","aria-label":e,children:a.jsx(E.Icon,{children:a.jsx(V.Close,{})})})});m.displayName="Popover.CloseButton";const O=l.cva(["rounded-md","shadow-sm","focus-visible:outline-hidden focus-visible:u-outline","max-h-(--radix-popper-available-height) overflow-y-auto"],{variants:{intent:{surface:"bg-surface text-on-surface",main:"bg-main-container text-on-main-container",support:"bg-support-container text-on-support-container",accent:"bg-accent-container text-on-accent-container",success:"bg-success-container text-on-success-container",alert:"bg-alert-container text-on-alert-container",danger:"bg-error-container text-on-error-container",info:"bg-info-container text-on-info-container",neutral:"bg-neutral-container text-on-neutral-container"},matchTriggerWidth:{true:"w-(--radix-popper-anchor-width)"},enforceBoundaries:{true:["max-w-(--radix-popper-available-width)"]},inset:{true:"overflow-hidden",false:"p-lg"},elevation:{dropdown:"z-dropdown",popover:"z-popover"}},compoundVariants:[{inset:!1,class:"has-data-[spark-component=popover-close-button]:pr-3xl"},{enforceBoundaries:!1,matchTriggerWidth:!1,class:"max-w-[min(var(--spacing-sz-384),100vw)]"}],defaultVariants:{matchTriggerWidth:!1,enforceBoundaries:!1,inset:!1,intent:"surface",elevation:"popover"}}),P=({className:e,children:o,matchTriggerWidth:r=!1,align:t="center",arrowPadding:n=16,asChild:s=!1,avoidCollisions:p=!0,"aria-labelledby":d,collisionBoundary:b,collisionPadding:j=0,hideWhenDetached:C=!1,side:I="bottom",sideOffset:A=8,sticky:B="partial",inset:T=!1,elevation:k="popover",ref:q,...H})=>{const{headerId:z,intent:R}=u();return a.jsx(i.Popover.Content,{"aria-labelledby":z||d,className:O({enforceBoundaries:!!b,matchTriggerWidth:r,inset:T,elevation:k,intent:R,className:e}),"data-spark-component":"popover-content",ref:q,align:t,arrowPadding:n,asChild:s,avoidCollisions:p,collisionBoundary:b,collisionPadding:j,hideWhenDetached:C,side:I,sideOffset:A,sticky:B,...H,children:o})};P.displayName="Popover.Content";const x=({children:e,className:o,ref:r,...t})=>{const n=`${W}-header-${c.useId()}`,{setHeaderId:s}=u();return c.useLayoutEffect(()=>(s(n),()=>s(null)),[n,s]),a.jsx("header",{id:n,ref:r,className:l.cx("mb-md text-headline-2",o),...t,children:e})};x.displayName="Popover.Header";const g=({children:e,...o})=>a.jsx(i.Popover.Portal,{...o,children:e});g.displayName="Popover.Portal";const h=({asChild:e=!1,children:o,ref:r,...t})=>a.jsx(i.Popover.Trigger,{"data-spark-component":"popover-trigger",ref:r,asChild:e,...t,children:o});h.displayName="Popover.Trigger";const w=Object.assign(N,{Anchor:v,Arrow:f,CloseButton:m,Content:P,Header:x,Portal:g,Trigger:h});w.displayName="Popover";v.displayName="Popover.Anchor";f.displayName="Popover.Arrow";m.displayName="Popover.CloseButton";P.displayName="Popover.Content";x.displayName="Popover.Header";g.displayName="Popover.Portal";h.displayName="Popover.Trigger";exports.Popover=w;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/popover/PopoverContext.tsx","../../src/popover/Popover.tsx","../../src/popover/PopoverAnchor.tsx","../../src/popover/PopoverArrow.tsx","../../src/popover/PopoverCloseButton.tsx","../../src/popover/PopoverContent.styles.ts","../../src/popover/PopoverContent.tsx","../../src/popover/PopoverHeader.tsx","../../src/popover/PopoverPortal.tsx","../../src/popover/PopoverTrigger.tsx","../../src/popover/index.ts"],"sourcesContent":["import { createContext, type ReactNode, useContext, useState } from 'react'\n\ntype HeaderId = string | null\n\nexport type PopoverIntent =\n | 'surface'\n | 'main'\n | 'support'\n | 'accent'\n | 'basic'\n | 'success'\n | 'alert'\n | 'danger'\n | 'info'\n | 'neutral'\nexport interface PopoverContextState {\n headerId: HeaderId\n setHeaderId: (id: HeaderId) => void\n intent: PopoverIntent\n}\n\nconst PopoverContext = createContext<PopoverContextState | null>(null)\n\nexport const ID_PREFIX = ':popover'\n\nexport const PopoverProvider = ({\n children,\n intent,\n}: {\n children: ReactNode\n intent: PopoverIntent\n}) => {\n const [headerId, setHeaderId] = useState<HeaderId>(null)\n\n return (\n <PopoverContext.Provider\n value={{\n headerId,\n setHeaderId,\n intent,\n }}\n >\n {children}\n </PopoverContext.Provider>\n )\n}\n\nexport const usePopover = () => {\n const context = useContext(PopoverContext)\n\n if (!context) {\n throw Error('usePopover must be used within a Popover provider')\n }\n\n return context\n}\n","import { Popover as RadixPopover } from 'radix-ui'\n\nimport { type PopoverIntent, PopoverProvider } from './PopoverContext'\n\nexport type PopoverProps = RadixPopover.PopoverProps & {\n intent?: PopoverIntent\n}\n\nexport const Popover = ({ children, intent = 'surface', modal = false, ...rest }: PopoverProps) => {\n return (\n <PopoverProvider intent={intent}>\n <RadixPopover.Root data-spark-component=\"popover\" modal={modal} {...rest}>\n {children}\n </RadixPopover.Root>\n </PopoverProvider>\n )\n}\n\nPopover.displayName = 'Popover'\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nexport type AnchorProps = RadixPopover.PopoverAnchorProps & {\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Anchor = ({ asChild = false, children, ref, ...rest }: AnchorProps) => (\n <RadixPopover.Anchor data-spark-component=\"popover-anchor\" ref={ref} asChild={asChild} {...rest}>\n {children}\n </RadixPopover.Anchor>\n)\n\nAnchor.displayName = 'Popover.Anchor'\n","import { cva } from 'class-variance-authority'\nimport { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nimport { usePopover } from './PopoverContext'\n\nexport type ArrowProps = RadixPopover.PopoverArrowProps & {\n ref?: Ref<SVGSVGElement>\n}\n\nexport const Arrow = ({\n asChild = false,\n width = 16,\n height = 8,\n className,\n ref,\n ...rest\n}: ArrowProps) => {\n const { intent } = usePopover()\n\n /**\n * This is necessary to override a Radix UI behaviour.\n * Radix hides the arrow when the Popover is too misaligned from its trigger element.\n */\n const styles = cva('visible', {\n variants: {\n intent: {\n surface: 'fill-surface',\n main: 'fill-main-container',\n support: 'fill-support-container',\n accent: 'fill-accent-container',\n basic: 'fill-basic-container',\n success: 'fill-success-container',\n alert: 'fill-alert-container',\n danger: 'fill-error-container',\n info: 'fill-info-container',\n neutral: 'fill-neutral-container',\n },\n },\n defaultVariants: {\n intent: 'surface',\n },\n })\n\n return (\n <RadixPopover.Arrow\n data-spark-component=\"popover-arrow\"\n ref={ref}\n className={styles({ intent, className })}\n asChild={asChild}\n width={width}\n height={height}\n {...rest}\n />\n )\n}\n\nArrow.displayName = 'Popover.Arrow'\n","import { Close as CloseSVG } from '@spark-ui/icons/Close'\nimport { cx } from 'class-variance-authority'\nimport { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { IconButton } from '../icon-button'\n\nexport type CloseButtonProps = RadixPopover.PopoverCloseProps & {\n 'aria-label': string\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const CloseButton = ({\n 'aria-label': ariaLabel,\n className,\n ref,\n ...rest\n}: CloseButtonProps) => {\n return (\n <RadixPopover.Close\n data-spark-component=\"popover-close-button\"\n ref={ref}\n className={cx('right-lg top-md absolute', className)}\n asChild\n {...rest}\n >\n <IconButton size=\"sm\" intent=\"neutral\" design=\"ghost\" aria-label={ariaLabel}>\n <Icon>\n <CloseSVG />\n </Icon>\n </IconButton>\n </RadixPopover.Close>\n )\n}\n\nCloseButton.displayName = 'Popover.CloseButton'\n","import { cva, VariantProps } from 'class-variance-authority'\n\nexport const styles = cva(\n [\n 'rounded-md',\n 'shadow-sm',\n 'focus-visible:outline-hidden focus-visible:u-outline',\n 'max-h-(--radix-popper-available-height) overflow-y-auto',\n ],\n {\n variants: {\n intent: {\n surface: 'bg-surface text-on-surface',\n main: 'bg-main-container text-on-main-container',\n support: 'bg-support-container text-on-support-container',\n accent: 'bg-accent-container text-on-accent-container',\n basic: 'bg-basic-container text-on-basic-container',\n success: 'bg-success-container text-on-success-container',\n alert: 'bg-alert-container text-on-alert-container',\n danger: 'bg-error-container text-on-error-container',\n info: 'bg-info-container text-on-info-container',\n neutral: 'bg-neutral-container text-on-neutral-container',\n },\n matchTriggerWidth: {\n true: 'w-(--radix-popper-anchor-width)',\n },\n enforceBoundaries: {\n true: ['max-w-(--radix-popper-available-width)'],\n },\n\n inset: {\n true: 'overflow-hidden',\n false: 'p-lg',\n },\n elevation: {\n dropdown: 'z-dropdown',\n popover: 'z-popover',\n },\n },\n compoundVariants: [\n {\n inset: false,\n /**\n * When there is a close button, padding to the right side must be adjusted to avoid content overlapping with it.\n */\n class: 'has-data-[spark-component=popover-close-button]:pr-3xl',\n },\n {\n enforceBoundaries: false,\n matchTriggerWidth: false,\n class: 'max-w-[min(var(--spacing-sz-384),100vw)]',\n },\n ],\n defaultVariants: {\n matchTriggerWidth: false,\n enforceBoundaries: false,\n inset: false,\n intent: 'surface',\n elevation: 'popover',\n },\n }\n)\n\nexport type StylesProps = VariantProps<typeof styles>\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nimport { styles, type StylesProps } from './PopoverContent.styles'\nimport { usePopover } from './PopoverContext'\n\nexport type ContentProps = RadixPopover.PopoverContentProps &\n StylesProps & {\n ref?: Ref<HTMLDivElement>\n }\n\nexport const Content = ({\n // Spark props\n className,\n children,\n matchTriggerWidth = false,\n // Radix props\n align = 'center',\n arrowPadding = 16, // In order not to overlap the arrow on the rounded corners of the popover.\n asChild = false,\n avoidCollisions = true,\n 'aria-labelledby': ariaLabelledBy,\n collisionBoundary,\n collisionPadding = 0,\n hideWhenDetached = false,\n side = 'bottom',\n sideOffset = 8,\n sticky = 'partial',\n inset = false,\n elevation = 'popover',\n ref,\n ...rest\n}: ContentProps) => {\n const { headerId, intent } = usePopover()\n\n return (\n <RadixPopover.Content\n aria-labelledby={headerId || ariaLabelledBy}\n className={styles({\n enforceBoundaries: !!collisionBoundary,\n matchTriggerWidth,\n inset,\n elevation,\n intent,\n className,\n })}\n data-spark-component=\"popover-content\"\n ref={ref}\n {...{\n align,\n arrowPadding,\n asChild,\n avoidCollisions,\n collisionBoundary,\n collisionPadding,\n hideWhenDetached,\n side,\n sideOffset,\n sticky,\n }}\n {...rest}\n >\n {children}\n </RadixPopover.Content>\n )\n}\n\nContent.displayName = 'Popover.Content'\n","import { cx } from 'class-variance-authority'\nimport { type ReactNode, Ref, useId, useLayoutEffect } from 'react'\n\nimport { ID_PREFIX, usePopover } from './PopoverContext'\n\nexport interface HeaderProps {\n children: ReactNode\n className?: string\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Header = ({ children, className, ref, ...rest }: HeaderProps) => {\n const id = `${ID_PREFIX}-header-${useId()}`\n const { setHeaderId } = usePopover()\n\n useLayoutEffect(() => {\n setHeaderId(id)\n\n return () => setHeaderId(null)\n }, [id, setHeaderId])\n\n return (\n <header id={id} ref={ref} className={cx('mb-md text-headline-2', className)} {...rest}>\n {children}\n </header>\n )\n}\n\nHeader.displayName = 'Popover.Header'\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { ReactElement } from 'react'\n\nexport type PortalProps = RadixPopover.PopoverPortalProps\n\nexport const Portal = ({ children, ...rest }: PortalProps): ReactElement => (\n <RadixPopover.Portal {...rest}>{children}</RadixPopover.Portal>\n)\n\nPortal.displayName = 'Popover.Portal'\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nexport type TriggerProps = RadixPopover.PopoverTriggerProps & {\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const Trigger = ({ asChild = false, children, ref, ...rest }: TriggerProps) => (\n <RadixPopover.Trigger\n data-spark-component=\"popover-trigger\"\n ref={ref}\n asChild={asChild}\n {...rest}\n >\n {children}\n </RadixPopover.Trigger>\n)\n\nTrigger.displayName = 'Popover.Trigger'\n","import { Popover as Root } from './Popover'\nimport { Anchor } from './PopoverAnchor'\nimport { Arrow } from './PopoverArrow'\nimport { CloseButton } from './PopoverCloseButton'\nimport { Content } from './PopoverContent'\nimport { Header } from './PopoverHeader'\nimport { Portal } from './PopoverPortal'\nimport { Trigger } from './PopoverTrigger'\n\nexport const Popover: typeof Root & {\n Anchor: typeof Anchor\n Arrow: typeof Arrow\n CloseButton: typeof CloseButton\n Content: typeof Content\n Header: typeof Header\n Portal: typeof Portal\n Trigger: typeof Trigger\n} = Object.assign(Root, {\n Anchor,\n Arrow,\n CloseButton,\n Content,\n Header,\n Portal,\n Trigger,\n})\n\nPopover.displayName = 'Popover'\nAnchor.displayName = 'Popover.Anchor'\nArrow.displayName = 'Popover.Arrow'\nCloseButton.displayName = 'Popover.CloseButton'\nContent.displayName = 'Popover.Content'\nHeader.displayName = 'Popover.Header'\nPortal.displayName = 'Popover.Portal'\nTrigger.displayName = 'Popover.Trigger'\n"],"names":["PopoverContext","createContext","ID_PREFIX","PopoverProvider","children","intent","headerId","setHeaderId","useState","jsx","usePopover","context","useContext","Popover","modal","rest","RadixPopover","Anchor","asChild","ref","Arrow","width","height","className","styles","cva","CloseButton","ariaLabel","cx","IconButton","Icon","CloseSVG","Content","matchTriggerWidth","align","arrowPadding","avoidCollisions","ariaLabelledBy","collisionBoundary","collisionPadding","hideWhenDetached","side","sideOffset","sticky","inset","elevation","Header","id","useId","useLayoutEffect","Portal","Trigger","Root"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/popover/PopoverContext.tsx","../../src/popover/Popover.tsx","../../src/popover/PopoverAnchor.tsx","../../src/popover/PopoverArrow.tsx","../../src/popover/PopoverCloseButton.tsx","../../src/popover/PopoverContent.styles.ts","../../src/popover/PopoverContent.tsx","../../src/popover/PopoverHeader.tsx","../../src/popover/PopoverPortal.tsx","../../src/popover/PopoverTrigger.tsx","../../src/popover/index.ts"],"sourcesContent":["import { createContext, type ReactNode, useContext, useState } from 'react'\n\ntype HeaderId = string | null\n\nexport type PopoverIntent =\n | 'surface'\n | 'main'\n | 'support'\n | 'accent'\n | 'success'\n | 'alert'\n | 'danger'\n | 'info'\n | 'neutral'\nexport interface PopoverContextState {\n headerId: HeaderId\n setHeaderId: (id: HeaderId) => void\n intent: PopoverIntent\n}\n\nconst PopoverContext = createContext<PopoverContextState | null>(null)\n\nexport const ID_PREFIX = ':popover'\n\nexport const PopoverProvider = ({\n children,\n intent,\n}: {\n children: ReactNode\n intent: PopoverIntent\n}) => {\n const [headerId, setHeaderId] = useState<HeaderId>(null)\n\n return (\n <PopoverContext.Provider\n value={{\n headerId,\n setHeaderId,\n intent,\n }}\n >\n {children}\n </PopoverContext.Provider>\n )\n}\n\nexport const usePopover = () => {\n const context = useContext(PopoverContext)\n\n if (!context) {\n throw Error('usePopover must be used within a Popover provider')\n }\n\n return context\n}\n","import { Popover as RadixPopover } from 'radix-ui'\n\nimport { type PopoverIntent, PopoverProvider } from './PopoverContext'\n\nexport type PopoverProps = RadixPopover.PopoverProps & {\n intent?: PopoverIntent\n}\n\nexport const Popover = ({ children, intent = 'surface', modal = false, ...rest }: PopoverProps) => {\n return (\n <PopoverProvider intent={intent}>\n <RadixPopover.Root data-spark-component=\"popover\" modal={modal} {...rest}>\n {children}\n </RadixPopover.Root>\n </PopoverProvider>\n )\n}\n\nPopover.displayName = 'Popover'\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nexport type AnchorProps = RadixPopover.PopoverAnchorProps & {\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Anchor = ({ asChild = false, children, ref, ...rest }: AnchorProps) => (\n <RadixPopover.Anchor data-spark-component=\"popover-anchor\" ref={ref} asChild={asChild} {...rest}>\n {children}\n </RadixPopover.Anchor>\n)\n\nAnchor.displayName = 'Popover.Anchor'\n","import { cva } from 'class-variance-authority'\nimport { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nimport { usePopover } from './PopoverContext'\n\nexport type ArrowProps = RadixPopover.PopoverArrowProps & {\n ref?: Ref<SVGSVGElement>\n}\n\nexport const Arrow = ({\n asChild = false,\n width = 16,\n height = 8,\n className,\n ref,\n ...rest\n}: ArrowProps) => {\n const { intent } = usePopover()\n\n /**\n * This is necessary to override a Radix UI behaviour.\n * Radix hides the arrow when the Popover is too misaligned from its trigger element.\n */\n const styles = cva('visible', {\n variants: {\n intent: {\n surface: 'fill-surface',\n main: 'fill-main-container',\n support: 'fill-support-container',\n accent: 'fill-accent-container',\n success: 'fill-success-container',\n alert: 'fill-alert-container',\n danger: 'fill-error-container',\n info: 'fill-info-container',\n neutral: 'fill-neutral-container',\n },\n },\n defaultVariants: {\n intent: 'surface',\n },\n })\n\n return (\n <RadixPopover.Arrow\n data-spark-component=\"popover-arrow\"\n ref={ref}\n className={styles({ intent, className })}\n asChild={asChild}\n width={width}\n height={height}\n {...rest}\n />\n )\n}\n\nArrow.displayName = 'Popover.Arrow'\n","import { Close as CloseSVG } from '@spark-ui/icons/Close'\nimport { cx } from 'class-variance-authority'\nimport { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { IconButton } from '../icon-button'\n\nexport type CloseButtonProps = RadixPopover.PopoverCloseProps & {\n 'aria-label': string\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const CloseButton = ({\n 'aria-label': ariaLabel,\n className,\n ref,\n ...rest\n}: CloseButtonProps) => {\n return (\n <RadixPopover.Close\n data-spark-component=\"popover-close-button\"\n ref={ref}\n className={cx('right-lg top-md absolute', className)}\n asChild\n {...rest}\n >\n <IconButton size=\"sm\" intent=\"neutral\" design=\"ghost\" aria-label={ariaLabel}>\n <Icon>\n <CloseSVG />\n </Icon>\n </IconButton>\n </RadixPopover.Close>\n )\n}\n\nCloseButton.displayName = 'Popover.CloseButton'\n","import { cva, VariantProps } from 'class-variance-authority'\n\nexport const styles = cva(\n [\n 'rounded-md',\n 'shadow-sm',\n 'focus-visible:outline-hidden focus-visible:u-outline',\n 'max-h-(--radix-popper-available-height) overflow-y-auto',\n ],\n {\n variants: {\n intent: {\n surface: 'bg-surface text-on-surface',\n main: 'bg-main-container text-on-main-container',\n support: 'bg-support-container text-on-support-container',\n accent: 'bg-accent-container text-on-accent-container',\n success: 'bg-success-container text-on-success-container',\n alert: 'bg-alert-container text-on-alert-container',\n danger: 'bg-error-container text-on-error-container',\n info: 'bg-info-container text-on-info-container',\n neutral: 'bg-neutral-container text-on-neutral-container',\n },\n matchTriggerWidth: {\n true: 'w-(--radix-popper-anchor-width)',\n },\n enforceBoundaries: {\n true: ['max-w-(--radix-popper-available-width)'],\n },\n\n inset: {\n true: 'overflow-hidden',\n false: 'p-lg',\n },\n elevation: {\n dropdown: 'z-dropdown',\n popover: 'z-popover',\n },\n },\n compoundVariants: [\n {\n inset: false,\n /**\n * When there is a close button, padding to the right side must be adjusted to avoid content overlapping with it.\n */\n class: 'has-data-[spark-component=popover-close-button]:pr-3xl',\n },\n {\n enforceBoundaries: false,\n matchTriggerWidth: false,\n class: 'max-w-[min(var(--spacing-sz-384),100vw)]',\n },\n ],\n defaultVariants: {\n matchTriggerWidth: false,\n enforceBoundaries: false,\n inset: false,\n intent: 'surface',\n elevation: 'popover',\n },\n }\n)\n\nexport type StylesProps = VariantProps<typeof styles>\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nimport { styles, type StylesProps } from './PopoverContent.styles'\nimport { usePopover } from './PopoverContext'\n\nexport type ContentProps = RadixPopover.PopoverContentProps &\n StylesProps & {\n ref?: Ref<HTMLDivElement>\n }\n\nexport const Content = ({\n // Spark props\n className,\n children,\n matchTriggerWidth = false,\n // Radix props\n align = 'center',\n arrowPadding = 16, // In order not to overlap the arrow on the rounded corners of the popover.\n asChild = false,\n avoidCollisions = true,\n 'aria-labelledby': ariaLabelledBy,\n collisionBoundary,\n collisionPadding = 0,\n hideWhenDetached = false,\n side = 'bottom',\n sideOffset = 8,\n sticky = 'partial',\n inset = false,\n elevation = 'popover',\n ref,\n ...rest\n}: ContentProps) => {\n const { headerId, intent } = usePopover()\n\n return (\n <RadixPopover.Content\n aria-labelledby={headerId || ariaLabelledBy}\n className={styles({\n enforceBoundaries: !!collisionBoundary,\n matchTriggerWidth,\n inset,\n elevation,\n intent,\n className,\n })}\n data-spark-component=\"popover-content\"\n ref={ref}\n {...{\n align,\n arrowPadding,\n asChild,\n avoidCollisions,\n collisionBoundary,\n collisionPadding,\n hideWhenDetached,\n side,\n sideOffset,\n sticky,\n }}\n {...rest}\n >\n {children}\n </RadixPopover.Content>\n )\n}\n\nContent.displayName = 'Popover.Content'\n","import { cx } from 'class-variance-authority'\nimport { type ReactNode, Ref, useId, useLayoutEffect } from 'react'\n\nimport { ID_PREFIX, usePopover } from './PopoverContext'\n\nexport interface HeaderProps {\n children: ReactNode\n className?: string\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Header = ({ children, className, ref, ...rest }: HeaderProps) => {\n const id = `${ID_PREFIX}-header-${useId()}`\n const { setHeaderId } = usePopover()\n\n useLayoutEffect(() => {\n setHeaderId(id)\n\n return () => setHeaderId(null)\n }, [id, setHeaderId])\n\n return (\n <header id={id} ref={ref} className={cx('mb-md text-headline-2', className)} {...rest}>\n {children}\n </header>\n )\n}\n\nHeader.displayName = 'Popover.Header'\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { ReactElement } from 'react'\n\nexport type PortalProps = RadixPopover.PopoverPortalProps\n\nexport const Portal = ({ children, ...rest }: PortalProps): ReactElement => (\n <RadixPopover.Portal {...rest}>{children}</RadixPopover.Portal>\n)\n\nPortal.displayName = 'Popover.Portal'\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nexport type TriggerProps = RadixPopover.PopoverTriggerProps & {\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const Trigger = ({ asChild = false, children, ref, ...rest }: TriggerProps) => (\n <RadixPopover.Trigger\n data-spark-component=\"popover-trigger\"\n ref={ref}\n asChild={asChild}\n {...rest}\n >\n {children}\n </RadixPopover.Trigger>\n)\n\nTrigger.displayName = 'Popover.Trigger'\n","import { Popover as Root } from './Popover'\nimport { Anchor } from './PopoverAnchor'\nimport { Arrow } from './PopoverArrow'\nimport { CloseButton } from './PopoverCloseButton'\nimport { Content } from './PopoverContent'\nimport { Header } from './PopoverHeader'\nimport { Portal } from './PopoverPortal'\nimport { Trigger } from './PopoverTrigger'\n\nexport const Popover: typeof Root & {\n Anchor: typeof Anchor\n Arrow: typeof Arrow\n CloseButton: typeof CloseButton\n Content: typeof Content\n Header: typeof Header\n Portal: typeof Portal\n Trigger: typeof Trigger\n} = Object.assign(Root, {\n Anchor,\n Arrow,\n CloseButton,\n Content,\n Header,\n Portal,\n Trigger,\n})\n\nPopover.displayName = 'Popover'\nAnchor.displayName = 'Popover.Anchor'\nArrow.displayName = 'Popover.Arrow'\nCloseButton.displayName = 'Popover.CloseButton'\nContent.displayName = 'Popover.Content'\nHeader.displayName = 'Popover.Header'\nPortal.displayName = 'Popover.Portal'\nTrigger.displayName = 'Popover.Trigger'\n"],"names":["PopoverContext","createContext","ID_PREFIX","PopoverProvider","children","intent","headerId","setHeaderId","useState","jsx","usePopover","context","useContext","Popover","modal","rest","RadixPopover","Anchor","asChild","ref","Arrow","width","height","className","styles","cva","CloseButton","ariaLabel","cx","IconButton","Icon","CloseSVG","Content","matchTriggerWidth","align","arrowPadding","avoidCollisions","ariaLabelledBy","collisionBoundary","collisionPadding","hideWhenDetached","side","sideOffset","sticky","inset","elevation","Header","id","useId","useLayoutEffect","Portal","Trigger","Root"],"mappings":"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"}
@@ -1,21 +1,21 @@
1
- import { jsx as t } from "react/jsx-runtime";
1
+ import { jsx as a } from "react/jsx-runtime";
2
2
  import { Popover as i } from "radix-ui";
3
3
  import { createContext as V, useState as W, useContext as j, useId as R, useLayoutEffect as D } from "react";
4
- import { cva as P, cx as x } from "class-variance-authority";
4
+ import { cva as b, cx as x } from "class-variance-authority";
5
5
  import { Close as F } from "@spark-ui/icons/Close";
6
- import { I as L } from "../Icon-C23-htlD.mjs";
7
- import { I as O } from "../IconButton-Bfd-6BAD.mjs";
6
+ import { I as L } from "../Icon-BO327oHU.mjs";
7
+ import { I as O } from "../IconButton-DdB3Pq13.mjs";
8
8
  const y = V(null), S = ":popover", X = ({
9
9
  children: e,
10
10
  intent: o
11
11
  }) => {
12
- const [r, a] = W(null);
13
- return /* @__PURE__ */ t(
12
+ const [r, t] = W(null);
13
+ return /* @__PURE__ */ a(
14
14
  y.Provider,
15
15
  {
16
16
  value: {
17
17
  headerId: r,
18
- setHeaderId: a,
18
+ setHeaderId: t,
19
19
  intent: o
20
20
  },
21
21
  children: e
@@ -26,26 +26,25 @@ const y = V(null), S = ":popover", X = ({
26
26
  if (!e)
27
27
  throw Error("usePopover must be used within a Popover provider");
28
28
  return e;
29
- }, N = ({ children: e, intent: o = "surface", modal: r = !1, ...a }) => /* @__PURE__ */ t(X, { intent: o, children: /* @__PURE__ */ t(i.Root, { "data-spark-component": "popover", modal: r, ...a, children: e }) });
29
+ }, N = ({ children: e, intent: o = "surface", modal: r = !1, ...t }) => /* @__PURE__ */ a(X, { intent: o, children: /* @__PURE__ */ a(i.Root, { "data-spark-component": "popover", modal: r, ...t, children: e }) });
30
30
  N.displayName = "Popover";
31
- const d = ({ asChild: e = !1, children: o, ref: r, ...a }) => /* @__PURE__ */ t(i.Anchor, { "data-spark-component": "popover-anchor", ref: r, asChild: e, ...a, children: o });
31
+ const d = ({ asChild: e = !1, children: o, ref: r, ...t }) => /* @__PURE__ */ a(i.Anchor, { "data-spark-component": "popover-anchor", ref: r, asChild: e, ...t, children: o });
32
32
  d.displayName = "Popover.Anchor";
33
33
  const u = ({
34
34
  asChild: e = !1,
35
35
  width: o = 16,
36
36
  height: r = 8,
37
- className: a,
37
+ className: t,
38
38
  ref: n,
39
39
  ...s
40
40
  }) => {
41
- const { intent: c } = p(), l = P("visible", {
41
+ const { intent: l } = p(), c = b("visible", {
42
42
  variants: {
43
43
  intent: {
44
44
  surface: "fill-surface",
45
45
  main: "fill-main-container",
46
46
  support: "fill-support-container",
47
47
  accent: "fill-accent-container",
48
- basic: "fill-basic-container",
49
48
  success: "fill-success-container",
50
49
  alert: "fill-alert-container",
51
50
  danger: "fill-error-container",
@@ -57,12 +56,12 @@ const u = ({
57
56
  intent: "surface"
58
57
  }
59
58
  });
60
- return /* @__PURE__ */ t(
59
+ return /* @__PURE__ */ a(
61
60
  i.Arrow,
62
61
  {
63
62
  "data-spark-component": "popover-arrow",
64
63
  ref: n,
65
- className: l({ intent: c, className: a }),
64
+ className: c({ intent: l, className: t }),
66
65
  asChild: e,
67
66
  width: o,
68
67
  height: r,
@@ -75,20 +74,20 @@ const m = ({
75
74
  "aria-label": e,
76
75
  className: o,
77
76
  ref: r,
78
- ...a
79
- }) => /* @__PURE__ */ t(
77
+ ...t
78
+ }) => /* @__PURE__ */ a(
80
79
  i.Close,
81
80
  {
82
81
  "data-spark-component": "popover-close-button",
83
82
  ref: r,
84
83
  className: x("right-lg top-md absolute", o),
85
84
  asChild: !0,
86
- ...a,
87
- children: /* @__PURE__ */ t(O, { size: "sm", intent: "neutral", design: "ghost", "aria-label": e, children: /* @__PURE__ */ t(L, { children: /* @__PURE__ */ t(F, {}) }) })
85
+ ...t,
86
+ children: /* @__PURE__ */ a(O, { size: "sm", intent: "neutral", design: "ghost", "aria-label": e, children: /* @__PURE__ */ a(L, { children: /* @__PURE__ */ a(F, {}) }) })
88
87
  }
89
88
  );
90
89
  m.displayName = "Popover.CloseButton";
91
- const _ = P(
90
+ const _ = b(
92
91
  [
93
92
  "rounded-md",
94
93
  "shadow-sm",
@@ -102,7 +101,6 @@ const _ = P(
102
101
  main: "bg-main-container text-on-main-container",
103
102
  support: "bg-support-container text-on-support-container",
104
103
  accent: "bg-accent-container text-on-accent-container",
105
- basic: "bg-basic-container text-on-basic-container",
106
104
  success: "bg-success-container text-on-success-container",
107
105
  alert: "bg-alert-container text-on-alert-container",
108
106
  danger: "bg-error-container text-on-error-container",
@@ -152,13 +150,13 @@ const _ = P(
152
150
  children: o,
153
151
  matchTriggerWidth: r = !1,
154
152
  // Radix props
155
- align: a = "center",
153
+ align: t = "center",
156
154
  arrowPadding: n = 16,
157
155
  // In order not to overlap the arrow on the rounded corners of the popover.
158
156
  asChild: s = !1,
159
- avoidCollisions: c = !0,
160
- "aria-labelledby": l,
161
- collisionBoundary: b,
157
+ avoidCollisions: l = !0,
158
+ "aria-labelledby": c,
159
+ collisionBoundary: P,
162
160
  collisionPadding: w = 0,
163
161
  hideWhenDetached: C = !1,
164
162
  side: I = "bottom",
@@ -170,12 +168,12 @@ const _ = P(
170
168
  ...z
171
169
  }) => {
172
170
  const { headerId: $, intent: E } = p();
173
- return /* @__PURE__ */ t(
171
+ return /* @__PURE__ */ a(
174
172
  i.Content,
175
173
  {
176
- "aria-labelledby": $ || l,
174
+ "aria-labelledby": $ || c,
177
175
  className: _({
178
- enforceBoundaries: !!b,
176
+ enforceBoundaries: !!P,
179
177
  matchTriggerWidth: r,
180
178
  inset: B,
181
179
  elevation: T,
@@ -184,11 +182,11 @@ const _ = P(
184
182
  }),
185
183
  "data-spark-component": "popover-content",
186
184
  ref: H,
187
- align: a,
185
+ align: t,
188
186
  arrowPadding: n,
189
187
  asChild: s,
190
- avoidCollisions: c,
191
- collisionBoundary: b,
188
+ avoidCollisions: l,
189
+ collisionBoundary: P,
192
190
  collisionPadding: w,
193
191
  hideWhenDetached: C,
194
192
  side: I,
@@ -200,20 +198,20 @@ const _ = P(
200
198
  );
201
199
  };
202
200
  f.displayName = "Popover.Content";
203
- const v = ({ children: e, className: o, ref: r, ...a }) => {
201
+ const v = ({ children: e, className: o, ref: r, ...t }) => {
204
202
  const n = `${S}-header-${R()}`, { setHeaderId: s } = p();
205
- return D(() => (s(n), () => s(null)), [n, s]), /* @__PURE__ */ t("header", { id: n, ref: r, className: x("mb-md text-headline-2", o), ...a, children: e });
203
+ return D(() => (s(n), () => s(null)), [n, s]), /* @__PURE__ */ a("header", { id: n, ref: r, className: x("mb-md text-headline-2", o), ...t, children: e });
206
204
  };
207
205
  v.displayName = "Popover.Header";
208
- const g = ({ children: e, ...o }) => /* @__PURE__ */ t(i.Portal, { ...o, children: e });
206
+ const g = ({ children: e, ...o }) => /* @__PURE__ */ a(i.Portal, { ...o, children: e });
209
207
  g.displayName = "Popover.Portal";
210
- const h = ({ asChild: e = !1, children: o, ref: r, ...a }) => /* @__PURE__ */ t(
208
+ const h = ({ asChild: e = !1, children: o, ref: r, ...t }) => /* @__PURE__ */ a(
211
209
  i.Trigger,
212
210
  {
213
211
  "data-spark-component": "popover-trigger",
214
212
  ref: r,
215
213
  asChild: e,
216
- ...a,
214
+ ...t,
217
215
  children: o
218
216
  }
219
217
  );
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/popover/PopoverContext.tsx","../../src/popover/Popover.tsx","../../src/popover/PopoverAnchor.tsx","../../src/popover/PopoverArrow.tsx","../../src/popover/PopoverCloseButton.tsx","../../src/popover/PopoverContent.styles.ts","../../src/popover/PopoverContent.tsx","../../src/popover/PopoverHeader.tsx","../../src/popover/PopoverPortal.tsx","../../src/popover/PopoverTrigger.tsx","../../src/popover/index.ts"],"sourcesContent":["import { createContext, type ReactNode, useContext, useState } from 'react'\n\ntype HeaderId = string | null\n\nexport type PopoverIntent =\n | 'surface'\n | 'main'\n | 'support'\n | 'accent'\n | 'basic'\n | 'success'\n | 'alert'\n | 'danger'\n | 'info'\n | 'neutral'\nexport interface PopoverContextState {\n headerId: HeaderId\n setHeaderId: (id: HeaderId) => void\n intent: PopoverIntent\n}\n\nconst PopoverContext = createContext<PopoverContextState | null>(null)\n\nexport const ID_PREFIX = ':popover'\n\nexport const PopoverProvider = ({\n children,\n intent,\n}: {\n children: ReactNode\n intent: PopoverIntent\n}) => {\n const [headerId, setHeaderId] = useState<HeaderId>(null)\n\n return (\n <PopoverContext.Provider\n value={{\n headerId,\n setHeaderId,\n intent,\n }}\n >\n {children}\n </PopoverContext.Provider>\n )\n}\n\nexport const usePopover = () => {\n const context = useContext(PopoverContext)\n\n if (!context) {\n throw Error('usePopover must be used within a Popover provider')\n }\n\n return context\n}\n","import { Popover as RadixPopover } from 'radix-ui'\n\nimport { type PopoverIntent, PopoverProvider } from './PopoverContext'\n\nexport type PopoverProps = RadixPopover.PopoverProps & {\n intent?: PopoverIntent\n}\n\nexport const Popover = ({ children, intent = 'surface', modal = false, ...rest }: PopoverProps) => {\n return (\n <PopoverProvider intent={intent}>\n <RadixPopover.Root data-spark-component=\"popover\" modal={modal} {...rest}>\n {children}\n </RadixPopover.Root>\n </PopoverProvider>\n )\n}\n\nPopover.displayName = 'Popover'\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nexport type AnchorProps = RadixPopover.PopoverAnchorProps & {\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Anchor = ({ asChild = false, children, ref, ...rest }: AnchorProps) => (\n <RadixPopover.Anchor data-spark-component=\"popover-anchor\" ref={ref} asChild={asChild} {...rest}>\n {children}\n </RadixPopover.Anchor>\n)\n\nAnchor.displayName = 'Popover.Anchor'\n","import { cva } from 'class-variance-authority'\nimport { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nimport { usePopover } from './PopoverContext'\n\nexport type ArrowProps = RadixPopover.PopoverArrowProps & {\n ref?: Ref<SVGSVGElement>\n}\n\nexport const Arrow = ({\n asChild = false,\n width = 16,\n height = 8,\n className,\n ref,\n ...rest\n}: ArrowProps) => {\n const { intent } = usePopover()\n\n /**\n * This is necessary to override a Radix UI behaviour.\n * Radix hides the arrow when the Popover is too misaligned from its trigger element.\n */\n const styles = cva('visible', {\n variants: {\n intent: {\n surface: 'fill-surface',\n main: 'fill-main-container',\n support: 'fill-support-container',\n accent: 'fill-accent-container',\n basic: 'fill-basic-container',\n success: 'fill-success-container',\n alert: 'fill-alert-container',\n danger: 'fill-error-container',\n info: 'fill-info-container',\n neutral: 'fill-neutral-container',\n },\n },\n defaultVariants: {\n intent: 'surface',\n },\n })\n\n return (\n <RadixPopover.Arrow\n data-spark-component=\"popover-arrow\"\n ref={ref}\n className={styles({ intent, className })}\n asChild={asChild}\n width={width}\n height={height}\n {...rest}\n />\n )\n}\n\nArrow.displayName = 'Popover.Arrow'\n","import { Close as CloseSVG } from '@spark-ui/icons/Close'\nimport { cx } from 'class-variance-authority'\nimport { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { IconButton } from '../icon-button'\n\nexport type CloseButtonProps = RadixPopover.PopoverCloseProps & {\n 'aria-label': string\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const CloseButton = ({\n 'aria-label': ariaLabel,\n className,\n ref,\n ...rest\n}: CloseButtonProps) => {\n return (\n <RadixPopover.Close\n data-spark-component=\"popover-close-button\"\n ref={ref}\n className={cx('right-lg top-md absolute', className)}\n asChild\n {...rest}\n >\n <IconButton size=\"sm\" intent=\"neutral\" design=\"ghost\" aria-label={ariaLabel}>\n <Icon>\n <CloseSVG />\n </Icon>\n </IconButton>\n </RadixPopover.Close>\n )\n}\n\nCloseButton.displayName = 'Popover.CloseButton'\n","import { cva, VariantProps } from 'class-variance-authority'\n\nexport const styles = cva(\n [\n 'rounded-md',\n 'shadow-sm',\n 'focus-visible:outline-hidden focus-visible:u-outline',\n 'max-h-(--radix-popper-available-height) overflow-y-auto',\n ],\n {\n variants: {\n intent: {\n surface: 'bg-surface text-on-surface',\n main: 'bg-main-container text-on-main-container',\n support: 'bg-support-container text-on-support-container',\n accent: 'bg-accent-container text-on-accent-container',\n basic: 'bg-basic-container text-on-basic-container',\n success: 'bg-success-container text-on-success-container',\n alert: 'bg-alert-container text-on-alert-container',\n danger: 'bg-error-container text-on-error-container',\n info: 'bg-info-container text-on-info-container',\n neutral: 'bg-neutral-container text-on-neutral-container',\n },\n matchTriggerWidth: {\n true: 'w-(--radix-popper-anchor-width)',\n },\n enforceBoundaries: {\n true: ['max-w-(--radix-popper-available-width)'],\n },\n\n inset: {\n true: 'overflow-hidden',\n false: 'p-lg',\n },\n elevation: {\n dropdown: 'z-dropdown',\n popover: 'z-popover',\n },\n },\n compoundVariants: [\n {\n inset: false,\n /**\n * When there is a close button, padding to the right side must be adjusted to avoid content overlapping with it.\n */\n class: 'has-data-[spark-component=popover-close-button]:pr-3xl',\n },\n {\n enforceBoundaries: false,\n matchTriggerWidth: false,\n class: 'max-w-[min(var(--spacing-sz-384),100vw)]',\n },\n ],\n defaultVariants: {\n matchTriggerWidth: false,\n enforceBoundaries: false,\n inset: false,\n intent: 'surface',\n elevation: 'popover',\n },\n }\n)\n\nexport type StylesProps = VariantProps<typeof styles>\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nimport { styles, type StylesProps } from './PopoverContent.styles'\nimport { usePopover } from './PopoverContext'\n\nexport type ContentProps = RadixPopover.PopoverContentProps &\n StylesProps & {\n ref?: Ref<HTMLDivElement>\n }\n\nexport const Content = ({\n // Spark props\n className,\n children,\n matchTriggerWidth = false,\n // Radix props\n align = 'center',\n arrowPadding = 16, // In order not to overlap the arrow on the rounded corners of the popover.\n asChild = false,\n avoidCollisions = true,\n 'aria-labelledby': ariaLabelledBy,\n collisionBoundary,\n collisionPadding = 0,\n hideWhenDetached = false,\n side = 'bottom',\n sideOffset = 8,\n sticky = 'partial',\n inset = false,\n elevation = 'popover',\n ref,\n ...rest\n}: ContentProps) => {\n const { headerId, intent } = usePopover()\n\n return (\n <RadixPopover.Content\n aria-labelledby={headerId || ariaLabelledBy}\n className={styles({\n enforceBoundaries: !!collisionBoundary,\n matchTriggerWidth,\n inset,\n elevation,\n intent,\n className,\n })}\n data-spark-component=\"popover-content\"\n ref={ref}\n {...{\n align,\n arrowPadding,\n asChild,\n avoidCollisions,\n collisionBoundary,\n collisionPadding,\n hideWhenDetached,\n side,\n sideOffset,\n sticky,\n }}\n {...rest}\n >\n {children}\n </RadixPopover.Content>\n )\n}\n\nContent.displayName = 'Popover.Content'\n","import { cx } from 'class-variance-authority'\nimport { type ReactNode, Ref, useId, useLayoutEffect } from 'react'\n\nimport { ID_PREFIX, usePopover } from './PopoverContext'\n\nexport interface HeaderProps {\n children: ReactNode\n className?: string\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Header = ({ children, className, ref, ...rest }: HeaderProps) => {\n const id = `${ID_PREFIX}-header-${useId()}`\n const { setHeaderId } = usePopover()\n\n useLayoutEffect(() => {\n setHeaderId(id)\n\n return () => setHeaderId(null)\n }, [id, setHeaderId])\n\n return (\n <header id={id} ref={ref} className={cx('mb-md text-headline-2', className)} {...rest}>\n {children}\n </header>\n )\n}\n\nHeader.displayName = 'Popover.Header'\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { ReactElement } from 'react'\n\nexport type PortalProps = RadixPopover.PopoverPortalProps\n\nexport const Portal = ({ children, ...rest }: PortalProps): ReactElement => (\n <RadixPopover.Portal {...rest}>{children}</RadixPopover.Portal>\n)\n\nPortal.displayName = 'Popover.Portal'\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nexport type TriggerProps = RadixPopover.PopoverTriggerProps & {\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const Trigger = ({ asChild = false, children, ref, ...rest }: TriggerProps) => (\n <RadixPopover.Trigger\n data-spark-component=\"popover-trigger\"\n ref={ref}\n asChild={asChild}\n {...rest}\n >\n {children}\n </RadixPopover.Trigger>\n)\n\nTrigger.displayName = 'Popover.Trigger'\n","import { Popover as Root } from './Popover'\nimport { Anchor } from './PopoverAnchor'\nimport { Arrow } from './PopoverArrow'\nimport { CloseButton } from './PopoverCloseButton'\nimport { Content } from './PopoverContent'\nimport { Header } from './PopoverHeader'\nimport { Portal } from './PopoverPortal'\nimport { Trigger } from './PopoverTrigger'\n\nexport const Popover: typeof Root & {\n Anchor: typeof Anchor\n Arrow: typeof Arrow\n CloseButton: typeof CloseButton\n Content: typeof Content\n Header: typeof Header\n Portal: typeof Portal\n Trigger: typeof Trigger\n} = Object.assign(Root, {\n Anchor,\n Arrow,\n CloseButton,\n Content,\n Header,\n Portal,\n Trigger,\n})\n\nPopover.displayName = 'Popover'\nAnchor.displayName = 'Popover.Anchor'\nArrow.displayName = 'Popover.Arrow'\nCloseButton.displayName = 'Popover.CloseButton'\nContent.displayName = 'Popover.Content'\nHeader.displayName = 'Popover.Header'\nPortal.displayName = 'Popover.Portal'\nTrigger.displayName = 'Popover.Trigger'\n"],"names":["PopoverContext","createContext","ID_PREFIX","PopoverProvider","children","intent","headerId","setHeaderId","useState","jsx","usePopover","context","useContext","Popover","modal","rest","RadixPopover","Anchor","asChild","ref","Arrow","width","height","className","styles","cva","CloseButton","ariaLabel","cx","IconButton","Icon","CloseSVG","Content","matchTriggerWidth","align","arrowPadding","avoidCollisions","ariaLabelledBy","collisionBoundary","collisionPadding","hideWhenDetached","side","sideOffset","sticky","inset","elevation","Header","id","useId","useLayoutEffect","Portal","Trigger","Root"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/popover/PopoverContext.tsx","../../src/popover/Popover.tsx","../../src/popover/PopoverAnchor.tsx","../../src/popover/PopoverArrow.tsx","../../src/popover/PopoverCloseButton.tsx","../../src/popover/PopoverContent.styles.ts","../../src/popover/PopoverContent.tsx","../../src/popover/PopoverHeader.tsx","../../src/popover/PopoverPortal.tsx","../../src/popover/PopoverTrigger.tsx","../../src/popover/index.ts"],"sourcesContent":["import { createContext, type ReactNode, useContext, useState } from 'react'\n\ntype HeaderId = string | null\n\nexport type PopoverIntent =\n | 'surface'\n | 'main'\n | 'support'\n | 'accent'\n | 'success'\n | 'alert'\n | 'danger'\n | 'info'\n | 'neutral'\nexport interface PopoverContextState {\n headerId: HeaderId\n setHeaderId: (id: HeaderId) => void\n intent: PopoverIntent\n}\n\nconst PopoverContext = createContext<PopoverContextState | null>(null)\n\nexport const ID_PREFIX = ':popover'\n\nexport const PopoverProvider = ({\n children,\n intent,\n}: {\n children: ReactNode\n intent: PopoverIntent\n}) => {\n const [headerId, setHeaderId] = useState<HeaderId>(null)\n\n return (\n <PopoverContext.Provider\n value={{\n headerId,\n setHeaderId,\n intent,\n }}\n >\n {children}\n </PopoverContext.Provider>\n )\n}\n\nexport const usePopover = () => {\n const context = useContext(PopoverContext)\n\n if (!context) {\n throw Error('usePopover must be used within a Popover provider')\n }\n\n return context\n}\n","import { Popover as RadixPopover } from 'radix-ui'\n\nimport { type PopoverIntent, PopoverProvider } from './PopoverContext'\n\nexport type PopoverProps = RadixPopover.PopoverProps & {\n intent?: PopoverIntent\n}\n\nexport const Popover = ({ children, intent = 'surface', modal = false, ...rest }: PopoverProps) => {\n return (\n <PopoverProvider intent={intent}>\n <RadixPopover.Root data-spark-component=\"popover\" modal={modal} {...rest}>\n {children}\n </RadixPopover.Root>\n </PopoverProvider>\n )\n}\n\nPopover.displayName = 'Popover'\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nexport type AnchorProps = RadixPopover.PopoverAnchorProps & {\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Anchor = ({ asChild = false, children, ref, ...rest }: AnchorProps) => (\n <RadixPopover.Anchor data-spark-component=\"popover-anchor\" ref={ref} asChild={asChild} {...rest}>\n {children}\n </RadixPopover.Anchor>\n)\n\nAnchor.displayName = 'Popover.Anchor'\n","import { cva } from 'class-variance-authority'\nimport { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nimport { usePopover } from './PopoverContext'\n\nexport type ArrowProps = RadixPopover.PopoverArrowProps & {\n ref?: Ref<SVGSVGElement>\n}\n\nexport const Arrow = ({\n asChild = false,\n width = 16,\n height = 8,\n className,\n ref,\n ...rest\n}: ArrowProps) => {\n const { intent } = usePopover()\n\n /**\n * This is necessary to override a Radix UI behaviour.\n * Radix hides the arrow when the Popover is too misaligned from its trigger element.\n */\n const styles = cva('visible', {\n variants: {\n intent: {\n surface: 'fill-surface',\n main: 'fill-main-container',\n support: 'fill-support-container',\n accent: 'fill-accent-container',\n success: 'fill-success-container',\n alert: 'fill-alert-container',\n danger: 'fill-error-container',\n info: 'fill-info-container',\n neutral: 'fill-neutral-container',\n },\n },\n defaultVariants: {\n intent: 'surface',\n },\n })\n\n return (\n <RadixPopover.Arrow\n data-spark-component=\"popover-arrow\"\n ref={ref}\n className={styles({ intent, className })}\n asChild={asChild}\n width={width}\n height={height}\n {...rest}\n />\n )\n}\n\nArrow.displayName = 'Popover.Arrow'\n","import { Close as CloseSVG } from '@spark-ui/icons/Close'\nimport { cx } from 'class-variance-authority'\nimport { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nimport { Icon } from '../icon'\nimport { IconButton } from '../icon-button'\n\nexport type CloseButtonProps = RadixPopover.PopoverCloseProps & {\n 'aria-label': string\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const CloseButton = ({\n 'aria-label': ariaLabel,\n className,\n ref,\n ...rest\n}: CloseButtonProps) => {\n return (\n <RadixPopover.Close\n data-spark-component=\"popover-close-button\"\n ref={ref}\n className={cx('right-lg top-md absolute', className)}\n asChild\n {...rest}\n >\n <IconButton size=\"sm\" intent=\"neutral\" design=\"ghost\" aria-label={ariaLabel}>\n <Icon>\n <CloseSVG />\n </Icon>\n </IconButton>\n </RadixPopover.Close>\n )\n}\n\nCloseButton.displayName = 'Popover.CloseButton'\n","import { cva, VariantProps } from 'class-variance-authority'\n\nexport const styles = cva(\n [\n 'rounded-md',\n 'shadow-sm',\n 'focus-visible:outline-hidden focus-visible:u-outline',\n 'max-h-(--radix-popper-available-height) overflow-y-auto',\n ],\n {\n variants: {\n intent: {\n surface: 'bg-surface text-on-surface',\n main: 'bg-main-container text-on-main-container',\n support: 'bg-support-container text-on-support-container',\n accent: 'bg-accent-container text-on-accent-container',\n success: 'bg-success-container text-on-success-container',\n alert: 'bg-alert-container text-on-alert-container',\n danger: 'bg-error-container text-on-error-container',\n info: 'bg-info-container text-on-info-container',\n neutral: 'bg-neutral-container text-on-neutral-container',\n },\n matchTriggerWidth: {\n true: 'w-(--radix-popper-anchor-width)',\n },\n enforceBoundaries: {\n true: ['max-w-(--radix-popper-available-width)'],\n },\n\n inset: {\n true: 'overflow-hidden',\n false: 'p-lg',\n },\n elevation: {\n dropdown: 'z-dropdown',\n popover: 'z-popover',\n },\n },\n compoundVariants: [\n {\n inset: false,\n /**\n * When there is a close button, padding to the right side must be adjusted to avoid content overlapping with it.\n */\n class: 'has-data-[spark-component=popover-close-button]:pr-3xl',\n },\n {\n enforceBoundaries: false,\n matchTriggerWidth: false,\n class: 'max-w-[min(var(--spacing-sz-384),100vw)]',\n },\n ],\n defaultVariants: {\n matchTriggerWidth: false,\n enforceBoundaries: false,\n inset: false,\n intent: 'surface',\n elevation: 'popover',\n },\n }\n)\n\nexport type StylesProps = VariantProps<typeof styles>\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nimport { styles, type StylesProps } from './PopoverContent.styles'\nimport { usePopover } from './PopoverContext'\n\nexport type ContentProps = RadixPopover.PopoverContentProps &\n StylesProps & {\n ref?: Ref<HTMLDivElement>\n }\n\nexport const Content = ({\n // Spark props\n className,\n children,\n matchTriggerWidth = false,\n // Radix props\n align = 'center',\n arrowPadding = 16, // In order not to overlap the arrow on the rounded corners of the popover.\n asChild = false,\n avoidCollisions = true,\n 'aria-labelledby': ariaLabelledBy,\n collisionBoundary,\n collisionPadding = 0,\n hideWhenDetached = false,\n side = 'bottom',\n sideOffset = 8,\n sticky = 'partial',\n inset = false,\n elevation = 'popover',\n ref,\n ...rest\n}: ContentProps) => {\n const { headerId, intent } = usePopover()\n\n return (\n <RadixPopover.Content\n aria-labelledby={headerId || ariaLabelledBy}\n className={styles({\n enforceBoundaries: !!collisionBoundary,\n matchTriggerWidth,\n inset,\n elevation,\n intent,\n className,\n })}\n data-spark-component=\"popover-content\"\n ref={ref}\n {...{\n align,\n arrowPadding,\n asChild,\n avoidCollisions,\n collisionBoundary,\n collisionPadding,\n hideWhenDetached,\n side,\n sideOffset,\n sticky,\n }}\n {...rest}\n >\n {children}\n </RadixPopover.Content>\n )\n}\n\nContent.displayName = 'Popover.Content'\n","import { cx } from 'class-variance-authority'\nimport { type ReactNode, Ref, useId, useLayoutEffect } from 'react'\n\nimport { ID_PREFIX, usePopover } from './PopoverContext'\n\nexport interface HeaderProps {\n children: ReactNode\n className?: string\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Header = ({ children, className, ref, ...rest }: HeaderProps) => {\n const id = `${ID_PREFIX}-header-${useId()}`\n const { setHeaderId } = usePopover()\n\n useLayoutEffect(() => {\n setHeaderId(id)\n\n return () => setHeaderId(null)\n }, [id, setHeaderId])\n\n return (\n <header id={id} ref={ref} className={cx('mb-md text-headline-2', className)} {...rest}>\n {children}\n </header>\n )\n}\n\nHeader.displayName = 'Popover.Header'\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { ReactElement } from 'react'\n\nexport type PortalProps = RadixPopover.PopoverPortalProps\n\nexport const Portal = ({ children, ...rest }: PortalProps): ReactElement => (\n <RadixPopover.Portal {...rest}>{children}</RadixPopover.Portal>\n)\n\nPortal.displayName = 'Popover.Portal'\n","import { Popover as RadixPopover } from 'radix-ui'\nimport { Ref } from 'react'\n\nexport type TriggerProps = RadixPopover.PopoverTriggerProps & {\n ref?: Ref<HTMLButtonElement>\n}\n\nexport const Trigger = ({ asChild = false, children, ref, ...rest }: TriggerProps) => (\n <RadixPopover.Trigger\n data-spark-component=\"popover-trigger\"\n ref={ref}\n asChild={asChild}\n {...rest}\n >\n {children}\n </RadixPopover.Trigger>\n)\n\nTrigger.displayName = 'Popover.Trigger'\n","import { Popover as Root } from './Popover'\nimport { Anchor } from './PopoverAnchor'\nimport { Arrow } from './PopoverArrow'\nimport { CloseButton } from './PopoverCloseButton'\nimport { Content } from './PopoverContent'\nimport { Header } from './PopoverHeader'\nimport { Portal } from './PopoverPortal'\nimport { Trigger } from './PopoverTrigger'\n\nexport const Popover: typeof Root & {\n Anchor: typeof Anchor\n Arrow: typeof Arrow\n CloseButton: typeof CloseButton\n Content: typeof Content\n Header: typeof Header\n Portal: typeof Portal\n Trigger: typeof Trigger\n} = Object.assign(Root, {\n Anchor,\n Arrow,\n CloseButton,\n Content,\n Header,\n Portal,\n Trigger,\n})\n\nPopover.displayName = 'Popover'\nAnchor.displayName = 'Popover.Anchor'\nArrow.displayName = 'Popover.Arrow'\nCloseButton.displayName = 'Popover.CloseButton'\nContent.displayName = 'Popover.Content'\nHeader.displayName = 'Popover.Header'\nPortal.displayName = 'Popover.Portal'\nTrigger.displayName = 'Popover.Trigger'\n"],"names":["PopoverContext","createContext","ID_PREFIX","PopoverProvider","children","intent","headerId","setHeaderId","useState","jsx","usePopover","context","useContext","Popover","modal","rest","RadixPopover","Anchor","asChild","ref","Arrow","width","height","className","styles","cva","CloseButton","ariaLabel","cx","IconButton","Icon","CloseSVG","Content","matchTriggerWidth","align","arrowPadding","avoidCollisions","ariaLabelledBy","collisionBoundary","collisionPadding","hideWhenDetached","side","sideOffset","sticky","inset","elevation","Header","id","useId","useLayoutEffect","Portal","Trigger","Root"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { Progress as BaseProgress } from '@base-ui/react/progress';
2
2
  import { VariantProps } from 'class-variance-authority';
3
3
  import { ComponentProps, PropsWithChildren } from 'react';
4
4
  export declare const progressIndicatorStyles: (props?: ({
5
- intent?: "main" | "alert" | "support" | "accent" | "basic" | "success" | "info" | "neutral" | "danger" | null | undefined;
5
+ intent?: "main" | "alert" | "support" | "accent" | "success" | "info" | "neutral" | "danger" | null | undefined;
6
6
  shape?: "square" | "rounded" | null | undefined;
7
7
  } & import('class-variance-authority/types').ClassProp) | undefined) => string;
8
8
  export type ProgressIndicatorStylesProps = VariantProps<typeof progressIndicatorStyles>;
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),g=require("@base-ui/react/progress"),b=require("class-variance-authority"),u=require("react"),L=require("@spark-ui/hooks/use-merge-refs"),I=u.createContext(null),R=":progress",h=()=>{const s=u.useContext(I);if(!s)throw new Error("useProgress must be used within a Progress provider");return s},C=b.cva(["h-full w-full","transition-width duration-400"],{variants:{intent:{basic:["bg-basic"],main:["bg-main"],support:["bg-support"],accent:["bg-accent"],success:["bg-success"],alert:["bg-alert"],danger:["bg-error"],info:["bg-info"],neutral:["bg-neutral"]},shape:{square:[],rounded:["rounded-sm"]}}}),j=({className:s,style:t,ref:r,onTransitionEnd:n,...c})=>{const{value:e,max:a,min:l,intent:i,shape:d,onComplete:p}=h(),x=e!==null?(e-l)/(a-l)*100:0,m=e===null,P=y=>{n?.(y),e!==null&&e>=a&&p&&p()};return o.jsx(g.Progress.Indicator,{"data-spark-component":"progress-indicator",className:b.cx(C({className:s,intent:i,shape:d}),m&&"animate-standalone-indeterminate-bar absolute -translate-x-1/2"),style:{...t,...!m&&e!==null&&{width:`${x}%`}},ref:r,onTransitionEnd:P,...c})};j.displayName="ProgressIndicator";const f=({className:s,...t})=>{const{shape:r}=h();return o.jsx(g.Progress.Track,{"data-spark-component":"progress-track",className:b.cx("h-sz-4 relative col-span-2 w-full","transform-gpu","overflow-hidden","bg-on-background/dim-4",{"rounded-sm":r==="rounded"},s),...t,children:o.jsx(j,{})})};f.displayName="Progress.Track";const T=({className:s,value:t,max:r=100,min:n=0,shape:c="square",intent:e="basic",onComplete:a,getValueLabel:l,getAriaValueText:i,children:d=o.jsx(f,{}),ref:p,...x})=>{const[m,P]=u.useState(),y=u.useMemo(()=>({value:t??null,max:r,min:n,intent:e,shape:c,onLabelId:P,onComplete:a}),[r,n,t,e,c,P,a]),V=i||(l?(q,v)=>v===null?q??"":l(v,r):void 0);return o.jsx(I.Provider,{value:y,children:o.jsx(g.Progress.Root,{"data-spark-component":"progress",ref:p,className:b.cx("gap-sm focus-visible:u-outline grid grid-cols-[1fr_auto]",s),value:t??null,max:r,min:n,"aria-labelledby":m,getAriaValueText:V,...x,children:d})})};T.displayName="Progress";const N=({id:s,children:t,ref:r,...n})=>{const c=`${R}-label-${u.useId()}`,e=s||c,{onLabelId:a}=h(),l=u.useCallback(d=>{a(d?e:void 0)},[e,a]),i=L.useMergeRefs(r,l);return o.jsx(g.Progress.Label,{"data-spark-component":"progress-label",id:e,className:"default:text-body-1 text-on-surface default:font-bold",ref:i,...n,children:t})};N.displayName="Progress.Label";const k=({className:s,children:t,...r})=>o.jsx(g.Progress.Value,{"data-spark-component":"progress-value",className:b.cx("default:text-body-1 text-on-surface col-start-2 text-right",s),...r,children:t});k.displayName="Progress.Value";const w=Object.assign(T,{Label:N,Track:f,Value:k});w.displayName="Progress";N.displayName="Progress.Label";f.displayName="Progress.Track";k.displayName="Progress.Value";exports.Progress=w;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),g=require("@base-ui/react/progress"),p=require("class-variance-authority"),u=require("react"),L=require("@spark-ui/hooks/use-merge-refs"),I=u.createContext(null),R=":progress",h=()=>{const s=u.useContext(I);if(!s)throw new Error("useProgress must be used within a Progress provider");return s},C=p.cva(["h-full w-full","transition-width duration-400"],{variants:{intent:{main:["bg-main"],support:["bg-support"],accent:["bg-accent"],success:["bg-success"],alert:["bg-alert"],danger:["bg-error"],info:["bg-info"],neutral:["bg-neutral"]},shape:{square:[],rounded:["rounded-sm"]}}}),j=({className:s,style:t,ref:r,onTransitionEnd:n,...c})=>{const{value:e,max:a,min:l,intent:i,shape:d,onComplete:b}=h(),x=e!==null?(e-l)/(a-l)*100:0,m=e===null,P=y=>{n?.(y),e!==null&&e>=a&&b&&b()};return o.jsx(g.Progress.Indicator,{"data-spark-component":"progress-indicator",className:p.cx(C({className:s,intent:i,shape:d}),m&&"animate-standalone-indeterminate-bar absolute -translate-x-1/2"),style:{...t,...!m&&e!==null&&{width:`${x}%`}},ref:r,onTransitionEnd:P,...c})};j.displayName="ProgressIndicator";const f=({className:s,...t})=>{const{shape:r}=h();return o.jsx(g.Progress.Track,{"data-spark-component":"progress-track",className:p.cx("h-sz-4 relative col-span-2 w-full","transform-gpu","overflow-hidden","bg-on-background/dim-4",{"rounded-sm":r==="rounded"},s),...t,children:o.jsx(j,{})})};f.displayName="Progress.Track";const T=({className:s,value:t,max:r=100,min:n=0,shape:c="square",intent:e="support",onComplete:a,getValueLabel:l,getAriaValueText:i,children:d=o.jsx(f,{}),ref:b,...x})=>{const[m,P]=u.useState(),y=u.useMemo(()=>({value:t??null,max:r,min:n,intent:e,shape:c,onLabelId:P,onComplete:a}),[r,n,t,e,c,P,a]),V=i||(l?(q,v)=>v===null?q??"":l(v,r):void 0);return o.jsx(I.Provider,{value:y,children:o.jsx(g.Progress.Root,{"data-spark-component":"progress",ref:b,className:p.cx("gap-sm focus-visible:u-outline grid grid-cols-[1fr_auto]",s),value:t??null,max:r,min:n,"aria-labelledby":m,getAriaValueText:V,...x,children:d})})};T.displayName="Progress";const N=({id:s,children:t,ref:r,...n})=>{const c=`${R}-label-${u.useId()}`,e=s||c,{onLabelId:a}=h(),l=u.useCallback(d=>{a(d?e:void 0)},[e,a]),i=L.useMergeRefs(r,l);return o.jsx(g.Progress.Label,{"data-spark-component":"progress-label",id:e,className:"default:text-body-1 text-on-surface default:font-bold",ref:i,...n,children:t})};N.displayName="Progress.Label";const k=({className:s,children:t,...r})=>o.jsx(g.Progress.Value,{"data-spark-component":"progress-value",className:p.cx("default:text-body-1 text-on-surface col-start-2 text-right",s),...r,children:t});k.displayName="Progress.Value";const w=Object.assign(T,{Label:N,Track:f,Value:k});w.displayName="Progress";N.displayName="Progress.Label";f.displayName="Progress.Track";k.displayName="Progress.Value";exports.Progress=w;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/progress/ProgressContext.tsx","../../src/progress/ProgressIndicator.tsx","../../src/progress/ProgressTrack.tsx","../../src/progress/Progress.tsx","../../src/progress/ProgressLabel.tsx","../../src/progress/ProgressValue.tsx","../../src/progress/index.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\n\nimport { ProgressIndicatorStylesProps } from './ProgressIndicator'\n\nexport interface ProgressContextValue {\n value: number | null\n max: number\n min: number\n shape: 'square' | 'rounded'\n intent: ProgressIndicatorStylesProps['intent']\n onLabelId: (id?: string) => void\n onComplete?: () => void\n}\n\nexport const ProgressContext = createContext<ProgressContextValue | null>(null)\n\nexport const ID_PREFIX = ':progress'\n\nexport const useProgress = () => {\n const context = useContext(ProgressContext)\n\n if (!context) {\n throw new Error('useProgress must be used within a Progress provider')\n }\n\n return context\n}\n","import { Progress as BaseProgress } from '@base-ui/react/progress'\nimport { cva, cx, VariantProps } from 'class-variance-authority'\nimport { ComponentProps, PropsWithChildren } from 'react'\n\nimport { useProgress } from './ProgressContext'\n\nexport const progressIndicatorStyles = cva(['h-full w-full', 'transition-width duration-400'], {\n variants: {\n /**\n * Color scheme of the progress component.\n */\n intent: {\n basic: ['bg-basic'],\n main: ['bg-main'],\n support: ['bg-support'],\n accent: ['bg-accent'],\n success: ['bg-success'],\n alert: ['bg-alert'],\n danger: ['bg-error'],\n info: ['bg-info'],\n neutral: ['bg-neutral'],\n },\n /**\n * Shape of the progress component.\n */\n shape: {\n square: [],\n rounded: ['rounded-sm'],\n },\n },\n})\n\nexport type ProgressIndicatorStylesProps = VariantProps<typeof progressIndicatorStyles>\n\nexport type ProgressIndicatorProps = Omit<ComponentProps<typeof BaseProgress.Indicator>, 'render'>\n\nexport const ProgressIndicator = ({\n className,\n style,\n ref,\n onTransitionEnd,\n ...others\n}: PropsWithChildren<ProgressIndicatorProps>) => {\n const { value, max, min, intent, shape, onComplete } = useProgress()\n\n const percentage = value !== null ? ((value - min) / (max - min)) * 100 : 0\n const isIndeterminate = value === null\n\n const handleTransitionEnd = (event: Parameters<NonNullable<ProgressIndicatorProps['onTransitionEnd']>>[0]) => {\n // Call the original onTransitionEnd if provided\n onTransitionEnd?.(event)\n\n // If progress is complete and we have a callback, call it\n if (value !== null && value >= max && onComplete) {\n onComplete()\n }\n }\n\n return (\n <BaseProgress.Indicator\n data-spark-component=\"progress-indicator\"\n className={cx(\n progressIndicatorStyles({\n className,\n intent,\n shape,\n }),\n isIndeterminate && 'animate-standalone-indeterminate-bar absolute -translate-x-1/2'\n )}\n style={{\n ...style,\n ...(!isIndeterminate && value !== null && { width: `${percentage}%` }),\n }}\n ref={ref}\n onTransitionEnd={handleTransitionEnd}\n {...others}\n />\n )\n}\n\nProgressIndicator.displayName = 'ProgressIndicator'\n","import { Progress as BaseProgress } from '@base-ui/react/progress'\nimport { cx } from 'class-variance-authority'\nimport { ComponentProps } from 'react'\n\nimport { useProgress } from './ProgressContext'\nimport { ProgressIndicator } from './ProgressIndicator'\n\nexport type ProgressTrackProps = Omit<ComponentProps<typeof BaseProgress.Track>, 'render'>\n\nexport const ProgressTrack = ({ className, ...others }: ProgressTrackProps) => {\n const { shape } = useProgress()\n\n return (\n <BaseProgress.Track\n data-spark-component=\"progress-track\"\n className={cx(\n 'h-sz-4 relative col-span-2 w-full',\n 'transform-gpu',\n 'overflow-hidden',\n 'bg-on-background/dim-4',\n { 'rounded-sm': shape === 'rounded' },\n className\n )}\n {...others}\n >\n <ProgressIndicator />\n </BaseProgress.Track>\n )\n}\n\nProgressTrack.displayName = 'Progress.Track'\n","import { Progress as BaseProgress } from '@base-ui/react/progress'\nimport { cx } from 'class-variance-authority'\nimport { ComponentProps, PropsWithChildren, Ref, useMemo, useState } from 'react'\n\nimport { ProgressContext } from './ProgressContext'\nimport { ProgressIndicatorStylesProps } from './ProgressIndicator'\nimport { ProgressTrack } from './ProgressTrack'\n\nexport interface ProgressProps\n extends Omit<ComponentProps<typeof BaseProgress.Root>, 'render'>,\n Pick<ProgressIndicatorStylesProps, 'intent'> {\n shape?: 'square' | 'rounded'\n /**\n * Callback called when the progress reaches its maximum value and the transition animation completes.\n */\n onComplete?: () => void\n /**\n * Function that returns a string value that provides a human-readable text alternative for the current value of the progress bar.\n * @deprecated Use `getAriaValueText` instead. This prop is kept for backward compatibility.\n */\n getValueLabel?: (value: number, max: number) => string\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Progress = ({\n className,\n value: valueProp,\n max = 100,\n min = 0,\n shape = 'square',\n intent = 'basic',\n onComplete,\n getValueLabel,\n getAriaValueText: getAriaValueTextProp,\n children = <ProgressTrack />,\n ref,\n ...others\n}: PropsWithChildren<ProgressProps>) => {\n const [labelId, setLabelId] = useState<string>()\n\n const contextValue = useMemo(() => {\n return {\n value: valueProp ?? null,\n max,\n min,\n intent,\n shape,\n onLabelId: setLabelId,\n onComplete,\n }\n }, [max, min, valueProp, intent, shape, setLabelId, onComplete])\n\n // Map getValueLabel to getAriaValueText for backward compatibility\n const getAriaValueText =\n getAriaValueTextProp ||\n (getValueLabel\n ? (formattedValue: string | null, value: number | null) => {\n if (value === null) return formattedValue ?? ''\n\n return getValueLabel(value, max)\n }\n : undefined)\n\n return (\n <ProgressContext.Provider value={contextValue}>\n <BaseProgress.Root\n data-spark-component=\"progress\"\n ref={ref}\n className={cx('gap-sm focus-visible:u-outline grid grid-cols-[1fr_auto]', className)}\n value={valueProp ?? null}\n max={max}\n min={min}\n aria-labelledby={labelId}\n getAriaValueText={getAriaValueText}\n {...others}\n >\n {children}\n </BaseProgress.Root>\n </ProgressContext.Provider>\n )\n}\n\nProgress.displayName = 'Progress'\n","import { Progress as BaseProgress } from '@base-ui/react/progress'\nimport { useMergeRefs } from '@spark-ui/hooks/use-merge-refs'\nimport { ComponentProps, useCallback, useId } from 'react'\n\nimport { ID_PREFIX, useProgress } from './ProgressContext'\n\nexport type ProgressLabelProps = Omit<ComponentProps<typeof BaseProgress.Label>, 'render'>\n\nexport const ProgressLabel = ({\n id: idProp,\n children,\n ref: forwardedRef,\n ...others\n}: ProgressLabelProps) => {\n const internalID = `${ID_PREFIX}-label-${useId()}`\n const id = idProp || internalID\n\n const { onLabelId } = useProgress()\n const rootRef = useCallback(\n (el: HTMLSpanElement) => {\n onLabelId(el ? id : undefined)\n },\n [id, onLabelId]\n )\n const ref = useMergeRefs(forwardedRef, rootRef)\n\n return (\n <BaseProgress.Label\n data-spark-component=\"progress-label\"\n id={id}\n className=\"default:text-body-1 text-on-surface default:font-bold\"\n ref={ref}\n {...others}\n >\n {children}\n </BaseProgress.Label>\n )\n}\n\nProgressLabel.displayName = 'Progress.Label'\n","import { Progress as BaseProgress } from '@base-ui/react/progress'\nimport { cx } from 'class-variance-authority'\nimport { ComponentProps, PropsWithChildren } from 'react'\n\nexport type ProgressValueProps = Omit<ComponentProps<typeof BaseProgress.Value>, 'render'>\n\nexport const ProgressValue = ({\n className,\n children,\n ...others\n}: PropsWithChildren<ProgressValueProps>) => {\n return (\n <BaseProgress.Value\n data-spark-component=\"progress-value\"\n className={cx('default:text-body-1 text-on-surface col-start-2 text-right', className)}\n {...others}\n >\n {children}\n </BaseProgress.Value>\n )\n}\n\nProgressValue.displayName = 'Progress.Value'\n","import { Progress as Root } from './Progress'\nimport { ProgressLabel } from './ProgressLabel'\nimport { ProgressTrack } from './ProgressTrack'\nimport { ProgressValue } from './ProgressValue'\n\nexport const Progress: typeof Root & {\n Label: typeof ProgressLabel\n Track: typeof ProgressTrack\n Value: typeof ProgressValue\n} = Object.assign(Root, {\n Label: ProgressLabel,\n Track: ProgressTrack,\n Value: ProgressValue,\n})\n\nProgress.displayName = 'Progress'\nProgressLabel.displayName = 'Progress.Label'\nProgressTrack.displayName = 'Progress.Track'\nProgressValue.displayName = 'Progress.Value'\n\nexport { type ProgressProps } from './Progress'\nexport { type ProgressLabelProps } from './ProgressLabel'\nexport { type ProgressTrackProps } from './ProgressTrack'\nexport { type ProgressValueProps } from './ProgressValue'\n"],"names":["ProgressContext","createContext","ID_PREFIX","useProgress","context","useContext","progressIndicatorStyles","cva","ProgressIndicator","className","style","ref","onTransitionEnd","others","value","max","min","intent","shape","onComplete","percentage","isIndeterminate","handleTransitionEnd","event","jsx","BaseProgress","cx","ProgressTrack","Progress","valueProp","getValueLabel","getAriaValueTextProp","children","labelId","setLabelId","useState","contextValue","useMemo","getAriaValueText","formattedValue","ProgressLabel","idProp","forwardedRef","internalID","useId","id","onLabelId","rootRef","useCallback","el","useMergeRefs","ProgressValue","Root"],"mappings":"+PAcaA,EAAkBC,EAAAA,cAA2C,IAAI,EAEjEC,EAAY,YAEZC,EAAc,IAAM,CAC/B,MAAMC,EAAUC,EAAAA,WAAWL,CAAe,EAE1C,GAAI,CAACI,EACH,MAAM,IAAI,MAAM,qDAAqD,EAGvE,OAAOA,CACT,ECpBaE,EAA0BC,EAAAA,IAAI,CAAC,gBAAiB,+BAA+B,EAAG,CAC7F,SAAU,CAIR,OAAQ,CACN,MAAO,CAAC,UAAU,EAClB,KAAM,CAAC,SAAS,EAChB,QAAS,CAAC,YAAY,EACtB,OAAQ,CAAC,WAAW,EACpB,QAAS,CAAC,YAAY,EACtB,MAAO,CAAC,UAAU,EAClB,OAAQ,CAAC,UAAU,EACnB,KAAM,CAAC,SAAS,EAChB,QAAS,CAAC,YAAY,CAAA,EAKxB,MAAO,CACL,OAAQ,CAAA,EACR,QAAS,CAAC,YAAY,CAAA,CACxB,CAEJ,CAAC,EAMYC,EAAoB,CAAC,CAChC,UAAAC,EACA,MAAAC,EACA,IAAAC,EACA,gBAAAC,EACA,GAAGC,CACL,IAAiD,CAC/C,KAAM,CAAE,MAAAC,EAAO,IAAAC,EAAK,IAAAC,EAAK,OAAAC,EAAQ,MAAAC,EAAO,WAAAC,CAAA,EAAehB,EAAA,EAEjDiB,EAAaN,IAAU,MAASA,EAAQE,IAAQD,EAAMC,GAAQ,IAAM,EACpEK,EAAkBP,IAAU,KAE5BQ,EAAuBC,GAAiF,CAE5GX,IAAkBW,CAAK,EAGnBT,IAAU,MAAQA,GAASC,GAAOI,GACpCA,EAAA,CAEJ,EAEA,OACEK,EAAAA,IAACC,EAAAA,SAAa,UAAb,CACC,uBAAqB,qBACrB,UAAWC,EAAAA,GACTpB,EAAwB,CACtB,UAAAG,EACA,OAAAQ,EACA,MAAAC,CAAA,CACD,EACDG,GAAmB,gEAAA,EAErB,MAAO,CACL,GAAGX,EACH,GAAI,CAACW,GAAmBP,IAAU,MAAQ,CAAE,MAAO,GAAGM,CAAU,GAAA,CAAI,EAEtE,IAAAT,EACA,gBAAiBW,EAChB,GAAGT,CAAA,CAAA,CAGV,EAEAL,EAAkB,YAAc,oBCvEzB,MAAMmB,EAAgB,CAAC,CAAE,UAAAlB,EAAW,GAAGI,KAAiC,CAC7E,KAAM,CAAE,MAAAK,CAAA,EAAUf,EAAA,EAElB,OACEqB,EAAAA,IAACC,EAAAA,SAAa,MAAb,CACC,uBAAqB,iBACrB,UAAWC,EAAAA,GACT,oCACA,gBACA,kBACA,yBACA,CAAE,aAAcR,IAAU,SAAA,EAC1BT,CAAA,EAED,GAAGI,EAEJ,eAACL,EAAA,CAAA,CAAkB,CAAA,CAAA,CAGzB,EAEAmB,EAAc,YAAc,iBCFrB,MAAMC,EAAW,CAAC,CACvB,UAAAnB,EACA,MAAOoB,EACP,IAAAd,EAAM,IACN,IAAAC,EAAM,EACN,MAAAE,EAAQ,SACR,OAAAD,EAAS,QACT,WAAAE,EACA,cAAAW,EACA,iBAAkBC,EAClB,SAAAC,QAAYL,EAAA,EAAc,EAC1B,IAAAhB,EACA,GAAGE,CACL,IAAwC,CACtC,KAAM,CAACoB,EAASC,CAAU,EAAIC,WAAA,EAExBC,EAAeC,EAAAA,QAAQ,KACpB,CACL,MAAOR,GAAa,KACpB,IAAAd,EACA,IAAAC,EACA,OAAAC,EACA,MAAAC,EACA,UAAWgB,EACX,WAAAf,CAAA,GAED,CAACJ,EAAKC,EAAKa,EAAWZ,EAAQC,EAAOgB,EAAYf,CAAU,CAAC,EAGzDmB,EACJP,IACCD,EACG,CAACS,EAA+BzB,IAC1BA,IAAU,KAAayB,GAAkB,GAEtCT,EAAchB,EAAOC,CAAG,EAEjC,QAEN,OACES,EAAAA,IAACxB,EAAgB,SAAhB,CAAyB,MAAOoC,EAC/B,SAAAZ,EAAAA,IAACC,EAAAA,SAAa,KAAb,CACC,uBAAqB,WACrB,IAAAd,EACA,UAAWe,EAAAA,GAAG,2DAA4DjB,CAAS,EACnF,MAAOoB,GAAa,KACpB,IAAAd,EACA,IAAAC,EACA,kBAAiBiB,EACjB,iBAAAK,EACC,GAAGzB,EAEH,SAAAmB,CAAA,CAAA,EAEL,CAEJ,EAEAJ,EAAS,YAAc,WC9EhB,MAAMY,EAAgB,CAAC,CAC5B,GAAIC,EACJ,SAAAT,EACA,IAAKU,EACL,GAAG7B,CACL,IAA0B,CACxB,MAAM8B,EAAa,GAAGzC,CAAS,UAAU0C,EAAAA,OAAO,GAC1CC,EAAKJ,GAAUE,EAEf,CAAE,UAAAG,CAAA,EAAc3C,EAAA,EAChB4C,EAAUC,EAAAA,YACbC,GAAwB,CACvBH,EAAUG,EAAKJ,EAAK,MAAS,CAC/B,EACA,CAACA,EAAIC,CAAS,CAAA,EAEVnC,EAAMuC,EAAAA,aAAaR,EAAcK,CAAO,EAE9C,OACEvB,EAAAA,IAACC,EAAAA,SAAa,MAAb,CACC,uBAAqB,iBACrB,GAAAoB,EACA,UAAU,wDACV,IAAAlC,EACC,GAAGE,EAEH,SAAAmB,CAAA,CAAA,CAGP,EAEAQ,EAAc,YAAc,iBCjCrB,MAAMW,EAAgB,CAAC,CAC5B,UAAA1C,EACA,SAAAuB,EACA,GAAGnB,CACL,IAEIW,EAAAA,IAACC,EAAAA,SAAa,MAAb,CACC,uBAAqB,iBACrB,UAAWC,EAAAA,GAAG,6DAA8DjB,CAAS,EACpF,GAAGI,EAEH,SAAAmB,CAAA,CAAA,EAKPmB,EAAc,YAAc,iBCjBrB,MAAMvB,EAIT,OAAO,OAAOwB,EAAM,CACtB,MAAOZ,EACP,MAAOb,EACP,MAAOwB,CACT,CAAC,EAEDvB,EAAS,YAAc,WACvBY,EAAc,YAAc,iBAC5Bb,EAAc,YAAc,iBAC5BwB,EAAc,YAAc"}
1
+ {"version":3,"file":"index.js","sources":["../../src/progress/ProgressContext.tsx","../../src/progress/ProgressIndicator.tsx","../../src/progress/ProgressTrack.tsx","../../src/progress/Progress.tsx","../../src/progress/ProgressLabel.tsx","../../src/progress/ProgressValue.tsx","../../src/progress/index.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\n\nimport { ProgressIndicatorStylesProps } from './ProgressIndicator'\n\nexport interface ProgressContextValue {\n value: number | null\n max: number\n min: number\n shape: 'square' | 'rounded'\n intent: ProgressIndicatorStylesProps['intent']\n onLabelId: (id?: string) => void\n onComplete?: () => void\n}\n\nexport const ProgressContext = createContext<ProgressContextValue | null>(null)\n\nexport const ID_PREFIX = ':progress'\n\nexport const useProgress = () => {\n const context = useContext(ProgressContext)\n\n if (!context) {\n throw new Error('useProgress must be used within a Progress provider')\n }\n\n return context\n}\n","import { Progress as BaseProgress } from '@base-ui/react/progress'\nimport { cva, cx, VariantProps } from 'class-variance-authority'\nimport { ComponentProps, PropsWithChildren } from 'react'\n\nimport { useProgress } from './ProgressContext'\n\nexport const progressIndicatorStyles = cva(['h-full w-full', 'transition-width duration-400'], {\n variants: {\n /**\n * Color scheme of the progress component.\n */\n intent: {\n main: ['bg-main'],\n support: ['bg-support'],\n accent: ['bg-accent'],\n success: ['bg-success'],\n alert: ['bg-alert'],\n danger: ['bg-error'],\n info: ['bg-info'],\n neutral: ['bg-neutral'],\n },\n /**\n * Shape of the progress component.\n */\n shape: {\n square: [],\n rounded: ['rounded-sm'],\n },\n },\n})\n\nexport type ProgressIndicatorStylesProps = VariantProps<typeof progressIndicatorStyles>\n\nexport type ProgressIndicatorProps = Omit<ComponentProps<typeof BaseProgress.Indicator>, 'render'>\n\nexport const ProgressIndicator = ({\n className,\n style,\n ref,\n onTransitionEnd,\n ...others\n}: PropsWithChildren<ProgressIndicatorProps>) => {\n const { value, max, min, intent, shape, onComplete } = useProgress()\n\n const percentage = value !== null ? ((value - min) / (max - min)) * 100 : 0\n const isIndeterminate = value === null\n\n const handleTransitionEnd = (\n event: Parameters<NonNullable<ProgressIndicatorProps['onTransitionEnd']>>[0]\n ) => {\n // Call the original onTransitionEnd if provided\n onTransitionEnd?.(event)\n\n // If progress is complete and we have a callback, call it\n if (value !== null && value >= max && onComplete) {\n onComplete()\n }\n }\n\n return (\n <BaseProgress.Indicator\n data-spark-component=\"progress-indicator\"\n className={cx(\n progressIndicatorStyles({\n className,\n intent,\n shape,\n }),\n isIndeterminate && 'animate-standalone-indeterminate-bar absolute -translate-x-1/2'\n )}\n style={{\n ...style,\n ...(!isIndeterminate && value !== null && { width: `${percentage}%` }),\n }}\n ref={ref}\n onTransitionEnd={handleTransitionEnd}\n {...others}\n />\n )\n}\n\nProgressIndicator.displayName = 'ProgressIndicator'\n","import { Progress as BaseProgress } from '@base-ui/react/progress'\nimport { cx } from 'class-variance-authority'\nimport { ComponentProps } from 'react'\n\nimport { useProgress } from './ProgressContext'\nimport { ProgressIndicator } from './ProgressIndicator'\n\nexport type ProgressTrackProps = Omit<ComponentProps<typeof BaseProgress.Track>, 'render'>\n\nexport const ProgressTrack = ({ className, ...others }: ProgressTrackProps) => {\n const { shape } = useProgress()\n\n return (\n <BaseProgress.Track\n data-spark-component=\"progress-track\"\n className={cx(\n 'h-sz-4 relative col-span-2 w-full',\n 'transform-gpu',\n 'overflow-hidden',\n 'bg-on-background/dim-4',\n { 'rounded-sm': shape === 'rounded' },\n className\n )}\n {...others}\n >\n <ProgressIndicator />\n </BaseProgress.Track>\n )\n}\n\nProgressTrack.displayName = 'Progress.Track'\n","import { Progress as BaseProgress } from '@base-ui/react/progress'\nimport { cx } from 'class-variance-authority'\nimport { ComponentProps, PropsWithChildren, Ref, useMemo, useState } from 'react'\n\nimport { ProgressContext } from './ProgressContext'\nimport { ProgressIndicatorStylesProps } from './ProgressIndicator'\nimport { ProgressTrack } from './ProgressTrack'\n\nexport interface ProgressProps\n extends Omit<ComponentProps<typeof BaseProgress.Root>, 'render'>,\n Pick<ProgressIndicatorStylesProps, 'intent'> {\n shape?: 'square' | 'rounded'\n /**\n * Callback called when the progress reaches its maximum value and the transition animation completes.\n */\n onComplete?: () => void\n /**\n * Function that returns a string value that provides a human-readable text alternative for the current value of the progress bar.\n * @deprecated Use `getAriaValueText` instead. This prop is kept for backward compatibility.\n */\n getValueLabel?: (value: number, max: number) => string\n /**\n * Change the default rendered element for the one passed as a child, merging their props and behavior.\n */\n asChild?: boolean\n ref?: Ref<HTMLDivElement>\n}\n\nexport const Progress = ({\n className,\n value: valueProp,\n max = 100,\n min = 0,\n shape = 'square',\n intent = 'support',\n onComplete,\n getValueLabel,\n getAriaValueText: getAriaValueTextProp,\n children = <ProgressTrack />,\n ref,\n ...others\n}: PropsWithChildren<ProgressProps>) => {\n const [labelId, setLabelId] = useState<string>()\n\n const contextValue = useMemo(() => {\n return {\n value: valueProp ?? null,\n max,\n min,\n intent,\n shape,\n onLabelId: setLabelId,\n onComplete,\n }\n }, [max, min, valueProp, intent, shape, setLabelId, onComplete])\n\n // Map getValueLabel to getAriaValueText for backward compatibility\n const getAriaValueText =\n getAriaValueTextProp ||\n (getValueLabel\n ? (formattedValue: string | null, value: number | null) => {\n if (value === null) return formattedValue ?? ''\n\n return getValueLabel(value, max)\n }\n : undefined)\n\n return (\n <ProgressContext.Provider value={contextValue}>\n <BaseProgress.Root\n data-spark-component=\"progress\"\n ref={ref}\n className={cx('gap-sm focus-visible:u-outline grid grid-cols-[1fr_auto]', className)}\n value={valueProp ?? null}\n max={max}\n min={min}\n aria-labelledby={labelId}\n getAriaValueText={getAriaValueText}\n {...others}\n >\n {children}\n </BaseProgress.Root>\n </ProgressContext.Provider>\n )\n}\n\nProgress.displayName = 'Progress'\n","import { Progress as BaseProgress } from '@base-ui/react/progress'\nimport { useMergeRefs } from '@spark-ui/hooks/use-merge-refs'\nimport { ComponentProps, useCallback, useId } from 'react'\n\nimport { ID_PREFIX, useProgress } from './ProgressContext'\n\nexport type ProgressLabelProps = Omit<ComponentProps<typeof BaseProgress.Label>, 'render'>\n\nexport const ProgressLabel = ({\n id: idProp,\n children,\n ref: forwardedRef,\n ...others\n}: ProgressLabelProps) => {\n const internalID = `${ID_PREFIX}-label-${useId()}`\n const id = idProp || internalID\n\n const { onLabelId } = useProgress()\n const rootRef = useCallback(\n (el: HTMLSpanElement) => {\n onLabelId(el ? id : undefined)\n },\n [id, onLabelId]\n )\n const ref = useMergeRefs(forwardedRef, rootRef)\n\n return (\n <BaseProgress.Label\n data-spark-component=\"progress-label\"\n id={id}\n className=\"default:text-body-1 text-on-surface default:font-bold\"\n ref={ref}\n {...others}\n >\n {children}\n </BaseProgress.Label>\n )\n}\n\nProgressLabel.displayName = 'Progress.Label'\n","import { Progress as BaseProgress } from '@base-ui/react/progress'\nimport { cx } from 'class-variance-authority'\nimport { ComponentProps, PropsWithChildren } from 'react'\n\nexport type ProgressValueProps = Omit<ComponentProps<typeof BaseProgress.Value>, 'render'>\n\nexport const ProgressValue = ({\n className,\n children,\n ...others\n}: PropsWithChildren<ProgressValueProps>) => {\n return (\n <BaseProgress.Value\n data-spark-component=\"progress-value\"\n className={cx('default:text-body-1 text-on-surface col-start-2 text-right', className)}\n {...others}\n >\n {children}\n </BaseProgress.Value>\n )\n}\n\nProgressValue.displayName = 'Progress.Value'\n","import { Progress as Root } from './Progress'\nimport { ProgressLabel } from './ProgressLabel'\nimport { ProgressTrack } from './ProgressTrack'\nimport { ProgressValue } from './ProgressValue'\n\nexport const Progress: typeof Root & {\n Label: typeof ProgressLabel\n Track: typeof ProgressTrack\n Value: typeof ProgressValue\n} = Object.assign(Root, {\n Label: ProgressLabel,\n Track: ProgressTrack,\n Value: ProgressValue,\n})\n\nProgress.displayName = 'Progress'\nProgressLabel.displayName = 'Progress.Label'\nProgressTrack.displayName = 'Progress.Track'\nProgressValue.displayName = 'Progress.Value'\n\nexport { type ProgressProps } from './Progress'\nexport { type ProgressLabelProps } from './ProgressLabel'\nexport { type ProgressTrackProps } from './ProgressTrack'\nexport { type ProgressValueProps } from './ProgressValue'\n"],"names":["ProgressContext","createContext","ID_PREFIX","useProgress","context","useContext","progressIndicatorStyles","cva","ProgressIndicator","className","style","ref","onTransitionEnd","others","value","max","min","intent","shape","onComplete","percentage","isIndeterminate","handleTransitionEnd","event","jsx","BaseProgress","cx","ProgressTrack","Progress","valueProp","getValueLabel","getAriaValueTextProp","children","labelId","setLabelId","useState","contextValue","useMemo","getAriaValueText","formattedValue","ProgressLabel","idProp","forwardedRef","internalID","useId","id","onLabelId","rootRef","useCallback","el","useMergeRefs","ProgressValue","Root"],"mappings":"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"}