@ngrok/mantle 0.80.0 → 0.81.1

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 (175) hide show
  1. package/dist/accordion.d.ts +19 -37
  2. package/dist/accordion.js +1 -1
  3. package/dist/agent.json +5 -1
  4. package/dist/alert-dialog.d.ts +15 -48
  5. package/dist/alert-dialog.js +1 -1
  6. package/dist/alert.d.ts +167 -83
  7. package/dist/alert.js +1 -1
  8. package/dist/{anchor-_2meGDfj.js → anchor-DfeXTpKW.js} +1 -1
  9. package/dist/anchor.js +1 -1
  10. package/dist/area-chart.d.ts +505 -0
  11. package/dist/area-chart.js +1 -0
  12. package/dist/badge.js +1 -1
  13. package/dist/bar-chart.d.ts +492 -0
  14. package/dist/bar-chart.js +1 -0
  15. package/dist/breadcrumb.d.ts +6 -24
  16. package/dist/breadcrumb.js +1 -1
  17. package/dist/button-BAno7KIU.js +1 -0
  18. package/dist/{index-C2jj8U4a.d.ts → button-C-gMbPso.d.ts} +2 -2
  19. package/dist/{icon-button-C1AfGnQx.d.ts → button-C7vAl6lS.d.ts} +16 -3
  20. package/dist/{button-BPMwa2jN.d.ts → button-DARFK2KJ.d.ts} +1 -1
  21. package/dist/{button-5WsvzIQ6.js → button-DjpEKt2X.js} +1 -1
  22. package/dist/button-DvHMWAPl.js +1 -0
  23. package/dist/button.d.ts +5 -5
  24. package/dist/button.js +1 -1
  25. package/dist/calendar.js +1 -1
  26. package/dist/card.d.ts +5 -20
  27. package/dist/card.js +1 -1
  28. package/dist/centered-layout.d.ts +5 -20
  29. package/dist/centered-layout.js +1 -1
  30. package/dist/chart-1cVjAcj8.d.ts +334 -0
  31. package/dist/chart-Do2qkrxl.js +2 -0
  32. package/dist/checkbox-0EoxOyMA.js +1 -0
  33. package/dist/checkbox.d.ts +13 -1
  34. package/dist/checkbox.js +1 -1
  35. package/dist/choice-BHwFSSyv.js +1 -0
  36. package/dist/{choice-Ct0KK8jw.d.ts → choice-BNRQXszu.d.ts} +5 -20
  37. package/dist/choice.d.ts +1 -1
  38. package/dist/choice.js +1 -1
  39. package/dist/code-block.d.ts +60 -44
  40. package/dist/code-block.js +6 -6
  41. package/dist/code-block_highlight-utils.d.ts +1 -1
  42. package/dist/code-block_highlight-utils.js +1 -1
  43. package/dist/combobox.d.ts +9 -33
  44. package/dist/combobox.js +1 -1
  45. package/dist/command.d.ts +70 -18
  46. package/dist/command.js +1 -1
  47. package/dist/data-table.d.ts +6 -12
  48. package/dist/data-table.js +1 -1
  49. package/dist/description-list.d.ts +40 -32
  50. package/dist/description-list.js +1 -1
  51. package/dist/{primitive-CJRIlrLz.d.ts → dialog-BM4wPCft.d.ts} +9 -16
  52. package/dist/dialog-DWZWd5Jt.js +1 -0
  53. package/dist/dialog.d.ts +13 -43
  54. package/dist/dialog.js +1 -1
  55. package/dist/dropdown-menu-BbbQuae2.d.ts +1 -0
  56. package/dist/{dropdown-menu-CoyozLzy.d.ts → dropdown-menu-D6pMAY7I.d.ts} +156 -54
  57. package/dist/dropdown-menu-RyDWoKHx.js +1 -0
  58. package/dist/dropdown-menu.d.ts +2 -2
  59. package/dist/dropdown-menu.js +1 -1
  60. package/dist/empty.d.ts +6 -21
  61. package/dist/empty.js +1 -1
  62. package/dist/field-B1wqeZr4.js +1 -0
  63. package/dist/field.d.ts +26 -53
  64. package/dist/field.js +1 -1
  65. package/dist/flag.d.ts +1 -1
  66. package/dist/hooks.js +1 -1
  67. package/dist/hover-card.d.ts +3 -12
  68. package/dist/hover-card.js +1 -1
  69. package/dist/{svg-only-CdI_v82i.d.ts → icon-CX_gj6sW.d.ts} +1 -1
  70. package/dist/{icon-BDqpcZ-n.d.ts → icon-k4E9yNWD.d.ts} +1 -1
  71. package/dist/icon-lZ48P8Nn.js +1 -0
  72. package/dist/icon.d.ts +3 -3
  73. package/dist/icon.js +1 -1
  74. package/dist/icons-DLCs1hLP.js +1 -0
  75. package/dist/icons.d.ts +53 -2
  76. package/dist/icons.js +1 -1
  77. package/dist/input-BnlpQF0c.js +1 -0
  78. package/dist/{input-DV9M6K4v.d.ts → input-BuYDU6CF.d.ts} +1 -1
  79. package/dist/input.d.ts +2 -2
  80. package/dist/input.js +1 -1
  81. package/dist/line-chart.d.ts +491 -0
  82. package/dist/line-chart.js +1 -0
  83. package/dist/{virtual-UrzmaSQm.js → list-51KQvENW.js} +1 -1
  84. package/dist/list.d.ts +5 -20
  85. package/dist/list.js +1 -1
  86. package/dist/llms.txt +5 -1
  87. package/dist/mantle-dark-high-contrast.css +17 -0
  88. package/dist/mantle-dark.css +13 -0
  89. package/dist/mantle-light-high-contrast.css +15 -0
  90. package/dist/mantle.css +29 -0
  91. package/dist/media-object.d.ts +45 -12
  92. package/dist/media-object.js +1 -1
  93. package/dist/multi-select.d.ts +14 -53
  94. package/dist/multi-select.js +1 -1
  95. package/dist/otp-input.d.ts +5 -17
  96. package/dist/otp-input.js +1 -1
  97. package/dist/pagination.d.ts +11 -21
  98. package/dist/pagination.js +1 -1
  99. package/dist/{index-B8mIWKIU.d.ts → popover-CE4OlWkd.d.ts} +1 -4
  100. package/dist/popover-CQ9s7jG5.js +1 -0
  101. package/dist/popover.d.ts +1 -1
  102. package/dist/popover.js +1 -1
  103. package/dist/primitive-trJDqIXJ.js +1 -0
  104. package/dist/progress.d.ts +2 -8
  105. package/dist/progress.js +1 -1
  106. package/dist/qr-code.d.ts +4 -16
  107. package/dist/qr-code.js +1 -1
  108. package/dist/radio-group.d.ts +129 -40
  109. package/dist/radio-group.js +1 -1
  110. package/dist/sandboxed-on-click.d.ts +2 -2
  111. package/dist/scatter-plot.d.ts +495 -0
  112. package/dist/scatter-plot.js +1 -0
  113. package/dist/{select-idm1jy7y.d.ts → select-0z7HVS6r.d.ts} +8 -29
  114. package/dist/select-BCHWvmyC.js +1 -0
  115. package/dist/select.d.ts +1 -1
  116. package/dist/select.js +1 -1
  117. package/dist/selectable-list.d.ts +11 -38
  118. package/dist/selectable-list.js +1 -1
  119. package/dist/sheet.d.ts +22 -49
  120. package/dist/sheet.js +1 -1
  121. package/dist/skip-to-main-link.js +1 -1
  122. package/dist/slider.js +1 -1
  123. package/dist/slot.d.ts +1 -1
  124. package/dist/split-button.d.ts +155 -31
  125. package/dist/split-button.js +1 -1
  126. package/dist/switch.d.ts +1 -1
  127. package/dist/switch.js +1 -1
  128. package/dist/table-CGxJwtbL.js +1 -0
  129. package/dist/{table-DUSvU_Jw.d.ts → table-CZBYEmyK.d.ts} +11 -38
  130. package/dist/table.d.ts +1 -1
  131. package/dist/table.js +1 -1
  132. package/dist/tabs.d.ts +21 -36
  133. package/dist/tabs.js +1 -1
  134. package/dist/text-area.d.ts +2 -2
  135. package/dist/text-area.js +1 -1
  136. package/dist/theme-C26-Xolp.js +1 -0
  137. package/dist/{themes-CYNpplwN.d.ts → theme-FbfjYiD3.d.ts} +16 -0
  138. package/dist/theme-switcher.d.ts +6 -15
  139. package/dist/theme-switcher.js +1 -1
  140. package/dist/theme.d.ts +42 -2
  141. package/dist/theme.js +1 -1
  142. package/dist/toast.d.ts +9 -17
  143. package/dist/toast.js +1 -1
  144. package/dist/tooltip.d.ts +26 -8
  145. package/dist/tooltip.js +1 -1
  146. package/dist/types.js +1 -1
  147. package/package.json +20 -14
  148. package/dist/checkbox-Cq17y0-R.js +0 -1
  149. package/dist/choice-Cc8dA5r8.js +0 -1
  150. package/dist/dialog-CQ2C6vkE.js +0 -1
  151. package/dist/dropdown-menu-CSCDdA3K.js +0 -1
  152. package/dist/field-context-BR01g789.js +0 -1
  153. package/dist/icon-CGgMKpJg.js +0 -1
  154. package/dist/icon-button-DiOhreJD.js +0 -1
  155. package/dist/index-CdPXa9h1.d.ts +0 -1
  156. package/dist/input-CVyAVbim.js +0 -1
  157. package/dist/popover-CBMADtjV.js +0 -1
  158. package/dist/primitive-DCPHJsRs.js +0 -1
  159. package/dist/select-SR_9-bxA.js +0 -1
  160. package/dist/table-GDkapNFi.js +0 -1
  161. package/dist/theme-provider-BftkIiZn.js +0 -1
  162. package/dist/theme-wVnzzx2F.js +0 -1
  163. package/dist/toast-DKgMRv4F.js +0 -1
  164. /package/dist/{sizes-BCoI4bhP.d.ts → button-BCoI4bhP.d.ts} +0 -0
  165. /package/dist/{intents-DdSKSj1c.d.ts → button-DdSKSj1c.d.ts} +0 -0
  166. /package/dist/{resolve-pre-rendered-props-B6OlZrSI.d.ts → code-block-B6OlZrSI.d.ts} +0 -0
  167. /package/dist/{resolve-pre-rendered-props-C9uaM9-V.js → code-block-C9uaM9-V.js} +0 -0
  168. /package/dist/{validation-7QeiTFwl.d.ts → field-7QeiTFwl.d.ts} +0 -0
  169. /package/dist/{validation-Bpptk_9t.js → field-Bpptk_9t.js} +0 -0
  170. /package/dist/{types-D1RY5Tcj.d.ts → icon-D1RY5Tcj.d.ts} +0 -0
  171. /package/dist/{svg-only-d-nMCfAI.js → icon-d-nMCfAI.js} +0 -0
  172. /package/dist/{sort-B_DDQcVD.js → icons-B_DDQcVD.js} +0 -0
  173. /package/dist/{traffic-policy-file-CF1lbWtp.js → icons-CF1lbWtp.js} +0 -0
  174. /package/dist/{is-input-CXmS0OFN.js → input-CXmS0OFN.js} +0 -0
  175. /package/dist/{index-BtwKJTLq.d.ts → slot-BtwKJTLq.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ import{t as e}from"./cx-IiQEAKf5.js";import{cva as t}from"class-variance-authority";const n=t(e(`icon-button`,`inline-flex shrink-0 items-center justify-center rounded-[var(--icon-button-border-radius,0.375rem)] border`,`focus:outline-hidden focus-visible:ring-4`,`disabled:cursor-default disabled:opacity-50`,`not-disabled:active:scale-97 ease-out transition-transform duration-150`),{variants:{appearance:{ghost:`text-accent-600 focus-visible:ring-focus-accent not-disabled:hover:bg-accent-500/10 not-disabled:hover:text-accent-700 border-transparent`,outlined:`border-accent-600 bg-form text-accent-600 focus-visible:ring-focus-accent not-disabled:hover:border-accent-700 not-disabled:hover:bg-accent-500/10 not-disabled:hover:text-accent-700`},intent:{accent:``,danger:``,neutral:``},isLoading:{false:``,true:`opacity-50`},size:{xs:`size-6`,sm:`size-7`,md:`size-9`,lg:`size-10`,xl:`size-12`}},defaultVariants:{intent:`neutral`,size:`md`},compoundVariants:[{appearance:`ghost`,intent:`danger`,class:`text-danger-600 focus-visible:ring-focus-danger not-disabled:hover:bg-danger-500/10 not-disabled:hover:text-danger-700 border-transparent`},{appearance:`outlined`,intent:`danger`,class:`border-danger-600 bg-form text-danger-600 focus-visible:ring-focus-danger not-disabled:hover:border-danger-700 not-disabled:hover:bg-danger-500/10 not-disabled:hover:text-danger-700`},{appearance:`ghost`,intent:`neutral`,class:`text-strong focus-visible:ring-focus-accent not-disabled:hover:bg-neutral-500/10 not-disabled:hover:text-strong border-transparent`},{appearance:`outlined`,intent:`neutral`,class:`border-form bg-form text-strong focus-visible:border-accent-600 focus-visible:ring-focus-accent not-disabled:hover:border-neutral-400 not-disabled:hover:bg-form-hover not-disabled:hover:text-strong focus-visible:not-disabled:hover:border-accent-600 focus-visible:not-disabled:active:border-accent-600`}]});export{n as t};
package/dist/button.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { t as ButtonIntent } from "./intents-DdSKSj1c.js";
2
- import { n as ButtonAppearance, r as ButtonProps, t as Button } from "./button-BPMwa2jN.js";
3
- import { n as IconButtonAppearance, r as IconButtonProps, t as IconButton } from "./icon-button-C1AfGnQx.js";
4
- import { n as ButtonGroupProps, t as ButtonGroup } from "./index-C2jj8U4a.js";
5
- import { t as ButtonSize } from "./sizes-BCoI4bhP.js";
1
+ import { t as ButtonIntent } from "./button-DdSKSj1c.js";
2
+ import { n as ButtonAppearance, r as ButtonProps, t as Button } from "./button-DARFK2KJ.js";
3
+ import { n as IconButtonProps, r as IconButtonAppearance, t as IconButton } from "./button-C7vAl6lS.js";
4
+ import { n as ButtonGroupProps, t as ButtonGroup } from "./button-C-gMbPso.js";
5
+ import { t as ButtonSize } from "./button-BCoI4bhP.js";
6
6
  export { Button, type ButtonAppearance, ButtonGroup, type ButtonGroupProps, type ButtonIntent, type ButtonProps, type ButtonSize, IconButton, type IconButtonAppearance, type IconButtonProps };
package/dist/button.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./icon-button-DiOhreJD.js";import{t}from"./button-5WsvzIQ6.js";import{t as n}from"./button-D9n09xUg.js";export{t as Button,n as ButtonGroup,e as IconButton};
1
+ import{t as e}from"./button-DjpEKt2X.js";import{t}from"./button-BAno7KIU.js";import{t as n}from"./button-D9n09xUg.js";export{e as Button,n as ButtonGroup,t as IconButton};
package/dist/calendar.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./cx-IiQEAKf5.js";import{t}from"./icon-CGgMKpJg.js";import{n}from"./icon-button-DiOhreJD.js";import{jsx as r}from"react/jsx-runtime";import{CaretRightIcon as i}from"@phosphor-icons/react/CaretRight";import{CaretLeftIcon as a}from"@phosphor-icons/react/CaretLeft";import{DayPicker as o}from"react-day-picker";const s=n({appearance:`ghost`,intent:`neutral`,size:`sm`});function c({className:n,classNames:c,showOutsideDays:l=!1,...u}){return r(o,{"data-slot":`calendar`,animate:!1,components:{Chevron:e=>r(t,{svg:e.orientation===`left`?r(a,{}):r(i,{}),className:`size-4`})},classNames:{root:e(`isolate`,n),button_next:e(s,`absolute right-0`),button_previous:e(s,`absolute left-0`),caption_label:`text-sm font-medium`,day:e(`overflow-hidden text-center text-sm p-0 relative focus-within:relative focus-within:z-20 size-7 rounded-md`,u.mode===`range`?`first:has-aria-selected:rounded-l-md last:has-aria-selected:rounded-r-md`:``),day_button:`day size-full rounded-md not-aria-selected:not-disabled:hover:bg-filled-accent/15`,disabled:`text-muted opacity-50`,hidden:`invisible`,month:`space-y-4`,month_caption:`flex justify-center pt-1 relative items-center`,month_grid:`w-full border-collapse space-y-1`,months:`flex flex-col sm:flex-row gap-y-4 sm:gap-x-4 sm:gap-y-0 relative max-w-min`,nav:`flex items-center absolute inset-x-0 top-1 h-5 justify-between z-10`,outside:`day-outside aria-selected:text-on-filled opacity-50 text-muted`,range_end:`day-range-end [&:not(.day-range-start)]:rounded-l-none`,range_middle:`day-range-middle not-disabled:aria-selected:bg-filled-accent/15 aria-selected:text-strong rounded-none not-disabled:aria-selected:hover:bg-filled-accent/25`,range_start:`day-range-start [&:not(.day-range-end)]:rounded-r-none`,selected:`not-disabled:bg-filled-accent text-on-filled not-disabled:hover:bg-filled-accent`,today:`not-aria-selected:not-disabled:text-accent-600 font-medium not-aria-selected:not-disabled:bg-filled-accent/10 rounded-md`,week:`flex w-full mt-1`,weekday:`text-body w-7 text-[0.8rem] text-center font-normal`,weekdays:`flex`,...c},showOutsideDays:l,...u})}export{c as Calendar};
1
+ import{t as e}from"./cx-IiQEAKf5.js";import{t}from"./icon-lZ48P8Nn.js";import{t as n}from"./button-DvHMWAPl.js";import{jsx as r}from"react/jsx-runtime";import{CaretRightIcon as i}from"@phosphor-icons/react/CaretRight";import{CaretLeftIcon as a}from"@phosphor-icons/react/CaretLeft";import{DayPicker as o}from"react-day-picker";const s=n({appearance:`ghost`,intent:`neutral`,size:`sm`});function c({className:n,classNames:c,showOutsideDays:l=!1,...u}){return r(o,{"data-slot":`calendar`,animate:!1,components:{Chevron:e=>r(t,{svg:e.orientation===`left`?r(a,{}):r(i,{}),className:`size-4`})},classNames:{root:e(`isolate`,n),button_next:e(s,`absolute right-0`),button_previous:e(s,`absolute left-0`),caption_label:`text-sm font-medium`,day:e(`overflow-hidden text-center text-sm p-0 relative focus-within:relative focus-within:z-20 size-7 rounded-md`,u.mode===`range`&&`first:has-aria-selected:rounded-l-md last:has-aria-selected:rounded-r-md`),day_button:`day size-full rounded-md not-aria-selected:not-disabled:hover:bg-filled-accent/15`,disabled:`text-muted opacity-50`,hidden:`invisible`,month:`space-y-4`,month_caption:`flex justify-center pt-1 relative items-center`,month_grid:`w-full border-collapse space-y-1`,months:`flex flex-col sm:flex-row gap-y-4 sm:gap-x-4 sm:gap-y-0 relative max-w-min`,nav:`flex items-center absolute inset-x-0 top-1 h-5 justify-between z-10`,outside:`day-outside aria-selected:text-on-filled opacity-50 text-muted`,range_end:`day-range-end [&:not(.day-range-start)]:rounded-l-none`,range_middle:`day-range-middle not-disabled:aria-selected:bg-filled-accent/15 aria-selected:text-strong rounded-none not-disabled:aria-selected:hover:bg-filled-accent/25`,range_start:`day-range-start [&:not(.day-range-end)]:rounded-r-none`,selected:`not-disabled:bg-filled-accent text-on-filled not-disabled:hover:bg-filled-accent`,today:`not-aria-selected:not-disabled:text-accent-600 font-medium not-aria-selected:not-disabled:bg-filled-accent/10 rounded-md`,week:`flex w-full mt-1`,weekday:`text-body w-7 text-[0.8rem] text-center font-normal`,weekdays:`flex`,...c},showOutsideDays:l,...u})}export{c as Calendar};
package/dist/card.d.ts CHANGED
@@ -30,10 +30,7 @@ type CardProps = ComponentProps<"div"> & WithAsChild;
30
30
  * </Card.Root>
31
31
  * ```
32
32
  */
33
- declare const Root: {
34
- ({ asChild, className, children, ref, ...rest }: CardProps): import("react").JSX.Element;
35
- displayName: string;
36
- };
33
+ declare const Root: ({ asChild, className, children, ref, ...rest }: CardProps) => import("react").JSX.Element;
37
34
  /**
38
35
  * The main content of a card. Usually composed as a direct child of a `Card` component.
39
36
  *
@@ -60,10 +57,7 @@ declare const Root: {
60
57
  * </Card.Root>
61
58
  * ```
62
59
  */
63
- declare const Body: {
64
- ({ asChild, className, children, ref, ...rest }: CardProps): import("react").JSX.Element;
65
- displayName: string;
66
- };
60
+ declare const Body: ({ asChild, className, children, ref, ...rest }: CardProps) => import("react").JSX.Element;
67
61
  /**
68
62
  * The footer container of a card. Usually composed as a direct child of a `Card` component.
69
63
  *
@@ -84,10 +78,7 @@ declare const Body: {
84
78
  * </Card.Root>
85
79
  * ```
86
80
  */
87
- declare const Footer: {
88
- ({ asChild, className, children, ref, ...rest }: CardProps): import("react").JSX.Element;
89
- displayName: string;
90
- };
81
+ declare const Footer: ({ asChild, className, children, ref, ...rest }: CardProps) => import("react").JSX.Element;
91
82
  /**
92
83
  * The header container of a card. Usually composed as a direct child of a `Card` component.
93
84
  *
@@ -108,10 +99,7 @@ declare const Footer: {
108
99
  * </Card.Root>
109
100
  * ```
110
101
  */
111
- declare const Header: {
112
- ({ asChild, className, children, ref, ...rest }: CardProps): import("react").JSX.Element;
113
- displayName: string;
114
- };
102
+ declare const Header: ({ asChild, className, children, ref, ...rest }: CardProps) => import("react").JSX.Element;
115
103
  type CardTitleProps = ComponentProps<"h3"> & WithAsChild;
116
104
  /**
117
105
  * The title of a card. Usually composed as a direct child of a `Card.Header`
@@ -137,10 +125,7 @@ type CardTitleProps = ComponentProps<"h3"> & WithAsChild;
137
125
  * </Card.Root>
138
126
  * ```
139
127
  */
140
- declare const Title: {
141
- ({ className, asChild, ref, ...props }: CardTitleProps): import("react").JSX.Element;
142
- displayName: string;
143
- };
128
+ declare const Title: ({ className, asChild, ref, ...props }: CardTitleProps) => import("react").JSX.Element;
144
129
  /**
145
130
  * A container that can be used to display content in a box resembling a
146
131
  * physical card.
package/dist/card.js CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./cx-IiQEAKf5.js";import{t}from"./slot-CDk0Bb9z.js";import{jsx as n}from"react/jsx-runtime";const r=({asChild:r=!1,className:i,children:a,ref:o,...s})=>n(r?t:`div`,{ref:o,"data-slot":`card`,className:e(`border-card bg-card relative rounded-md border`,i),...s,children:a});r.displayName=`Card`;const i=({asChild:r=!1,className:i,children:a,ref:o,...s})=>n(r?t:`div`,{ref:o,"data-slot":`card-body`,className:e(`p-6 border-t border-card-muted first:border-t-0`,i),...s,children:a});i.displayName=`CardBody`;const a=({asChild:r=!1,className:i,children:a,ref:o,...s})=>n(r?t:`div`,{ref:o,"data-slot":`card-footer`,className:e(`px-6 py-3 border-t border-card-muted first:border-t-0`,i),...s,children:a});a.displayName=`CardFooter`;const o=({asChild:r=!1,className:i,children:a,ref:o,...s})=>n(r?t:`div`,{ref:o,"data-slot":`card-header`,className:e(`px-6 py-3 border-t border-card-muted first:border-t-0`,i),...s,children:a});o.displayName=`CardHeader`;const s=({className:r,asChild:i,ref:a,...o})=>n(i?t:`h3`,{ref:a,"data-slot":`card-title`,className:e(`text-strong text-base font-medium`,r),...o});s.displayName=`CardTitle`;const c={Root:r,Body:i,Footer:a,Header:o,Title:s};export{c as Card};
1
+ import{t as e}from"./cx-IiQEAKf5.js";import{t}from"./slot-CDk0Bb9z.js";import{jsx as n}from"react/jsx-runtime";const r={Root:({asChild:r=!1,className:i,children:a,ref:o,...s})=>n(r?t:`div`,{ref:o,"data-slot":`card`,className:e(`border-card bg-card relative rounded-md border`,i),...s,children:a}),Body:({asChild:r=!1,className:i,children:a,ref:o,...s})=>n(r?t:`div`,{ref:o,"data-slot":`card-body`,className:e(`p-6 border-t border-card-muted first:border-t-0`,i),...s,children:a}),Footer:({asChild:r=!1,className:i,children:a,ref:o,...s})=>n(r?t:`div`,{ref:o,"data-slot":`card-footer`,className:e(`px-6 py-3 border-t border-card-muted first:border-t-0`,i),...s,children:a}),Header:({asChild:r=!1,className:i,children:a,ref:o,...s})=>n(r?t:`div`,{ref:o,"data-slot":`card-header`,className:e(`px-6 py-3 border-t border-card-muted first:border-t-0`,i),...s,children:a}),Title:({className:r,asChild:i,ref:a,...o})=>n(i?t:`h3`,{ref:a,"data-slot":`card-title`,className:e(`text-strong text-base font-medium`,r),...o})};export{r as Card};
@@ -34,10 +34,7 @@ import { ComponentProps } from "react";
34
34
  * </CenteredLayout.Root>
35
35
  * ```
36
36
  */
37
- declare const Root: {
38
- ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"div"> & WithAsChild & WithDataSlot): import("react").JSX.Element;
39
- displayName: string;
40
- };
37
+ declare const Root: ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"div"> & WithAsChild & WithDataSlot) => import("react").JSX.Element;
41
38
  /**
42
39
  * A full-window-width strip pinned above everything else in the layout —
43
40
  * including `CenteredLayout.Header` — for impersonation notices, environment
@@ -73,10 +70,7 @@ declare const Root: {
73
70
  * </CenteredLayout.Root>
74
71
  * ```
75
72
  */
