@cloudgrid-io/ui 0.0.2 → 0.2.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 (187) hide show
  1. package/README.md +109 -0
  2. package/dist/blocks/agent-prompt.d.ts +37 -0
  3. package/dist/blocks/agent-prompt.d.ts.map +1 -0
  4. package/dist/blocks/agent-prompt.js +53 -0
  5. package/dist/blocks/agent-prompt.js.map +1 -0
  6. package/dist/blocks/card-grid.d.ts +38 -0
  7. package/dist/blocks/card-grid.d.ts.map +1 -0
  8. package/dist/blocks/card-grid.js +32 -0
  9. package/dist/blocks/card-grid.js.map +1 -0
  10. package/dist/blocks/compare-table.d.ts +13 -0
  11. package/dist/blocks/compare-table.d.ts.map +1 -0
  12. package/dist/blocks/compare-table.js +55 -0
  13. package/dist/blocks/compare-table.js.map +1 -0
  14. package/dist/blocks/creation-tile.d.ts +57 -0
  15. package/dist/blocks/creation-tile.d.ts.map +1 -0
  16. package/dist/blocks/creation-tile.js +32 -0
  17. package/dist/blocks/creation-tile.js.map +1 -0
  18. package/dist/blocks/cta-banner.d.ts +31 -0
  19. package/dist/blocks/cta-banner.d.ts.map +1 -0
  20. package/dist/blocks/cta-banner.js +31 -0
  21. package/dist/blocks/cta-banner.js.map +1 -0
  22. package/dist/blocks/drop-zone.d.ts +54 -0
  23. package/dist/blocks/drop-zone.d.ts.map +1 -0
  24. package/dist/blocks/drop-zone.js +121 -0
  25. package/dist/blocks/drop-zone.js.map +1 -0
  26. package/dist/blocks/feature-cells.d.ts +46 -0
  27. package/dist/blocks/feature-cells.d.ts.map +1 -0
  28. package/dist/blocks/feature-cells.js +46 -0
  29. package/dist/blocks/feature-cells.js.map +1 -0
  30. package/dist/blocks/hub-index.d.ts +55 -0
  31. package/dist/blocks/hub-index.d.ts.map +1 -0
  32. package/dist/blocks/hub-index.js +22 -0
  33. package/dist/blocks/hub-index.js.map +1 -0
  34. package/dist/blocks/logo.d.ts +24 -0
  35. package/dist/blocks/logo.d.ts.map +1 -0
  36. package/dist/blocks/logo.js +34 -0
  37. package/dist/blocks/logo.js.map +1 -0
  38. package/dist/blocks/option-card.d.ts +31 -0
  39. package/dist/blocks/option-card.d.ts.map +1 -0
  40. package/dist/blocks/option-card.js +32 -0
  41. package/dist/blocks/option-card.js.map +1 -0
  42. package/dist/blocks/page-heading.d.ts +33 -0
  43. package/dist/blocks/page-heading.d.ts.map +1 -0
  44. package/dist/blocks/page-heading.js +30 -0
  45. package/dist/blocks/page-heading.js.map +1 -0
  46. package/dist/blocks/plug-method.d.ts +76 -0
  47. package/dist/blocks/plug-method.d.ts.map +1 -0
  48. package/dist/blocks/plug-method.js +30 -0
  49. package/dist/blocks/plug-method.js.map +1 -0
  50. package/dist/blocks/pricing-tier-cards.d.ts +47 -0
  51. package/dist/blocks/pricing-tier-cards.d.ts.map +1 -0
  52. package/dist/blocks/pricing-tier-cards.js +12 -0
  53. package/dist/blocks/pricing-tier-cards.js.map +1 -0
  54. package/dist/blocks/pricing-tiers.d.ts +29 -0
  55. package/dist/blocks/pricing-tiers.d.ts.map +1 -0
  56. package/dist/blocks/pricing-tiers.js +30 -0
  57. package/dist/blocks/pricing-tiers.js.map +1 -0
  58. package/dist/blocks/quote.d.ts +27 -0
  59. package/dist/blocks/quote.d.ts.map +1 -0
  60. package/dist/blocks/quote.js +28 -0
  61. package/dist/blocks/quote.js.map +1 -0
  62. package/dist/blocks/rich-text.d.ts +38 -0
  63. package/dist/blocks/rich-text.d.ts.map +1 -0
  64. package/dist/blocks/rich-text.js +39 -0
  65. package/dist/blocks/rich-text.js.map +1 -0
  66. package/dist/blocks/stage-panel.d.ts +5 -0
  67. package/dist/blocks/stage-panel.d.ts.map +1 -0
  68. package/dist/blocks/stage-panel.js +30 -0
  69. package/dist/blocks/stage-panel.js.map +1 -0
  70. package/dist/blocks/step-item.d.ts +24 -0
  71. package/dist/blocks/step-item.d.ts.map +1 -0
  72. package/dist/blocks/step-item.js +34 -0
  73. package/dist/blocks/step-item.js.map +1 -0
  74. package/dist/blocks/tool-logo.d.ts +15 -0
  75. package/dist/blocks/tool-logo.d.ts.map +1 -0
  76. package/dist/blocks/tool-logo.js +59 -0
  77. package/dist/blocks/tool-logo.js.map +1 -0
  78. package/dist/blocks/tool-marks.d.ts +120 -0
  79. package/dist/blocks/tool-marks.d.ts.map +1 -0
  80. package/dist/blocks/tool-marks.js +94 -0
  81. package/dist/blocks/tool-marks.js.map +1 -0
  82. package/dist/index.d.ts +45 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +63 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/lib/cloudgrid-cn.d.ts +65 -0
  87. package/dist/lib/cloudgrid-cn.d.ts.map +1 -0
  88. package/dist/lib/cloudgrid-cn.js +90 -0
  89. package/dist/lib/cloudgrid-cn.js.map +1 -0
  90. package/dist/tokens/base.json +119 -38
  91. package/dist/tokens/surface-ink.json +63 -0
  92. package/dist/tokens/surface-panel.json +63 -0
  93. package/dist/tokens.css +115 -19
  94. package/dist/tokens.json +20 -2
  95. package/dist/ui/accordion.d.ts +7 -0
  96. package/dist/ui/accordion.d.ts.map +1 -0
  97. package/dist/ui/accordion.js +19 -0
  98. package/dist/ui/accordion.js.map +1 -0
  99. package/dist/ui/badge.d.ts +8 -0
  100. package/dist/ui/badge.d.ts.map +1 -0
  101. package/dist/ui/badge.js +34 -0
  102. package/dist/ui/badge.js.map +1 -0
  103. package/dist/ui/button.d.ts +9 -0
  104. package/dist/ui/button.d.ts.map +1 -0
  105. package/dist/ui/button.js +35 -0
  106. package/dist/ui/button.js.map +1 -0
  107. package/dist/ui/card.d.ts +12 -0
  108. package/dist/ui/card.d.ts.map +1 -0
  109. package/dist/ui/card.js +26 -0
  110. package/dist/ui/card.js.map +1 -0
  111. package/dist/ui/carousel.d.ts +37 -0
  112. package/dist/ui/carousel.d.ts.map +1 -0
  113. package/dist/ui/carousel.js +34 -0
  114. package/dist/ui/carousel.js.map +1 -0
  115. package/dist/ui/checkbox.d.ts +4 -0
  116. package/dist/ui/checkbox.d.ts.map +1 -0
  117. package/dist/ui/checkbox.js +10 -0
  118. package/dist/ui/checkbox.js.map +1 -0
  119. package/dist/ui/code-block.d.ts +9 -0
  120. package/dist/ui/code-block.d.ts.map +1 -0
  121. package/dist/ui/code-block.js +57 -0
  122. package/dist/ui/code-block.js.map +1 -0
  123. package/dist/ui/combobox.d.ts +25 -0
  124. package/dist/ui/combobox.d.ts.map +1 -0
  125. package/dist/ui/combobox.js +59 -0
  126. package/dist/ui/combobox.js.map +1 -0
  127. package/dist/ui/dialog.d.ts +18 -0
  128. package/dist/ui/dialog.d.ts.map +1 -0
  129. package/dist/ui/dialog.js +39 -0
  130. package/dist/ui/dialog.js.map +1 -0
  131. package/dist/ui/dropdown-menu.d.ts +30 -0
  132. package/dist/ui/dropdown-menu.d.ts.map +1 -0
  133. package/dist/ui/dropdown-menu.js +53 -0
  134. package/dist/ui/dropdown-menu.js.map +1 -0
  135. package/dist/ui/input-group.d.ts +19 -0
  136. package/dist/ui/input-group.d.ts.map +1 -0
  137. package/dist/ui/input-group.js +59 -0
  138. package/dist/ui/input-group.js.map +1 -0
  139. package/dist/ui/input.d.ts +4 -0
  140. package/dist/ui/input.d.ts.map +1 -0
  141. package/dist/ui/input.js +9 -0
  142. package/dist/ui/input.js.map +1 -0
  143. package/dist/ui/number-field.d.ts +10 -0
  144. package/dist/ui/number-field.d.ts.map +1 -0
  145. package/dist/ui/number-field.js +39 -0
  146. package/dist/ui/number-field.js.map +1 -0
  147. package/dist/ui/panel.d.ts +36 -0
  148. package/dist/ui/panel.d.ts.map +1 -0
  149. package/dist/ui/panel.js +39 -0
  150. package/dist/ui/panel.js.map +1 -0
  151. package/dist/ui/select.d.ts +16 -0
  152. package/dist/ui/select.d.ts.map +1 -0
  153. package/dist/ui/select.js +36 -0
  154. package/dist/ui/select.js.map +1 -0
  155. package/dist/ui/separator.d.ts +4 -0
  156. package/dist/ui/separator.d.ts.map +1 -0
  157. package/dist/ui/separator.js +9 -0
  158. package/dist/ui/separator.js.map +1 -0
  159. package/dist/ui/skeleton.d.ts +3 -0
  160. package/dist/ui/skeleton.d.ts.map +1 -0
  161. package/dist/ui/skeleton.js +7 -0
  162. package/dist/ui/skeleton.js.map +1 -0
  163. package/dist/ui/sonner.d.ts +4 -0
  164. package/dist/ui/sonner.d.ts.map +1 -0
  165. package/dist/ui/sonner.js +36 -0
  166. package/dist/ui/sonner.js.map +1 -0
  167. package/dist/ui/switch.d.ts +6 -0
  168. package/dist/ui/switch.d.ts.map +1 -0
  169. package/dist/ui/switch.js +9 -0
  170. package/dist/ui/switch.js.map +1 -0
  171. package/dist/ui/table.d.ts +11 -0
  172. package/dist/ui/table.d.ts.map +1 -0
  173. package/dist/ui/table.js +30 -0
  174. package/dist/ui/table.js.map +1 -0
  175. package/dist/ui/tabs.d.ts +11 -0
  176. package/dist/ui/tabs.d.ts.map +1 -0
  177. package/dist/ui/tabs.js +38 -0
  178. package/dist/ui/tabs.js.map +1 -0
  179. package/dist/ui/textarea.d.ts +4 -0
  180. package/dist/ui/textarea.d.ts.map +1 -0
  181. package/dist/ui/textarea.js +8 -0
  182. package/dist/ui/textarea.js.map +1 -0
  183. package/dist/ui/tooltip.d.ts +8 -0
  184. package/dist/ui/tooltip.d.ts.map +1 -0
  185. package/dist/ui/tooltip.js +37 -0
  186. package/dist/ui/tooltip.js.map +1 -0
  187. package/package.json +42 -8
package/dist/tokens.json CHANGED
@@ -8,6 +8,12 @@
8
8
  "--cg-secondary": "#b6de68",
9
9
  "--cg-tertiary": "#60e9f0",
10
10
  "--cg-danger": "#E53935",
11
+ "--cg-online": "#00a05c",
12
+ "--cg-offline": "var(--cg-neutral-500)",
13
+ "--cg-expired": "#b0662a",
14
+ "--cg-online-fill": "#e6f7ef",
15
+ "--cg-expired-fill": "#fdf3e0",
16
+ "--cg-danger-fill": "#fceded",
11
17
  "--cg-primary-press": "#4b39db",
12
18
  "--cg-primary-tint": "#eeecfe",
13
19
  "--cg-secondary-press": "#a6cf57",
@@ -129,7 +135,13 @@
129
135
  "--cg-link": "#ffffff",
130
136
  "--cg-link-hover": "var(--cg-secondary)",
131
137
  "--cg-surface-card": "transparent",
132
- "--cg-danger": "#FFDAD6"
138
+ "--cg-danger": "#FFDAD6",
139
+ "--cg-online": "#C8F5DC",
140
+ "--cg-offline": "#D9D4FB",
141
+ "--cg-expired": "#FFE2B8",
142
+ "--cg-online-fill": "rgba(255, 255, 255, 0.16)",
143
+ "--cg-expired-fill": "rgba(255, 255, 255, 0.16)",
144
+ "--cg-danger-fill": "rgba(255, 255, 255, 0.16)"
133
145
  },