76
- declare const Notice: {
77
- ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"div"> & WithAsChild & WithDataSlot): import("react").JSX.Element;
78
- displayName: string;
79
- };
73
+ declare const Notice: ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"div"> & WithAsChild & WithDataSlot) => import("react").JSX.Element;
80
74
  /**
81
75
  * A utility strip at the top of the layout — an account chip, a close/dismiss
82
76
  * button, and similar page furniture for focused flows (checkout, plan
@@ -108,10 +102,7 @@ declare const Notice: {
108
102
  * </CenteredLayout.Root>
109
103
  * ```
110
104
  */
111
- declare const Header: {
112
- ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"header"> & WithAsChild & WithDataSlot): import("react").JSX.Element;
113
- displayName: string;
114
- };
105
+ declare const Header: ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"header"> & WithAsChild & WithDataSlot) => import("react").JSX.Element;
115
106
  /**
116
107
  * The growing, centered region of the layout. Renders a `<div>` with
117
108
  * `flex flex-1 flex-col items-center justify-center gap-6 py-4` so its
@@ -148,10 +139,7 @@ declare const Header: {
148
139
  * </CenteredLayout.Root>
149
140
  * ```
150
141
  */
151
- declare const Body: {
152
- ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"div"> & WithAsChild & WithDataSlot): import("react").JSX.Element;
153
- displayName: string;
154
- };
142
+ declare const Body: ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"div"> & WithAsChild & WithDataSlot) => import("react").JSX.Element;
155
143
  /**
156
144
  * A pinned utility strip at the bottom of the layout — a theme switcher,
157
145
  * legal links, and similar page furniture. Renders a semantic `<footer>`
@@ -183,10 +171,7 @@ declare const Body: {
183
171
  * </CenteredLayout.Root>
184
172
  * ```
185
173
  */
186
- declare const Footer: {
187
- ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"footer"> & WithAsChild & WithDataSlot): import("react").JSX.Element;
188
- displayName: string;
189
- };
174
+ declare const Footer: ({ asChild, children, className, "data-slot": dataSlot, ...props }: ComponentProps<"footer"> & WithAsChild & WithDataSlot) => import("react").JSX.Element;
190
175
  /**
191
176
  * A viewport-filling centered page flow for sign-in, sign-up, onboarding,
192
177
  * 404, checkout, and other focused full-page states. It owns structure only —
@@ -1 +1 @@
1
- import{t as e}from"./cx-IiQEAKf5.js";import{n as t,t as n}from"./slot-CDk0Bb9z.js";import{jsx as r}from"react/jsx-runtime";const i=({asChild:i,children:a,className:o,"data-slot":s,...c})=>r(i?n:`div`,{"data-slot":t(s,`centered-layout`),className:e(`flex min-h-full flex-col`,o),...c,children:a});i.displayName=`CenteredLayout`;const a=({asChild:i,children:a,className:o,"data-slot":s,...c})=>r(i?n:`div`,{"data-slot":t(s,`centered-layout-notice`),className:e(`w-full shrink-0`,o),...c,children:a});a.displayName=`CenteredLayoutNotice`;const o=({asChild:i,children:a,className:o,"data-slot":s,...c})=>r(i?n:`header`,{"data-slot":t(s,`centered-layout-header`),className:e(`flex shrink-0 items-center px-4 py-4`,o),...c,children:a});o.displayName=`CenteredLayoutHeader`;const s=({asChild:i,children:a,className:o,"data-slot":s,...c})=>r(i?n:`div`,{"data-slot":t(s,`centered-layout-body`),className:e(`flex flex-1 flex-col items-center justify-center gap-6 py-4`,o),...c,children:a});s.displayName=`CenteredLayoutBody`;const c=({asChild:i,children:a,className:o,"data-slot":s,...c})=>r(i?n:`footer`,{"data-slot":t(s,`centered-layout-footer`),className:e(`flex shrink-0 items-center px-4 py-4`,o),...c,children:a});c.displayName=`CenteredLayoutFooter`;const l={Root:i,Notice:a,Header:o,Body:s,Footer:c};export{l as CenteredLayout};
1
+ import{t as e}from"./cx-IiQEAKf5.js";import{n as t,t as n}from"./slot-CDk0Bb9z.js";import{jsx as r}from"react/jsx-runtime";const i={Root:({asChild:i,children:a,className:o,"data-slot":s,...c})=>r(i?n:`div`,{"data-slot":t(s,`centered-layout`),className:e(`flex min-h-full flex-col`,o),...c,children:a}),Notice:({asChild:i,children:a,className:o,"data-slot":s,...c})=>r(i?n:`div`,{"data-slot":t(s,`centered-layout-notice`),className:e(`w-full shrink-0`,o),...c,children:a}),Header:({asChild:i,children:a,className:o,"data-slot":s,...c})=>r(i?n:`header`,{"data-slot":t(s,`centered-layout-header`),className:e(`flex shrink-0 items-center px-4 py-4`,o),...c,children:a}),Body:({asChild:i,children:a,className:o,"data-slot":s,...c})=>r(i?n:`div`,{"data-slot":t(s,`centered-layout-body`),className:e(`flex flex-1 flex-col items-center justify-center gap-6 py-4`,o),...c,children:a}),Footer:({asChild:i,children:a,className:o,"data-slot":s,...c})=>r(i?n:`footer`,{"data-slot":t(s,`centered-layout-footer`),className:e(`flex shrink-0 items-center px-4 py-4`,o),...c,children:a})};export{i as CenteredLayout};
@@ -0,0 +1,334 @@
1
+ import { t as SelfClosingWithAsChild } from "./as-child-D23mGo4f.js";
2
+ import { t as WithDataSlot } from "./data-slot-CChfb_cv.js";
3
+ import { ComponentProps, ReactNode } from "react";
4
+ //#region src/components/chart/types.d.ts
5
+ /**
6
+ * Shared types for the internal canvas chart engine.
7
+ *
8
+ * This module is internal shared implementation — it is not exported from the
9
+ * package. The public components built on it are `BarChart` (../bar-chart),
10
+ * `LineChart` (../line-chart), `AreaChart` (../area-chart), and
11
+ * `ScatterPlot` (../scatter-plot), mirroring how `dialog/primitive` backs
12
+ * the dialog family.
13
+ */
14
+ /**
15
+ * The value of the x field in a chart datum: a category label, a number, or a
16
+ * point in time.
17
+ */
18
+ type XValue = string | number | Date;
19
+ /**
20
+ * A single row of chart data — any object shape. Series read one numeric key
21
+ * per row; the x key identifies the row's position on the x axis. Missing
22
+ * keys and `null` values are rendered as gaps. Typed as `object` (not an
23
+ * index signature) so interface-typed rows compose without ceremony; reads
24
+ * happen through `datumValue` at the data boundary.
25
+ */
26
+ type ChartDatum = object;
27
+ /**
28
+ * How x values map onto the x axis:
29
+ *
30
+ * - `"band"` — categorical bands with air between them (bar charts).
31
+ * - `"point"` — categorical positions with no band thickness (line/area over categories).
32
+ * - `"linear"` — continuous numeric axis.
33
+ * - `"time"` — continuous time axis with calendar-aware ticks.
34
+ */
35
+ type XScaleKind = "band" | "point" | "linear" | "time";
36
+ /**
37
+ * The x scale kinds a consumer may request on line/area charts. Bar charts are
38
+ * always `"band"`.
39
+ */
40
+ type ContinuousXScale = Exclude<XScaleKind, "band">;
41
+ /**
42
+ * The mark a registered series paints.
43
+ */
44
+ type SeriesMark = "bar" | "line" | "area" | "scatter";
45
+ /**
46
+ * The ordered chart color tokens. Slots are assigned to series in registration
47
+ * order and stick to their `dataKey` for the chart's lifetime; series past the
48
+ * eighth slot use `"chart-other"`.
49
+ */
50
+ type ChartColorToken = "chart-1" | "chart-2" | "chart-3" | "chart-4" | "chart-5" | "chart-6" | "chart-7" | "chart-8" | "chart-other";
51
+ /**
52
+ * A series color: one of the validated chart tokens (preferred — they adapt to
53
+ * light/dark/high-contrast themes) or any CSS color string as an escape hatch.
54
+ * Static colors (e.g. raw hex) do not adapt across themes; custom palettes
55
+ * must be validated for colorblind-safe adjacency and surface contrast. A
56
+ * series that carries good/bad meaning (error rate, pass/fail) should wear the
57
+ * semantic status colors, never a categorical chart slot.
58
+ */
59
+ type SeriesColor = ChartColorToken | (string & {});
60
+ /**
61
+ * Line/area interpolation between points.
62
+ */
63
+ type CurveKind = "linear" | "monotone" | "step";
64
+ /**
65
+ * The glyph a series' points wear: scatter marks, line canvas markers, and
66
+ * the hover dot on line/area charts. Shape is a redundant encoding alongside
67
+ * color, so series stay distinguishable without color vision.
68
+ */
69
+ type PointShape = "circle" | "square" | "triangle" | "diamond";
70
+ /**
71
+ * The fill texture a bar series wears: solid color (the default), diagonal
72
+ * hatch lines at 45° (`"hatch"`), the 135° mirror (`"hatch-reverse"`), both
73
+ * (`"crosshatch"`), rungs perpendicular to the bar's length
74
+ * (`"perpendicular"` — horizontal lines on vertical bars), or an offset dot
75
+ * grid (`"dots"`). Texture is a redundant identity encoding alongside color —
76
+ * inked tone-on-tone at equal loudness across slots — so grouped and stacked
77
+ * series stay distinguishable without color vision, in grayscale print, and
78
+ * under forced colors.
79
+ */
80
+ type BarTexture = "solid" | "hatch" | "hatch-reverse" | "crosshatch" | "perpendicular" | "dots";
81
+ /**
82
+ * The direction a bar chart's bars run: vertical columns rising from a bottom
83
+ * baseline (the default), or horizontal bars growing rightward from a left
84
+ * baseline — the layout for long category labels, which move into the left
85
+ * gutter at full width instead of colliding under the plot.
86
+ */
87
+ type BarOrientation = "vertical" | "horizontal";
88
+ /**
89
+ * A series with its resolved presentation, exposed to the legend, tooltip, and
90
+ * data table.
91
+ */
92
+ type SeriesMeta = {
93
+ dataKey: string;
94
+ label: string;
95
+ mark: SeriesMark;
96
+ /** The CSS color string the series paints with (token-resolved). */
97
+ color: string;
98
+ /** The color as authored (token name or custom string) before resolution. */
99
+ colorInput: SeriesColor;
100
+ /** The point glyph the series wears (scatter marks, legend keys, hover dots). */
101
+ shape: PointShape;
102
+ /** The fill texture the series wears (bar marks and their legend keys). */
103
+ texture: BarTexture;
104
+ };
105
+ /**
106
+ * Grid line orientation.
107
+ */
108
+ type GridLines = "horizontal" | "vertical" | "both";
109
+ /**
110
+ * The hover/keyboard snapshot published by the engine. One snapshot describes
111
+ * the active x position and every series' value at it — the tooltip, the
112
+ * aria-live announcement, and `onDatumActivate` all read from it.
113
+ */
114
+ type HoverSnapshot = {
115
+ /** The active row's index in the consumer's `data` array. */
116
+ index: number;
117
+ /** The x value at the active index. */
118
+ xValue: XValue;
119
+ /** The original consumer datum at the active index. */
120
+ datum: ChartDatum;
121
+ /** Every registered series' value at the active index, in visual order. */
122
+ points: Array<{
123
+ dataKey: string;
124
+ label: string;
125
+ /** `null` renders as a gap (an em dash in the tooltip). */
126
+ value: number | null;
127
+ color: string;
128
+ }>;
129
+ /** The depth value at the active index (3D scatter plots only). */
130
+ zValue?: number | null;
131
+ /** Whether the snapshot came from keyboard stepping (vs pointer hover). */
132
+ viaKeyboard: boolean;
133
+ };
134
+ /**
135
+ * Payload for datum activation (click / Enter / Space).
136
+ */
137
+ type ChartDatumEvent<TDatum extends ChartDatum = ChartDatum> = {
138
+ /** The activated row's index in the consumer's `data` array. */
139
+ index: number;
140
+ /** The x value of the activated row. */
141
+ xValue: XValue;
142
+ /** The activated row itself. */
143
+ datum: TDatum;
144
+ /** The series nearest the pointer when activated by mouse; `null` for keyboard/whole-band activation. */
145
+ dataKey: string | null;
146
+ };
147
+ /**
148
+ * The y domain for value axes. Bar and area charts anchor the baseline at
149
+ * zero, so their minimum is fixed at `0`; line charts may override both ends.
150
+ */
151
+ type YDomain = [number | "auto", number | "auto"];
152
+ //#endregion
153
+ //#region src/components/chart/primitive.d.ts
154
+ /**
155
+ * The shared React layer of the chart family. `BarChart`, `LineChart`,
156
+ * `AreaChart`, and `ScatterPlot` are thin public wrappers over these
157
+ * primitives, mirroring how `dialog/primitive` backs the dialog family and
158
+ * `list/primitive` backs the list family.
159
+ *
160
+ * Interaction is the Root's UNCONDITIONAL contract: the crosshair/hover band,
161
+ * tooltip, keyboard stepping (arrows / PageUp / PageDown / Home / End /
162
+ * Escape, Enter/Space to activate), aria-live announcements, and the sr-only
163
+ * data table all ship with Root itself. The composed Tooltip part customizes
164
+ * the readout; omitting it never removes the hover layer, and no part removal
165
+ * can strip keyboard access to the data.
166
+ *
167
+ * This module is internal shared implementation — it is not exported from the
168
+ * package.
169
+ */
170
+ /**
171
+ * Every interactive chart must have an accessible name: either a direct
172
+ * `aria-label` or an `aria-labelledby` reference to a visible title (preferred
173
+ * when the chart sits under a heading — no drift-prone duplicated text).
174
+ * Enforced at the type level; the name lands on the interaction overlay (the
175
+ * chart's single named element — the canvas itself is aria-hidden so AT never
176
+ * announces the chart twice). Decorative charts are exempt — see
177
+ * {@link ChartAccessibilityProps}.
178
+ */
179
+ type ChartAccessibleName = {
180
+ "aria-label": string;
181
+ "aria-labelledby"?: never;
182
+ } | {
183
+ "aria-labelledby": string;
184
+ "aria-label"?: never;
185
+ };
186
+ /**
187
+ * The interaction props an interactive chart may wire — the controlled
188
+ * `activeIndex` and the two notification callbacks. Modeled apart from the base
189
+ * props so a decorative chart can forbid them: a decorative chart has no hover
190
+ * UI and never activates a datum, so these would be dead code.
191
+ */
192
+ type ChartInteractionProps = {
193
+ /**
194
+ * Controlled active datum index — an index into `data` (`null` = none).
195
+ * Omit for uncontrolled hover.
196
+ */
197
+ activeIndex?: number | null;
198
+ /** Notified when hover/keyboard moves the active index (an index into `data`). */
199
+ onActiveIndexChange?: (index: number | null) => void;
200
+ /** Notified on datum activation: mark click, or Enter/Space on the focused chart. */
201
+ onDatumActivate?: (event: ChartDatumEvent) => void;
202
+ };
203
+ /**
204
+ * The accessibility + interactivity contract every chart Root takes, modeled
205
+ * as a discriminated union over `decorative` so invalid combinations are
206
+ * unrepresentable:
207
+ *
208
+ * - **Interactive** (the default — `decorative` omitted or `false`): the chart
209
+ * carries real data. It requires an accessible name (`aria-label` xor
210
+ * `aria-labelledby`) and may wire the interaction callbacks. This is the
211
+ * full contract charts have always had.
212
+ * - **Decorative** (`decorative: true`): the chart is a placeholder or
213
+ * atmospheric graphic whose values are not real data — synthetic bars behind
214
+ * an empty state, a hero backdrop. It still renders and animates, but it is
215
+ * hidden from assistive technology (no accessible name, no sr-only data
216
+ * table, no live region), removed from the tab order, and inert to pointer
217
+ * and keyboard, so the accessible-name and interaction props are forbidden.
218
+ *
219
+ * `decorative` communicates intent — "these values are not information" —
220
+ * where a `disabled` flag would be ambiguous (a chart is not a form control).
221
+ */
222
+ type ChartAccessibilityProps = ({
223
+ decorative?: false;
224
+ } & ChartAccessibleName & ChartInteractionProps) | {
225
+ /**
226
+ * Render the chart as a decorative placeholder: it keeps its visual
227
+ * rendering and animation but is hidden from assistive technology,
228
+ * removed from the tab order, and inert to pointer and keyboard — no
229
+ * hover band, tooltip, data table, or live region. Use it for
230
+ * empty-state backdrops and atmospheric graphics whose values are not
231
+ * real data; it forbids the accessible-name and interaction props,
232
+ * which have no meaning without real data.
233
+ *
234
+ * @default false
235
+ */
236
+ decorative: true;
237
+ "aria-label"?: never;
238
+ "aria-labelledby"?: never;
239
+ activeIndex?: never;
240
+ onActiveIndexChange?: never;
241
+ onDatumActivate?: never;
242
+ };
243
+ /**
244
+ * Root props shared by every chart kind, WITHOUT the accessibility/interaction
245
+ * union or the data/x props. Public wrappers `Omit` from this base and
246
+ * re-intersect `ChartAccessibilityProps` — `Omit` over a union type flattens
247
+ * it, which would silently make the required accessible name optional and
248
+ * erase the `decorative` discriminant.
249
+ */
250
+ type ChartRootBaseProps = Omit<ComponentProps<"div">, "aria-label" | "aria-labelledby"> & WithDataSlot & {
251
+ /** Override the automatic y domain. */
252
+ yDomain?: YDomain;
253
+ /** Stack the composed series (bar/area charts). */
254
+ stacked?: boolean;
255
+ /** Animate enter/update transitions. `prefers-reduced-motion` always wins. */
256
+ animate?: boolean;
257
+ /**
258
+ * Hold the previous render at reduced opacity while fresh data loads —
259
+ * never swap a chart that has rendered once for a skeleton.
260
+ */
261
+ pending?: boolean;
262
+ };
263
+ type GridPrimitiveProps = {
264
+ /** Which gridlines to draw. */
265
+ lines?: GridLines;
266
+ };
267
+ type XAxisPrimitiveProps = {
268
+ /**
269
+ * Format a tick label. Receives the chart's x values: the category value on
270
+ * band/point scales, a `Date` on time scales, and a number on linear scales.
271
+ */
272
+ tickFormat?: (value: XValue) => string;
273
+ /**
274
+ * Target tick count (continuous scales only; a density-derived default
275
+ * otherwise). Approximate: ticks land on human-friendly steps, and a linear
276
+ * axis whose x values are all integers never renders fractional ticks —
277
+ * the integer step wins over the requested count.
278
+ */
279
+ tickCount?: number;
280
+ };
281
+ type YAxisPrimitiveProps = {
282
+ /** Format a tick label. Defaults to thousands-separated numbers. */
283
+ tickFormat?: (value: number) => string;
284
+ /**
285
+ * Target tick count. Approximate: ticks land on human-friendly steps, and
286
+ * when every series value is an integer (counts) the axis never renders
287
+ * fractional ticks — the integer step wins over the requested count.
288
+ */
289
+ tickCount?: number;
290
+ };
291
+ type ReferenceLinePrimitiveProps = {
292
+ /** The y value the line marks (an SLO threshold, a budget, a limit). */
293
+ y: number;
294
+ /** A short label painted above the line's right end. */
295
+ label?: string;
296
+ /** Line color; defaults to the neutral reference color. */
297
+ color?: SeriesColor;
298
+ };
299
+ type TooltipPrimitiveProps = Omit<ComponentProps<"div">, "children"> & {
300
+ /** Format the x/label row of the readout. */
301
+ labelFormat?: (value: XValue) => ReactNode;
302
+ /** Format each series value. */
303
+ valueFormat?: (value: number, dataKey: string) => ReactNode;
304
+ /** The per-series color key: a short stroke (default) or nothing. */
305
+ indicator?: "line" | "none";
306
+ /** Extra content appended below the series rows (e.g. a "view logs" hint). */
307
+ footer?: ReactNode | ((snapshot: HoverSnapshot) => ReactNode);
308
+ /** Replace the entire readout. */
309
+ children?: (snapshot: HoverSnapshot) => ReactNode;
310
+ };
311
+ type LegendPrimitiveProps = Omit<ComponentProps<"div">, "children"> & {
312
+ /** Replace the default legend items; receives the registered series. */
313
+ children?: (series: SeriesMeta[]) => ReactNode;
314
+ };
315
+ type CopyButtonPrimitiveProps = Omit<ComponentProps<"button">, "children" | "type" | "onCopy"> & SelfClosingWithAsChild & {
316
+ /**
317
+ * The accessible label for the copy button. This label will be visually
318
+ * hidden but announced to screen reader users, similar to alt text for
319
+ * img tags.
320
+ *
321
+ * @default "Copy data as Markdown"
322
+ */
323
+ label?: string;
324
+ /**
325
+ * Callback fired after a successful copy, passes the serialized markdown.
326
+ */
327
+ onCopy?: (value: string) => void;
328
+ /**
329
+ * Callback fired when an error occurs during copying.
330
+ */
331
+ onCopyError?: (error: unknown) => void;
332
+ };
333
+ //#endregion
334
+ export { SeriesColor as _, LegendPrimitiveProps as a, XAxisPrimitiveProps as c, BarTexture as d, ChartDatum as f, PointShape as g, CurveKind as h, GridPrimitiveProps as i, YAxisPrimitiveProps as l, ContinuousXScale as m, ChartRootBaseProps as n, ReferenceLinePrimitiveProps as o, ChartDatumEvent as p, CopyButtonPrimitiveProps as r, TooltipPrimitiveProps as s, ChartAccessibilityProps as t, BarOrientation as u };