134
146
  "ink": {
135
147
  "--cg-text-primary": "#ffffff",
@@ -145,7 +157,13 @@
145
157
  "--cg-focus-ring": "rgba(182, 222, 104, 0.45)",
146
158
  "--cg-link": "#ffffff",
147
159
  "--cg-link-hover": "var(--cg-secondary)",
148
- "--cg-danger": "#FF8A80"
160
+ "--cg-danger": "#FF8A80",
161
+ "--cg-online": "#5FD99A",
162
+ "--cg-offline": "#9A9A9A",
163
+ "--cg-expired": "#F0B45E",
164
+ "--cg-online-fill": "rgba(255, 255, 255, 0.08)",
165
+ "--cg-expired-fill": "rgba(255, 255, 255, 0.08)",
166
+ "--cg-danger-fill": "rgba(255, 255, 255, 0.08)"
149
167
  }
150
168
  }
151
169
  }
@@ -0,0 +1,7 @@
1
+ import { Accordion as AccordionPrimitive } from "@base-ui/react/accordion";
2
+ declare function Accordion({ className, ...props }: AccordionPrimitive.Root.Props): import("react").JSX.Element;
3
+ declare function AccordionItem({ className, ...props }: AccordionPrimitive.Item.Props): import("react").JSX.Element;
4
+ declare function AccordionTrigger({ className, children, ...props }: AccordionPrimitive.Trigger.Props): import("react").JSX.Element;
5
+ declare function AccordionContent({ className, children, ...props }: AccordionPrimitive.Panel.Props): import("react").JSX.Element;
6
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
7
+ //# sourceMappingURL=accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../src/ui/accordion.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAK1E,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,+BAQxE;AAED,iBAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,+BAQ5E;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,+BAiBlC;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,kBAAkB,CAAC,KAAK,CAAC,KAAK,+BAiBhC;AAED,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA"}
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Accordion as AccordionPrimitive } from "@base-ui/react/accordion";
4
+ import { cn } from "../lib/cloudgrid-cn.js";
5
+ import { ChevronDownIcon, ChevronUpIcon } from "lucide-react";
6
+ function Accordion({ className, ...props }) {
7
+ return (_jsx(AccordionPrimitive.Root, { "data-slot": "accordion", className: cn("flex w-full flex-col", className), ...props }));
8
+ }
9
+ function AccordionItem({ className, ...props }) {
10
+ return (_jsx(AccordionPrimitive.Item, { "data-slot": "accordion-item", className: cn("not-last:border-b", className), ...props }));
11
+ }
12
+ function AccordionTrigger({ className, children, ...props }) {
13
+ return (_jsx(AccordionPrimitive.Header, { className: "flex", children: _jsxs(AccordionPrimitive.Trigger, { "data-slot": "accordion-trigger", className: cn("group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-body-sm font-medium transition-all outline-none hover:underline focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring focus-visible:after:border-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground", className), ...props, children: [children, _jsx(ChevronDownIcon, { "data-slot": "accordion-trigger-icon", className: "pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden" }), _jsx(ChevronUpIcon, { "data-slot": "accordion-trigger-icon", className: "pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline" })] }) }));
14
+ }
15
+ function AccordionContent({ className, children, ...props }) {
16
+ return (_jsx(AccordionPrimitive.Panel, { "data-slot": "accordion-content", className: "overflow-hidden text-body-sm data-open:animate-accordion-down data-closed:animate-accordion-up", ...props, children: _jsx("div", { className: cn("h-(--accordion-panel-height) pt-0 pb-2.5 data-ending-style:h-0 data-starting-style:h-0 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4", className), children: children }) }));
17
+ }
18
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
19
+ //# sourceMappingURL=accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.js","sourceRoot":"","sources":["../../src/ui/accordion.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAE1E,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE7D,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IACvE,OAAO,CACL,KAAC,kBAAkB,CAAC,IAAI,iBACZ,WAAW,EACrB,SAAS,EAAE,EAAE,CAAC,sBAAsB,EAAE,SAAS,CAAC,KAC5C,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAiC;IAC3E,OAAO,CACL,KAAC,kBAAkB,CAAC,IAAI,iBACZ,gBAAgB,EAC1B,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,SAAS,CAAC,KACzC,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACyB;IACjC,OAAO,CACL,KAAC,kBAAkB,CAAC,MAAM,IAAC,SAAS,EAAC,MAAM,YACzC,MAAC,kBAAkB,CAAC,OAAO,iBACf,mBAAmB,EAC7B,SAAS,EAAE,EAAE,CACX,8fAA8f,EAC9f,SAAS,CACV,KACG,KAAK,aAER,QAAQ,EACT,KAAC,eAAe,iBAAW,wBAAwB,EAAC,SAAS,EAAC,2EAA2E,GAAG,EAC5I,KAAC,aAAa,iBAAW,wBAAwB,EAAC,SAAS,EAAC,kFAAkF,GAAG,IACtH,GACH,CAC7B,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACuB;IAC/B,OAAO,CACL,KAAC,kBAAkB,CAAC,KAAK,iBACb,mBAAmB,EAC7B,SAAS,EAAC,gGAAgG,KACtG,KAAK,YAET,cACE,SAAS,EAAE,EAAE,CACX,yLAAyL,EACzL,SAAS,CACV,YAEA,QAAQ,GACL,GACmB,CAC5B,CAAA;AACH,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const badgeVariants: (props?: ({
4
+ variant?: "link" | "default" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ declare function Badge({ className, variant, render, ...props }: useRender.ComponentProps<"span"> & VariantProps<typeof badgeVariants>): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
7
+ export { Badge, badgeVariants };
8
+ //# sourceMappingURL=badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../src/ui/badge.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,aAAa;;8EAqBlB,CAAA;AAED,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,OAAmB,EACnB,MAAM,EACN,GAAG,KAAK,EACT,EAAE,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,8FAevE;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA"}
@@ -0,0 +1,34 @@
1
+ import { mergeProps } from "@base-ui/react/merge-props";
2
+ import { useRender } from "@base-ui/react/use-render";
3
+ import { cva } from "class-variance-authority";
4
+ import { cn } from "../lib/cloudgrid-cn.js";
5
+ const badgeVariants = cva("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-caption font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!", {
6
+ variants: {
7
+ variant: {
8
+ default: "bg-primary text-primary-foreground [a]:hover:bg-primary/80",
9
+ secondary: "bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",
10
+ destructive: "bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",
11
+ outline: "border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",
12
+ ghost: "hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",
13
+ link: "text-primary underline-offset-4 hover:underline",
14
+ },
15
+ },
16
+ defaultVariants: {
17
+ variant: "default",
18
+ },
19
+ });
20
+ function Badge({ className, variant = "default", render, ...props }) {
21
+ return useRender({
22
+ defaultTagName: "span",
23
+ props: mergeProps({
24
+ className: cn(badgeVariants({ variant }), className),
25
+ }, props),
26
+ render,
27
+ state: {
28
+ slot: "badge",
29
+ variant,
30
+ },
31
+ });
32
+ }
33
+ export { Badge, badgeVariants };
34
+ //# sourceMappingURL=badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.js","sourceRoot":"","sources":["../../src/ui/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAEvC,MAAM,aAAa,GAAG,GAAG,CACvB,8eAA8e,EAC9e;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,4DAA4D;YACrE,SAAS,EACP,kEAAkE;YACpE,WAAW,EACT,gKAAgK;YAClK,OAAO,EACL,kFAAkF;YACpF,KAAK,EACH,mEAAmE;YACrE,IAAI,EAAE,iDAAiD;SACxD;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;KACnB;CACF,CACF,CAAA;AAED,SAAS,KAAK,CAAC,EACb,SAAS,EACT,OAAO,GAAG,SAAS,EACnB,MAAM,EACN,GAAG,KAAK,EAC8D;IACtE,OAAO,SAAS,CAAC;QACf,cAAc,EAAE,MAAM;QACtB,KAAK,EAAE,UAAU,CACf;YACE,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC;SACrD,EACD,KAAK,CACN;QACD,MAAM;QACN,KAAK,EAAE;YACL,IAAI,EAAE,OAAO;YACb,OAAO;SACR;KACF,CAAC,CAAA;AACJ,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA"}
@@ -0,0 +1,9 @@
1
+ import { Button as ButtonPrimitive } from "@base-ui/react/button";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const buttonVariants: (props?: ({
4
+ variant?: "link" | "default" | "secondary" | "destructive" | "outline" | "ghost" | null | undefined;
5
+ size?: "default" | "xs" | "sm" | "lg" | "icon" | "icon-xs" | "icon-sm" | "icon-lg" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ declare function Button({ className, variant, size, ...props }: ButtonPrimitive.Props & VariantProps<typeof buttonVariants>): import("react").JSX.Element;
8
+ export { Button, buttonVariants };
9
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/ui/button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,cAAc;;;8EAmCnB,CAAA;AAED,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAmB,EACnB,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,+BAQ7D;AAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Button as ButtonPrimitive } from "@base-ui/react/button";
3
+ import { cva } from "class-variance-authority";
4
+ import { cn } from "../lib/cloudgrid-cn.js";
5
+ const buttonVariants = cva("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-body-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", {
6
+ variants: {
7
+ variant: {
8
+ default: "bg-primary text-primary-foreground hover:bg-primary/80",
9
+ outline: "border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
10
+ secondary: "bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",
11
+ ghost: "hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",
12
+ destructive: "bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",
13
+ link: "text-primary underline-offset-4 hover:underline",
14
+ },
15
+ size: {
16
+ default: "h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
17
+ xs: "h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-caption in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",
18
+ sm: "h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-caption in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",
19
+ lg: "h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",
20
+ icon: "size-8",
21
+ "icon-xs": "size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3",
22
+ "icon-sm": "size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg",
23
+ "icon-lg": "size-9",
24
+ },
25
+ },
26
+ defaultVariants: {
27
+ variant: "default",
28
+ size: "default",
29
+ },
30
+ });
31
+ function Button({ className, variant = "default", size = "default", ...props }) {
32
+ return (_jsx(ButtonPrimitive, { "data-slot": "button", className: cn(buttonVariants({ variant, size, className })), ...props }));
33
+ }
34
+ export { Button, buttonVariants };
35
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../src/ui/button.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAA;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAEvC,MAAM,cAAc,GAAG,GAAG,CACxB,8lBAA8lB,EAC9lB;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EAAE,wDAAwD;YACjE,OAAO,EACL,iLAAiL;YACnL,SAAS,EACP,gLAAgL;YAClL,KAAK,EACH,kHAAkH;YACpH,WAAW,EACT,6NAA6N;YAC/N,IAAI,EAAE,iDAAiD;SACxD;QACD,IAAI,EAAE;YACJ,OAAO,EACL,sFAAsF;YACxF,EAAE,EAAE,oNAAoN;YACxN,EAAE,EAAE,wNAAwN;YAC5N,EAAE,EAAE,sFAAsF;YAC1F,IAAI,EAAE,QAAQ;YACd,SAAS,EACP,yHAAyH;YAC3H,SAAS,EACP,oFAAoF;YACtF,SAAS,EAAE,QAAQ;SACpB;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;KAChB;CACF,CACF,CAAA;AAED,SAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,SAAS,EAChB,GAAG,KAAK,EACoD;IAC5D,OAAO,CACL,KAAC,eAAe,iBACJ,QAAQ,EAClB,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,KACvD,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,12 @@
1
+ import * as React from "react";
2
+ declare function Card({ className, size, ...props }: React.ComponentProps<"div"> & {
3
+ size?: "default" | "sm";
4
+ }): React.JSX.Element;
5
+ declare function CardHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
6
+ declare function CardTitle({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
7
+ declare function CardDescription({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
8
+ declare function CardAction({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
9
+ declare function CardContent({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
10
+ declare function CardFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
11
+ export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent, };
12
+ //# sourceMappingURL=card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../src/ui/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,iBAAS,IAAI,CAAC,EACZ,SAAS,EACT,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,qBAY3D;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAWvE;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAWtE;AAED,iBAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQ5E;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAWvE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQxE;AAED,iBAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAWvE;AAED,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,GACZ,CAAA"}
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { cn } from "../lib/cloudgrid-cn.js";
4
+ function Card({ className, size = "default", ...props }) {
5
+ return (_jsx("div", { "data-slot": "card", "data-size": size, className: cn("group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card py-(--card-spacing) text-body-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[>img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl", className), ...props }));
6
+ }
7
+ function CardHeader({ className, ...props }) {
8
+ return (_jsx("div", { "data-slot": "card-header", className: cn("group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)", className), ...props }));
9
+ }
10
+ function CardTitle({ className, ...props }) {
11
+ return (_jsx("div", { "data-slot": "card-title", className: cn("font-heading text-body-md leading-snug font-medium group-data-[size=sm]/card:text-body-sm", className), ...props }));
12
+ }
13
+ function CardDescription({ className, ...props }) {
14
+ return (_jsx("div", { "data-slot": "card-description", className: cn("text-body-sm text-muted-foreground", className), ...props }));
15
+ }
16
+ function CardAction({ className, ...props }) {
17
+ return (_jsx("div", { "data-slot": "card-action", className: cn("col-start-2 row-span-2 row-start-1 self-start justify-self-end", className), ...props }));
18
+ }
19
+ function CardContent({ className, ...props }) {
20
+ return (_jsx("div", { "data-slot": "card-content", className: cn("px-(--card-spacing)", className), ...props }));
21
+ }
22
+ function CardFooter({ className, ...props }) {
23
+ return (_jsx("div", { "data-slot": "card-footer", className: cn("flex items-center rounded-b-xl border-t bg-muted/50 p-(--card-spacing)", className), ...props }));
24
+ }
25
+ export { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent, };
26
+ //# sourceMappingURL=card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card.js","sourceRoot":"","sources":["../../src/ui/card.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AAEvC,SAAS,IAAI,CAAC,EACZ,SAAS,EACT,IAAI,GAAG,SAAS,EAChB,GAAG,KAAK,EACkD;IAC1D,OAAO,CACL,2BACY,MAAM,eACL,IAAI,EACf,SAAS,EAAE,EAAE,CACX,2ZAA2Z,EAC3Z,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACtE,OAAO,CACL,2BACY,aAAa,EACvB,SAAS,EAAE,EAAE,CACX,wPAAwP,EACxP,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACrE,OAAO,CACL,2BACY,YAAY,EACtB,SAAS,EAAE,EAAE,CACX,2FAA2F,EAC3F,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,eAAe,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IAC3E,OAAO,CACL,2BACY,kBAAkB,EAC5B,SAAS,EAAE,EAAE,CAAC,oCAAoC,EAAE,SAAS,CAAC,KAC1D,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACtE,OAAO,CACL,2BACY,aAAa,EACvB,SAAS,EAAE,EAAE,CACX,gEAAgE,EAChE,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACvE,OAAO,CACL,2BACY,cAAc,EACxB,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC,KAC3C,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAA+B;IACtE,OAAO,CACL,2BACY,aAAa,EACvB,SAAS,EAAE,EAAE,CACX,wEAAwE,EACxE,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,OAAO,EACL,IAAI,EACJ,UAAU,EACV,UAAU,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,WAAW,GACZ,CAAA"}
@@ -0,0 +1,37 @@
1
+ import * as React from "react";
2
+ /**
3
+ * A scroll-snapped image strip with dot navigation. Ported from v0's
4
+ * `core/Carousel`, and the thing to preserve is its posture rather than its CSS.
5
+ *
6
+ * ## It works with JavaScript off, and that is deliberate
7
+ *
8
+ * The strip is natively scroll-snapped and the dots are **real anchors to real
9
+ * slide ids**, so navigation is browser behaviour, not script. The effect below
10
+ * only mirrors scroll position onto `aria-current`. It never creates the ability
11
+ * to move between slides, so nothing breaks when it does not run.
12
+ *
13
+ * If you change one thing here, do not make the dots buttons that call a handler.
14
+ * That would look equivalent and would silently make the component depend on
15
+ * hydration.
16
+ *
17
+ * `IntersectionObserver` is absent in jsdom and in any non-browser host, so its
18
+ * absence is checked rather than assumed: the component stays usable there, just
19
+ * without the scroll sync.
20
+ *
21
+ * v0's `band` and `container` wrappers are dropped, as everywhere else.
22
+ */
23
+ type CarouselSlide = {
24
+ image: string;
25
+ alt: string;
26
+ caption?: string;
27
+ link?: string;
28
+ };
29
+ declare function Carousel({ title, slides, id, className, ...props }: Omit<React.ComponentProps<"section">, "ref" | "id"> & {
30
+ title?: string;
31
+ slides: CarouselSlide[];
32
+ /** Prefix for the per-slide anchor ids. Defaults to a generated unique one. */
33
+ id?: string;
34
+ }): React.JSX.Element;
35
+ export { Carousel };
36
+ export type { CarouselSlide };
37
+ //# sourceMappingURL=carousel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../src/ui/carousel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,iBAAS,QAAQ,CAAC,EAChB,KAAK,EACL,MAAM,EACN,EAAE,EACF,SAAS,EACT,GAAG,KAAK,EACT,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,GAAG;IACvD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,+EAA+E;IAC/E,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ,qBAkFA;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA;AACnB,YAAY,EAAE,aAAa,EAAE,CAAA"}
@@ -0,0 +1,34 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { cn } from "../lib/cloudgrid-cn.js";
5
+ function Carousel({ title, slides, id, className, ...props }) {
6
+ // Colons are stripped because useId emits them and they are not valid in a
7
+ // fragment identifier, which is what these ids are for.
8
+ const autoId = React.useId().replace(/:/g, "");
9
+ const prefix = id ?? `slide-${autoId}`;
10
+ const trackRef = React.useRef(null);
11
+ const [active, setActive] = React.useState(0);
12
+ React.useEffect(() => {
13
+ const track = trackRef.current;
14
+ if (!track || typeof IntersectionObserver === "undefined")
15
+ return;
16
+ const figures = [...track.children];
17
+ const observer = new IntersectionObserver((entries) => {
18
+ for (const entry of entries) {
19
+ if (entry.isIntersecting)
20
+ setActive(figures.indexOf(entry.target));
21
+ }
22
+ }, { root: track, threshold: 0.6 });
23
+ figures.forEach((figure) => observer.observe(figure));
24
+ return () => observer.disconnect();
25
+ }, [slides]);
26
+ return (_jsxs("section", { "data-slot": "carousel", className: cn("flex flex-col gap-4", className), ...props, children: [title ? _jsx("h2", { className: "text-heading-lg font-medium text-ink", children: title }) : null, _jsx("div", { ref: trackRef, className: "flex snap-x snap-mandatory gap-4 overflow-x-auto scroll-smooth [-webkit-overflow-scrolling:touch]", children: slides.map((slide, i) => (_jsxs("figure", { id: `${prefix}-${i}`, className: "m-0 shrink-0 snap-start basis-[min(100%,32rem)]", children: [_jsx("img", { src: slide.image, alt: slide.alt, loading: "lazy", decoding: "async", className: "w-full rounded-xl" }), slide.caption ? (_jsx("figcaption", { className: "mt-2 text-body-sm text-body", children: slide.link ? (_jsx("a", { href: slide.link, className: "underline-offset-4 hover:underline", children: slide.caption })) : (slide.caption) })) : null] }, slide.image))) }), _jsx("div", { role: "group", "aria-label": title ?? "Carousel", className: "flex gap-2", children: slides.map((slide, i) => (
27
+ // An anchor rather than a button, and empty rather than labelled inline:
28
+ // the accessible name comes from aria-label, and it names the slide
29
+ // rather than the position alone, because "slide 3 of 7" tells a screen
30
+ // reader nothing about what is there.
31
+ _jsx("a", { href: `#${prefix}-${i}`, "aria-current": i === active ? "true" : "false", "aria-label": `Go to slide ${i + 1}: ${slide.alt}`, className: cn("size-2.5 rounded-pill border border-line transition-colors", "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring", i === active ? "border-ink bg-ink" : "hover:border-line-strong") }, slide.image))) })] }));
32
+ }
33
+ export { Carousel };
34
+ //# sourceMappingURL=carousel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"carousel.js","sourceRoot":"","sources":["../../src/ui/carousel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Checkbox as CheckboxPrimitive } from "@base-ui/react/checkbox";
2
+ declare function Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props): import("react").JSX.Element;
3
+ export { Checkbox };
4
+ //# sourceMappingURL=checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../../src/ui/checkbox.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAKvE,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,+BAmBtE;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Checkbox as CheckboxPrimitive } from "@base-ui/react/checkbox";
4
+ import { cn } from "../lib/cloudgrid-cn.js";
5
+ import { CheckIcon } from "lucide-react";
6
+ function Checkbox({ className, ...props }) {
7
+ return (_jsx(CheckboxPrimitive.Root, { "data-slot": "checkbox", className: cn("peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:data-checked:bg-primary", className), ...props, children: _jsx(CheckboxPrimitive.Indicator, { "data-slot": "checkbox-indicator", className: "grid place-content-center text-current transition-none [&>svg]:size-3.5", children: _jsx(CheckIcon, {}) }) }));
8
+ }
9
+ export { Checkbox };
10
+ //# sourceMappingURL=checkbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.js","sourceRoot":"","sources":["../../src/ui/checkbox.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAEvE,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,SAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAgC;IACrE,OAAO,CACL,KAAC,iBAAiB,CAAC,IAAI,iBACX,UAAU,EACpB,SAAS,EAAE,EAAE,CACX,gqBAAgqB,EAChqB,SAAS,CACV,KACG,KAAK,YAET,KAAC,iBAAiB,CAAC,SAAS,iBAChB,oBAAoB,EAC9B,SAAS,EAAC,yEAAyE,YAEnF,KAAC,SAAS,KACR,GAC0B,GACP,CAC1B,CAAA;AACH,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ declare function CodeBlock({ code, label, copyable, className, ...props }: React.ComponentProps<"div"> & {
3
+ code: string;
4
+ /** Small mono label above the command, e.g. the shell or the file it goes in. */
5
+ label?: string;
6
+ copyable?: boolean;
7
+ }): React.JSX.Element;
8
+ export { CodeBlock };
9
+ //# sourceMappingURL=code-block.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-block.d.ts","sourceRoot":"","sources":["../../src/ui/code-block.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAoB9B,iBAAS,SAAS,CAAC,EACjB,IAAI,EACJ,KAAK,EACL,QAAe,EACf,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,qBAqFA;AAED,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -0,0 +1,57 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { CheckIcon, CopyIcon } from "lucide-react";
5
+ import { Button } from "./button.js";
6
+ import { cn } from "../lib/cloudgrid-cn.js";
7
+ // Ported from the v0 library (atomicfuse/ui, core/CodeBlock), rebuilt rather
8
+ // than transcribed. Three things changed and each is the point of porting at
9
+ // all:
10
+ //
11
+ // 1. v0 shipped a 58-line stylesheet of BEM classes. Every value in it was
12
+ // already a --cg-* token, so it maps to utilities one for one.
13
+ // 2. v0 hardcoded rgba(255,255,255,0.22) for the copy control's border and
14
+ // 0.12 for its hover, because it had no way to say "this sits on ink".
15
+ // data-cg-surface="ink" says exactly that, and every token inside then
16
+ // resolves to its on-ink value with no literals at all.
17
+ // 3. The copy control was a bespoke pill. It is now the Button component, so
18
+ // it inherits the focus ring, the disabled handling and the surface flip
19
+ // instead of reimplementing them.
20
+ function CodeBlock({ code, label, copyable = true, className, ...props }) {
21
+ const [state, setState] = React.useState("idle");
22
+ const timer = React.useRef(undefined);
23
+ React.useEffect(() => () => clearTimeout(timer.current), []);
24
+ async function copy() {
25
+ try {
26
+ await navigator.clipboard.writeText(code);
27
+ setState("copied");
28
+ }
29
+ catch {
30
+ // Clipboard access is refused in plenty of ordinary situations: an
31
+ // insecure origin, a denied permission, an embedded frame. Saying so is
32
+ // better than a button that silently does nothing.
33
+ setState("blocked");
34
+ }
35
+ clearTimeout(timer.current);
36
+ timer.current = setTimeout(() => setState("idle"), 1600);
37
+ }
38
+ return (_jsxs("div", { "data-slot": "code-block", "data-cg-surface": "ink", className: cn("relative rounded-md bg-code px-6 py-5 text-ink", className), ...props, children: [label && (_jsx("p", { "data-slot": "code-block-label", className: "mb-3 font-mono text-caption text-faint", children: label })), _jsx("pre", { className: cn("m-0 font-mono text-mono leading-mono break-words whitespace-pre-wrap text-on-code",
39
+ // A copy control over a one-line command would sit on top of it.
40
+ copyable && "pr-24"), children: _jsx("code", { children: code }) }), copyable && (_jsxs(Button, { variant: "outline", size: "sm",
41
+ // bg-transparent is required, not cosmetic. The outline variant sets
42
+ // bg-background, which maps to --cg-surface-page and is deliberately
43
+ // NOT flipped by the surface blocks, while its label colour is, so on
44
+ // ink the control renders white text on a white pill: 1:1 contrast,
45
+ // completely invisible. v0's copy pill was `background: transparent`
46
+ // and swapping it for the shared variant is what introduced this.
47
+ // Tracked as issue #20, which affects every outline button on a
48
+ // flipped surface, not just this one. This override is local cover
49
+ // until that is fixed centrally.
50
+ className: "absolute top-3.5 right-3.5 rounded-pill bg-transparent", onClick: copy, "aria-label": `Copy ${label ?? "code"} to the clipboard`, children: [state === "copied" ? _jsx(CheckIcon, {}) : _jsx(CopyIcon, {}), state === "copied" ? "Copied" : state === "blocked" ? "Blocked" : "Copy"] })), _jsx("span", { "aria-live": "polite", className: "sr-only", children: state === "copied"
51
+ ? "Copied to the clipboard"
52
+ : state === "blocked"
53
+ ? "The browser blocked the copy"
54
+ : "" })] }));
55
+ }
56
+ export { CodeBlock };
57
+ //# sourceMappingURL=code-block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-block.js","sourceRoot":"","sources":["../../src/ui/code-block.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import * as React from "react";
2
+ import { Combobox as ComboboxPrimitive } from "@base-ui/react";
3
+ declare const Combobox: typeof ComboboxPrimitive.Root;
4
+ declare function ComboboxValue({ ...props }: ComboboxPrimitive.Value.Props): React.JSX.Element;
5
+ declare function ComboboxTrigger({ className, children, ...props }: ComboboxPrimitive.Trigger.Props): React.JSX.Element;
6
+ declare function ComboboxInput({ className, children, disabled, showTrigger, showClear, ...props }: ComboboxPrimitive.Input.Props & {
7
+ showTrigger?: boolean;
8
+ showClear?: boolean;
9
+ }): React.JSX.Element;
10
+ declare function ComboboxContent({ className, side, sideOffset, align, alignOffset, anchor, ...props }: ComboboxPrimitive.Popup.Props & Pick<ComboboxPrimitive.Positioner.Props, "side" | "align" | "sideOffset" | "alignOffset" | "anchor">): React.JSX.Element;
11
+ declare function ComboboxList({ className, ...props }: ComboboxPrimitive.List.Props): React.JSX.Element;
12
+ declare function ComboboxItem({ className, children, ...props }: ComboboxPrimitive.Item.Props): React.JSX.Element;
13
+ declare function ComboboxGroup({ className, ...props }: ComboboxPrimitive.Group.Props): React.JSX.Element;
14
+ declare function ComboboxLabel({ className, ...props }: ComboboxPrimitive.GroupLabel.Props): React.JSX.Element;
15
+ declare function ComboboxCollection({ ...props }: ComboboxPrimitive.Collection.Props): React.JSX.Element;
16
+ declare function ComboboxEmpty({ className, ...props }: ComboboxPrimitive.Empty.Props): React.JSX.Element;
17
+ declare function ComboboxSeparator({ className, ...props }: ComboboxPrimitive.Separator.Props): React.JSX.Element;
18
+ declare function ComboboxChips({ className, ...props }: React.ComponentPropsWithRef<typeof ComboboxPrimitive.Chips> & ComboboxPrimitive.Chips.Props): React.JSX.Element;
19
+ declare function ComboboxChip({ className, children, showRemove, ...props }: ComboboxPrimitive.Chip.Props & {
20
+ showRemove?: boolean;
21
+ }): React.JSX.Element;
22
+ declare function ComboboxChipsInput({ className, ...props }: ComboboxPrimitive.Input.Props): React.JSX.Element;
23
+ declare function useComboboxAnchor(): React.RefObject<HTMLDivElement | null>;
24
+ export { Combobox, ComboboxInput, ComboboxContent, ComboboxList, ComboboxItem, ComboboxGroup, ComboboxLabel, ComboboxCollection, ComboboxEmpty, ComboboxSeparator, ComboboxChips, ComboboxChip, ComboboxChipsInput, ComboboxTrigger, ComboboxValue, useComboboxAnchor, };
25
+ //# sourceMappingURL=combobox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../src/ui/combobox.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { Combobox as ComboboxPrimitive } from "@base-ui/react";
5
+ import { cn } from "../lib/cloudgrid-cn.js";
6
+ import { Button } from "./button.js";
7
+ import { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, } from "./input-group.js";
8
+ import { ChevronDownIcon, XIcon, CheckIcon } from "lucide-react";
9
+ const Combobox = ComboboxPrimitive.Root;
10
+ function ComboboxValue({ ...props }) {
11
+ return _jsx(ComboboxPrimitive.Value, { "data-slot": "combobox-value", ...props });
12
+ }
13
+ function ComboboxTrigger({ className, children, ...props }) {
14
+ return (_jsxs(ComboboxPrimitive.Trigger, { "data-slot": "combobox-trigger", className: cn("[&_svg:not([class*='size-'])]:size-4", className), ...props, children: [children, _jsx(ChevronDownIcon, { className: "pointer-events-none size-4 text-muted-foreground" })] }));
15
+ }
16
+ function ComboboxClear({ className, ...props }) {
17
+ return (_jsx(ComboboxPrimitive.Clear, { "data-slot": "combobox-clear", render: _jsx(InputGroupButton, { variant: "ghost", size: "icon-xs" }), className: cn(className), ...props, children: _jsx(XIcon, { className: "pointer-events-none" }) }));
18
+ }
19
+ function ComboboxInput({ className, children, disabled = false, showTrigger = true, showClear = false, ...props }) {
20
+ return (_jsxs(InputGroup, { className: cn("w-auto", className), children: [_jsx(ComboboxPrimitive.Input, { render: _jsx(InputGroupInput, { disabled: disabled }), ...props }), _jsxs(InputGroupAddon, { align: "inline-end", children: [showTrigger && (_jsx(InputGroupButton, { size: "icon-xs", variant: "ghost", render: _jsx(ComboboxTrigger, {}), "data-slot": "input-group-button", className: "group-has-data-[slot=combobox-clear]/input-group:hidden data-pressed:bg-transparent", disabled: disabled })), showClear && _jsx(ComboboxClear, { disabled: disabled })] }), children] }));
21
+ }
22
+ function ComboboxContent({ className, side = "bottom", sideOffset = 6, align = "start", alignOffset = 0, anchor, ...props }) {
23
+ return (_jsx(ComboboxPrimitive.Portal, { children: _jsx(ComboboxPrimitive.Positioner, { side: side, sideOffset: sideOffset, align: align, alignOffset: alignOffset, anchor: anchor, className: "isolate z-50", children: _jsx(ComboboxPrimitive.Popup, { "data-slot": "combobox-content", "data-chips": !!anchor, className: cn("group/combobox-content relative max-h-(--available-height) w-(--anchor-width) max-w-(--available-width) min-w-[calc(var(--anchor-width)+--spacing(7))] origin-(--transform-origin) overflow-hidden rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[chips=true]:min-w-(--anchor-width) data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 *:data-[slot=input-group]:m-1 *:data-[slot=input-group]:mb-0 *:data-[slot=input-group]:h-8 *:data-[slot=input-group]:border-input/30 *:data-[slot=input-group]:bg-input/30 *:data-[slot=input-group]:shadow-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className), ...props }) }) }));
24
+ }
25
+ function ComboboxList({ className, ...props }) {
26
+ return (_jsx(ComboboxPrimitive.List, { "data-slot": "combobox-list", className: cn("no-scrollbar max-h-[min(calc(--spacing(72)---spacing(9)),calc(var(--available-height)---spacing(9)))] scroll-py-1 overflow-y-auto overscroll-contain p-1 data-empty:p-0", className), ...props }));
27
+ }
28
+ function ComboboxItem({ className, children, ...props }) {
29
+ return (_jsxs(ComboboxPrimitive.Item, { "data-slot": "combobox-item", className: cn("relative flex w-full cursor-default items-center gap-2 rounded-md py-1 pr-8 pl-1.5 text-body-sm outline-hidden select-none data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [children, _jsx(ComboboxPrimitive.ItemIndicator, { render: _jsx("span", { className: "pointer-events-none absolute right-2 flex size-4 items-center justify-center" }), children: _jsx(CheckIcon, { className: "pointer-events-none" }) })] }));
30
+ }
31
+ function ComboboxGroup({ className, ...props }) {
32
+ return (_jsx(ComboboxPrimitive.Group, { "data-slot": "combobox-group", className: cn(className), ...props }));
33
+ }
34
+ function ComboboxLabel({ className, ...props }) {
35
+ return (_jsx(ComboboxPrimitive.GroupLabel, { "data-slot": "combobox-label", className: cn("px-2 py-1.5 text-caption text-muted-foreground", className), ...props }));
36
+ }
37
+ function ComboboxCollection({ ...props }) {
38
+ return (_jsx(ComboboxPrimitive.Collection, { "data-slot": "combobox-collection", ...props }));
39
+ }
40
+ function ComboboxEmpty({ className, ...props }) {
41
+ return (_jsx(ComboboxPrimitive.Empty, { "data-slot": "combobox-empty", className: cn("hidden w-full justify-center py-2 text-center text-body-sm text-muted-foreground group-data-empty/combobox-content:flex", className), ...props }));
42
+ }
43
+ function ComboboxSeparator({ className, ...props }) {
44
+ return (_jsx(ComboboxPrimitive.Separator, { "data-slot": "combobox-separator", className: cn("-mx-1 my-1 h-px bg-border", className), ...props }));
45
+ }
46
+ function ComboboxChips({ className, ...props }) {
47
+ return (_jsx(ComboboxPrimitive.Chips, { "data-slot": "combobox-chips", className: cn("flex min-h-8 flex-wrap items-center gap-1 rounded-lg border border-input bg-transparent bg-clip-padding px-2.5 py-1 text-body-sm transition-colors focus-within:border-ring focus-within:ring-3 focus-within:ring-ring has-aria-invalid:border-destructive has-aria-invalid:ring-3 has-aria-invalid:ring-destructive/20 has-data-[slot=combobox-chip]:px-1 dark:bg-input/30 dark:has-aria-invalid:border-destructive/50 dark:has-aria-invalid:ring-destructive/40", className), ...props }));
48
+ }
49
+ function ComboboxChip({ className, children, showRemove = true, ...props }) {
50
+ return (_jsxs(ComboboxPrimitive.Chip, { "data-slot": "combobox-chip", className: cn("flex h-[calc(--spacing(5.25))] w-fit items-center justify-center gap-1 rounded-sm bg-muted px-1.5 text-caption font-medium whitespace-nowrap text-foreground has-disabled:pointer-events-none has-disabled:cursor-not-allowed has-disabled:opacity-50 has-data-[slot=combobox-chip-remove]:pr-0", className), ...props, children: [children, showRemove && (_jsx(ComboboxPrimitive.ChipRemove, { render: _jsx(Button, { variant: "ghost", size: "icon-xs" }), className: "-ml-1 opacity-50 hover:opacity-100", "data-slot": "combobox-chip-remove", children: _jsx(XIcon, { className: "pointer-events-none" }) }))] }));
51
+ }
52
+ function ComboboxChipsInput({ className, ...props }) {
53
+ return (_jsx(ComboboxPrimitive.Input, { "data-slot": "combobox-chip-input", className: cn("min-w-16 flex-1 outline-none", className), ...props }));
54
+ }
55
+ function useComboboxAnchor() {
56
+ return React.useRef(null);
57
+ }
58
+ export { Combobox, ComboboxInput, ComboboxContent, ComboboxList, ComboboxItem, ComboboxGroup, ComboboxLabel, ComboboxCollection, ComboboxEmpty, ComboboxSeparator, ComboboxChips, ComboboxChip, ComboboxChipsInput, ComboboxTrigger, ComboboxValue, useComboboxAnchor, };
59
+ //# sourceMappingURL=combobox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combobox.js","sourceRoot":"","sources":["../../src/ui/combobox.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import * as React from "react";
2
+ import { Dialog as DialogPrimitive } from "@base-ui/react/dialog";
3
+ declare function Dialog({ ...props }: DialogPrimitive.Root.Props): React.JSX.Element;
4
+ declare function DialogTrigger({ ...props }: DialogPrimitive.Trigger.Props): React.JSX.Element;
5
+ declare function DialogPortal({ ...props }: DialogPrimitive.Portal.Props): React.JSX.Element;
6
+ declare function DialogClose({ ...props }: DialogPrimitive.Close.Props): React.JSX.Element;
7
+ declare function DialogOverlay({ className, ...props }: DialogPrimitive.Backdrop.Props): React.JSX.Element;
8
+ declare function DialogContent({ className, children, showCloseButton, ...props }: DialogPrimitive.Popup.Props & {
9
+ showCloseButton?: boolean;
10
+ }): React.JSX.Element;
11
+ declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
12
+ declare function DialogFooter({ className, showCloseButton, children, ...props }: React.ComponentProps<"div"> & {
13
+ showCloseButton?: boolean;
14
+ }): React.JSX.Element;
15
+ declare function DialogTitle({ className, ...props }: DialogPrimitive.Title.Props): React.JSX.Element;
16
+ declare function DialogDescription({ className, ...props }: DialogPrimitive.Description.Props): React.JSX.Element;
17
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, };
18
+ //# sourceMappingURL=dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/ui/dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAMjE,iBAAS,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,qBAEvD;AAED,iBAAS,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,OAAO,CAAC,KAAK,qBAEjE;AAED,iBAAS,YAAY,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK,qBAE/D;AAED,iBAAS,WAAW,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,qBAE7D;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,QAAQ,CAAC,KAAK,qBAWhC;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,GAAG;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,qBAgCA;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,qBAQzE;AAED,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,eAAuB,EACvB,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,qBAkBA;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,eAAe,CAAC,KAAK,CAAC,KAAK,qBAWxE;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,WAAW,CAAC,KAAK,qBAWnC;AAED,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,GACd,CAAA"}