@astra-kit/ui 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +330 -2
  4. package/THIRD_PARTY_NOTICES.md +31 -0
  5. package/assets/fonts/geist-LICENSE.txt +93 -0
  6. package/assets/fonts/geist-latin-variable.woff2 +0 -0
  7. package/assets/fonts/ibm-plex-mono-latin-400.woff2 +0 -0
  8. package/assets/fonts/ibm-plex-mono-latin-500.woff2 +0 -0
  9. package/assets/fonts/ibmplexmono-LICENSE.txt +93 -0
  10. package/assets/fonts/inter-LICENSE.txt +93 -0
  11. package/assets/fonts/inter-latin-variable.woff2 +0 -0
  12. package/dist/adapters/unpic-image.d.ts +3 -0
  13. package/dist/adapters/unpic-image.js +98 -0
  14. package/dist/components/account-menu.d.ts +67 -0
  15. package/dist/components/account-menu.js +440 -0
  16. package/dist/components/action-button.d.ts +25 -0
  17. package/dist/components/action-button.js +264 -0
  18. package/dist/components/alert.d.ts +31 -0
  19. package/dist/components/alert.js +503 -0
  20. package/dist/components/animated-collapse.d.ts +19 -0
  21. package/dist/components/animated-collapse.js +170 -0
  22. package/dist/components/animated-count.d.ts +13 -0
  23. package/dist/components/animated-count.js +105 -0
  24. package/dist/components/animated-list-item.d.ts +25 -0
  25. package/dist/components/animated-list-item.js +134 -0
  26. package/dist/components/animated-theme-toggler.d.ts +12 -0
  27. package/dist/components/animated-theme-toggler.js +200 -0
  28. package/dist/components/avatar.d.ts +65 -0
  29. package/dist/components/avatar.js +463 -0
  30. package/dist/components/badge.d.ts +21 -0
  31. package/dist/components/badge.js +297 -0
  32. package/dist/components/button-interaction.d.ts +23 -0
  33. package/dist/components/button-interaction.js +22 -0
  34. package/dist/components/button-label.d.ts +8 -0
  35. package/dist/components/button-label.js +203 -0
  36. package/dist/components/button.d.ts +23 -0
  37. package/dist/components/button.js +145 -0
  38. package/dist/components/calendar.d.ts +47 -0
  39. package/dist/components/calendar.js +155 -0
  40. package/dist/components/card.d.ts +38 -0
  41. package/dist/components/card.js +904 -0
  42. package/dist/components/carousel.d.ts +71 -0
  43. package/dist/components/carousel.js +585 -0
  44. package/dist/components/checkbox.d.ts +15 -0
  45. package/dist/components/checkbox.js +324 -0
  46. package/dist/components/control-button.d.ts +16 -0
  47. package/dist/components/control-button.js +215 -0
  48. package/dist/components/data-table.d.ts +118 -0
  49. package/dist/components/data-table.js +895 -0
  50. package/dist/components/dialog-surface.d.ts +49 -0
  51. package/dist/components/dialog-surface.js +220 -0
  52. package/dist/components/dialog.d.ts +92 -0
  53. package/dist/components/dialog.js +320 -0
  54. package/dist/components/dropdown-menu.d.ts +58 -0
  55. package/dist/components/dropdown-menu.js +135 -0
  56. package/dist/components/field.d.ts +53 -0
  57. package/dist/components/field.js +710 -0
  58. package/dist/components/file-upload.d.ts +88 -0
  59. package/dist/components/file-upload.js +776 -0
  60. package/dist/components/filter-presets-bar.d.ts +73 -0
  61. package/dist/components/filter-presets-bar.js +510 -0
  62. package/dist/components/filter-query-bar.d.ts +21 -0
  63. package/dist/components/filter-query-bar.js +881 -0
  64. package/dist/components/filter-query-grammar.d.ts +188 -0
  65. package/dist/components/filter-query-grammar.js +875 -0
  66. package/dist/components/form.d.ts +29 -0
  67. package/dist/components/form.js +330 -0
  68. package/dist/components/highlighter.d.ts +15 -0
  69. package/dist/components/highlighter.js +152 -0
  70. package/dist/components/hover-card.d.ts +50 -0
  71. package/dist/components/hover-card.js +80 -0
  72. package/dist/components/input-group.d.ts +16 -0
  73. package/dist/components/input-group.js +277 -0
  74. package/dist/components/input.d.ts +17 -0
  75. package/dist/components/input.js +120 -0
  76. package/dist/components/label.d.ts +4 -0
  77. package/dist/components/label.js +43 -0
  78. package/dist/components/link.d.ts +9 -0
  79. package/dist/components/link.js +43 -0
  80. package/dist/components/morph-text.d.ts +14 -0
  81. package/dist/components/morph-text.js +210 -0
  82. package/dist/components/pagination.d.ts +59 -0
  83. package/dist/components/pagination.js +190 -0
  84. package/dist/components/popover.d.ts +17 -0
  85. package/dist/components/popover.js +40 -0
  86. package/dist/components/presence-swap.d.ts +22 -0
  87. package/dist/components/presence-swap.js +209 -0
  88. package/dist/components/primitives/alert-dialog.d.ts +68 -0
  89. package/dist/components/primitives/alert-dialog.js +629 -0
  90. package/dist/components/primitives/avatar.d.ts +46 -0
  91. package/dist/components/primitives/avatar.js +265 -0
  92. package/dist/components/primitives/calendar.d.ts +37 -0
  93. package/dist/components/primitives/calendar.js +1250 -0
  94. package/dist/components/primitives/carousel.d.ts +106 -0
  95. package/dist/components/primitives/carousel.js +928 -0
  96. package/dist/components/primitives/dialog.d.ts +62 -0
  97. package/dist/components/primitives/dialog.js +490 -0
  98. package/dist/components/primitives/dropdown-menu-items.d.ts +59 -0
  99. package/dist/components/primitives/dropdown-menu-items.js +265 -0
  100. package/dist/components/primitives/dropdown-menu.d.ts +64 -0
  101. package/dist/components/primitives/dropdown-menu.js +560 -0
  102. package/dist/components/primitives/hover-card.d.ts +50 -0
  103. package/dist/components/primitives/hover-card.js +507 -0
  104. package/dist/components/primitives/pagination.d.ts +65 -0
  105. package/dist/components/primitives/pagination.js +373 -0
  106. package/dist/components/primitives/popover.d.ts +22 -0
  107. package/dist/components/primitives/popover.js +213 -0
  108. package/dist/components/primitives/select.d.ts +37 -0
  109. package/dist/components/primitives/select.js +428 -0
  110. package/dist/components/primitives/tooltip.d.ts +30 -0
  111. package/dist/components/primitives/tooltip.js +277 -0
  112. package/dist/components/progress-ring.d.ts +20 -0
  113. package/dist/components/progress-ring.js +53 -0
  114. package/dist/components/radio-group.d.ts +34 -0
  115. package/dist/components/radio-group.js +392 -0
  116. package/dist/components/reaction-button.d.ts +30 -0
  117. package/dist/components/reaction-button.js +189 -0
  118. package/dist/components/rich-link-editor.d.ts +25 -0
  119. package/dist/components/rich-link-editor.js +320 -0
  120. package/dist/components/rich-markdown-content.d.ts +10 -0
  121. package/dist/components/rich-markdown-content.js +56 -0
  122. package/dist/components/rich-text-content.d.ts +19 -0
  123. package/dist/components/rich-text-content.js +26 -0
  124. package/dist/components/select.d.ts +55 -0
  125. package/dist/components/select.js +188 -0
  126. package/dist/components/separator.d.ts +3 -0
  127. package/dist/components/separator.js +48 -0
  128. package/dist/components/sheet.d.ts +19 -0
  129. package/dist/components/sheet.js +420 -0
  130. package/dist/components/sidebar-panel-context.d.ts +17 -0
  131. package/dist/components/sidebar-panel-context.js +14 -0
  132. package/dist/components/sidebar.d.ts +195 -0
  133. package/dist/components/sidebar.js +2041 -0
  134. package/dist/components/skeleton.d.ts +23 -0
  135. package/dist/components/skeleton.js +334 -0
  136. package/dist/components/split-button.d.ts +36 -0
  137. package/dist/components/split-button.js +306 -0
  138. package/dist/components/svgs/whatsappIcon.d.ts +3 -0
  139. package/dist/components/svgs/whatsappIcon.js +14 -0
  140. package/dist/components/switch.d.ts +13 -0
  141. package/dist/components/switch.js +444 -0
  142. package/dist/components/table.d.ts +10 -0
  143. package/dist/components/table.js +298 -0
  144. package/dist/components/tabs.d.ts +36 -0
  145. package/dist/components/tabs.js +636 -0
  146. package/dist/components/textarea.d.ts +16 -0
  147. package/dist/components/textarea.js +111 -0
  148. package/dist/components/themed-toaster.d.ts +7 -0
  149. package/dist/components/themed-toaster.js +86 -0
  150. package/dist/components/toaster.d.ts +12 -0
  151. package/dist/components/toaster.js +62 -0
  152. package/dist/components/tooltip.d.ts +43 -0
  153. package/dist/components/tooltip.js +65 -0
  154. package/dist/components/typing-animation.d.ts +34 -0
  155. package/dist/components/typing-animation.js +389 -0
  156. package/dist/constants/action-button.d.ts +20 -0
  157. package/dist/constants/action-button.js +17 -0
  158. package/dist/constants/alert.d.ts +16 -0
  159. package/dist/constants/alert.js +13 -0
  160. package/dist/constants/avatar.d.ts +38 -0
  161. package/dist/constants/avatar.js +32 -0
  162. package/dist/constants/badge.d.ts +6 -0
  163. package/dist/constants/badge.js +6 -0
  164. package/dist/constants/button.d.ts +16 -0
  165. package/dist/constants/button.js +16 -0
  166. package/dist/constants/calendar.d.ts +36 -0
  167. package/dist/constants/calendar.js +34 -0
  168. package/dist/constants/card.d.ts +23 -0
  169. package/dist/constants/card.js +20 -0
  170. package/dist/constants/carousel.d.ts +55 -0
  171. package/dist/constants/carousel.js +74 -0
  172. package/dist/constants/checkbox.d.ts +17 -0
  173. package/dist/constants/checkbox.js +17 -0
  174. package/dist/constants/dialog.d.ts +11 -0
  175. package/dist/constants/dialog.js +10 -0
  176. package/dist/constants/dropdown-menu.d.ts +17 -0
  177. package/dist/constants/dropdown-menu.js +48 -0
  178. package/dist/constants/field.d.ts +24 -0
  179. package/dist/constants/field.js +24 -0
  180. package/dist/constants/hover-card.d.ts +37 -0
  181. package/dist/constants/hover-card.js +85 -0
  182. package/dist/constants/morph-text.d.ts +13 -0
  183. package/dist/constants/morph-text.js +13 -0
  184. package/dist/constants/motion.d.ts +12 -0
  185. package/dist/constants/motion.js +12 -0
  186. package/dist/constants/pagination.d.ts +20 -0
  187. package/dist/constants/pagination.js +20 -0
  188. package/dist/constants/popover.d.ts +7 -0
  189. package/dist/constants/popover.js +33 -0
  190. package/dist/constants/radio-group.d.ts +10 -0
  191. package/dist/constants/radio-group.js +10 -0
  192. package/dist/constants/select.d.ts +7 -0
  193. package/dist/constants/select.js +34 -0
  194. package/dist/constants/sidebar.d.ts +9 -0
  195. package/dist/constants/sidebar.js +17 -0
  196. package/dist/constants/skeleton.d.ts +17 -0
  197. package/dist/constants/skeleton.js +17 -0
  198. package/dist/constants/split-button.d.ts +7 -0
  199. package/dist/constants/split-button.js +5 -0
  200. package/dist/constants/switch.d.ts +33 -0
  201. package/dist/constants/switch.js +41 -0
  202. package/dist/constants/tabs.d.ts +17 -0
  203. package/dist/constants/tabs.js +17 -0
  204. package/dist/constants/toast.d.ts +3 -0
  205. package/dist/constants/toast.js +3 -0
  206. package/dist/constants/tooltip.d.ts +13 -0
  207. package/dist/constants/tooltip.js +52 -0
  208. package/dist/hooks/use-horizontal-swipe.d.ts +23 -0
  209. package/dist/hooks/use-horizontal-swipe.js +80 -0
  210. package/dist/hooks/use-is-hydrated.d.ts +6 -0
  211. package/dist/hooks/use-is-hydrated.js +20 -0
  212. package/dist/hooks/use-mobile.d.ts +1 -0
  213. package/dist/hooks/use-mobile.js +19 -0
  214. package/dist/hooks/use-prefers-reduced-motion.d.ts +2 -0
  215. package/dist/hooks/use-prefers-reduced-motion.js +27 -0
  216. package/dist/hooks/use-rich-link-editor.d.ts +55 -0
  217. package/dist/hooks/use-rich-link-editor.js +515 -0
  218. package/dist/hooks/use-sidebar-persistence.d.ts +6 -0
  219. package/dist/hooks/use-sidebar-persistence.js +52 -0
  220. package/dist/hooks/use-today.d.ts +7 -0
  221. package/dist/hooks/use-today.js +50 -0
  222. package/dist/hooks/use-viewer-time-zone.d.ts +6 -0
  223. package/dist/hooks/use-viewer-time-zone.js +20 -0
  224. package/dist/hooks.d.ts +11 -0
  225. package/dist/hooks.js +11 -0
  226. package/dist/index.d.ts +71 -0
  227. package/dist/index.js +69 -0
  228. package/dist/lib/browser-clipboard.d.ts +13 -0
  229. package/dist/lib/browser-clipboard.js +48 -0
  230. package/dist/lib/column-filter-value.d.ts +12 -0
  231. package/dist/lib/column-filter-value.js +52 -0
  232. package/dist/lib/file-acceptance.d.ts +43 -0
  233. package/dist/lib/file-acceptance.js +107 -0
  234. package/dist/lib/format-file-size.d.ts +16 -0
  235. package/dist/lib/format-file-size.js +34 -0
  236. package/dist/lib/fuzzy-search.d.ts +17 -0
  237. package/dist/lib/fuzzy-search.js +183 -0
  238. package/dist/lib/horizontal-swipe.d.ts +23 -0
  239. package/dist/lib/horizontal-swipe.js +29 -0
  240. package/dist/lib/image-dimensions.d.ts +2 -0
  241. package/dist/lib/image-dimensions.js +7 -0
  242. package/dist/lib/name-initials.d.ts +7 -0
  243. package/dist/lib/name-initials.js +11 -0
  244. package/dist/lib/rich-text/link-markdown-constants.d.ts +147 -0
  245. package/dist/lib/rich-text/link-markdown-constants.js +458 -0
  246. package/dist/lib/rich-text/link-markdown-types.d.ts +53 -0
  247. package/dist/lib/rich-text/link-markdown-types.js +1 -0
  248. package/dist/lib/rich-text/link-markdown.d.ts +193 -0
  249. package/dist/lib/rich-text/link-markdown.js +592 -0
  250. package/dist/lib/rich-text/rich-markdown.d.ts +41 -0
  251. package/dist/lib/rich-text/rich-markdown.js +105 -0
  252. package/dist/lib/rich-text/rich-text-editor-dom.d.ts +26 -0
  253. package/dist/lib/rich-text/rich-text-editor-dom.js +79 -0
  254. package/dist/lib/toast-layer.d.ts +24 -0
  255. package/dist/lib/toast-layer.js +76 -0
  256. package/dist/lib/utils.d.ts +2 -0
  257. package/dist/lib/utils.js +2 -0
  258. package/dist/lib/year-month-filter.d.ts +16 -0
  259. package/dist/lib/year-month-filter.js +46 -0
  260. package/dist/motion/arc-floating-slot.d.ts +40 -0
  261. package/dist/motion/arc-floating-slot.js +177 -0
  262. package/dist/motion/arc-press.d.ts +6 -0
  263. package/dist/motion/arc-press.js +59 -0
  264. package/dist/motion/arc-swap.d.ts +22 -0
  265. package/dist/motion/arc-swap.js +49 -0
  266. package/dist/motion/arc-tokens.d.ts +53 -0
  267. package/dist/motion/arc-tokens.js +73 -0
  268. package/dist/motion/glide-indicator.d.ts +69 -0
  269. package/dist/motion/glide-indicator.js +309 -0
  270. package/dist/motion/glide-slot.d.ts +9 -0
  271. package/dist/motion/glide-slot.js +71 -0
  272. package/dist/motion/motion-slot.d.ts +12 -0
  273. package/dist/motion/motion-slot.js +376 -0
  274. package/dist/motion/overlay-warmth.d.ts +24 -0
  275. package/dist/motion/overlay-warmth.js +70 -0
  276. package/dist/motion/presence.d.ts +40 -0
  277. package/dist/motion/presence.js +101 -0
  278. package/dist/motion/surface-keyframes.d.ts +24 -0
  279. package/dist/motion/surface-keyframes.js +141 -0
  280. package/dist/motion/tokens.d.ts +81 -0
  281. package/dist/motion/tokens.js +67 -0
  282. package/dist/motion/use-attached-element.d.ts +7 -0
  283. package/dist/motion/use-attached-element.js +22 -0
  284. package/dist/motion/use-morph-width.d.ts +13 -0
  285. package/dist/motion/use-morph-width.js +59 -0
  286. package/dist/next.d.ts +14 -0
  287. package/dist/next.js +79 -0
  288. package/dist/providers/astra-ui-provider.d.ts +27 -0
  289. package/dist/providers/astra-ui-provider.js +100 -0
  290. package/dist/providers/native-provider.d.ts +4 -0
  291. package/dist/providers/native-provider.js +45 -0
  292. package/dist/sonner.d.ts +7 -0
  293. package/dist/sonner.js +8 -0
  294. package/dist/styles.css +2 -0
  295. package/dist/tanstack.d.ts +11 -0
  296. package/dist/tanstack.js +50 -0
  297. package/dist/theme.d.ts +3 -0
  298. package/dist/theme.js +1 -0
  299. package/dist/types/data-table.d.ts +27 -0
  300. package/dist/types/data-table.js +1 -0
  301. package/fonts.css +5 -0
  302. package/package.json +450 -4
  303. package/styles.css +4 -0
  304. package/theme.css +248 -0
@@ -0,0 +1,428 @@
1
+ "use client";
2
+ import { c as _c } from "react/compiler-runtime";
3
+ /**
4
+ * Internal primitive of Arc's Select (https://uiarc.dev, MIT License, see THIRD_PARTY_NOTICES.md): Arc's trigger, whose
5
+ * hover, press and open states answer in color only so the anchored list never shifts, and its raised list with
6
+ * option rows and an end check, on Arc's tokens and Arc's motion: the list grows from the trigger edge, the check
7
+ * of the chosen option sharpens in, and the chevron turns on the CSS spring.
8
+ * Internal: the Radix composition behind the public closed `Select`; the package does not export it.
9
+ */
10
+ import * as React from "react";
11
+ import { Select as SelectPrimitive } from "radix-ui";
12
+ import { SELECT_COLLISION_PADDING_PX, SELECT_MOTION } from "../../constants/select.js";
13
+ import { ArcFloatingSlot } from "../../motion/arc-floating-slot.js";
14
+ import { MotionSlot } from "../../motion/motion-slot.js";
15
+ import { MotionOpenProvider, useMotionOpen, useMotionOpenState } from "../../motion/presence.js";
16
+ import { cn } from "../../lib/utils.js";
17
+ import { ChevronDownIcon, CheckIcon, ChevronUpIcon } from "lucide-react";
18
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
19
+ /** Arc's option list always enters and leaves the same way. */
20
+ const resolveSelectMotion = () => SELECT_MOTION;
21
+ function Select(t0) {
22
+ const $ = _c(9);
23
+ let props;
24
+ if ($[0] !== t0) {
25
+ ({...props} = t0);
26
+ $[0] = t0;
27
+ $[1] = props;
28
+ } else {
29
+ props = $[1];
30
+ }
31
+ const [motionOpen, setMotionOpen] = useMotionOpenState(props);
32
+ let t1;
33
+ if ($[2] !== motionOpen || $[3] !== props || $[4] !== setMotionOpen) {
34
+ t1 = /* @__PURE__ */ _jsx(SelectPrimitive.Root, {
35
+ "data-slot": "select",
36
+ ...props,
37
+ open: motionOpen,
38
+ onOpenChange: setMotionOpen
39
+ });
40
+ $[2] = motionOpen;
41
+ $[3] = props;
42
+ $[4] = setMotionOpen;
43
+ $[5] = t1;
44
+ } else {
45
+ t1 = $[5];
46
+ }
47
+ let t2;
48
+ if ($[6] !== motionOpen || $[7] !== t1) {
49
+ t2 = /* @__PURE__ */ _jsx(MotionOpenProvider, {
50
+ scope: "select",
51
+ open: motionOpen,
52
+ children: t1
53
+ });
54
+ $[6] = motionOpen;
55
+ $[7] = t1;
56
+ $[8] = t2;
57
+ } else {
58
+ t2 = $[8];
59
+ }
60
+ return t2;
61
+ }
62
+ function SelectValue(t0) {
63
+ const $ = _c(4);
64
+ let props;
65
+ if ($[0] !== t0) {
66
+ ({...props} = t0);
67
+ $[0] = t0;
68
+ $[1] = props;
69
+ } else {
70
+ props = $[1];
71
+ }
72
+ let t1;
73
+ if ($[2] !== props) {
74
+ t1 = /* @__PURE__ */ _jsx(SelectPrimitive.Value, {
75
+ "data-slot": "select-value",
76
+ ...props
77
+ });
78
+ $[2] = props;
79
+ $[3] = t1;
80
+ } else {
81
+ t1 = $[3];
82
+ }
83
+ return t1;
84
+ }
85
+ /**
86
+ * Renders Arc's selection control: `default` matches the height of `Input` and `Button`, `sm` their small size.
87
+ * Hover only answers on fine pointers, keyboard focus draws the shared outline, and `aria-invalid` turns the border
88
+ * to the danger color.
89
+ * @param props - Primitive properties, the `size` and optional consumer overrides.
90
+ * @returns The styled primitive with its original interaction contract.
91
+ */
92
+ function SelectTrigger(t0) {
93
+ const $ = _c(13);
94
+ let children;
95
+ let className;
96
+ let props;
97
+ let t1;
98
+ if ($[0] !== t0) {
99
+ ({className, size: t1, children, ...props} = t0);
100
+ $[0] = t0;
101
+ $[1] = children;
102
+ $[2] = className;
103
+ $[3] = props;
104
+ $[4] = t1;
105
+ } else {
106
+ children = $[1];
107
+ className = $[2];
108
+ props = $[3];
109
+ t1 = $[4];
110
+ }
111
+ const size = t1 === undefined ? "default" : t1;
112
+ let t2;
113
+ if ($[5] !== className) {
114
+ t2 = cn("flex w-fit cursor-pointer items-center justify-between gap-3 rounded-(--radius-control) border border-border bg-surface px-3 text-left text-sm whitespace-nowrap text-foreground outline-none select-none transition-[color,background-color,border-color,box-shadow] duration-(--duration-fast) ease-(--ease-standard) motion-reduce:transition-none hover-fine:not-disabled:not-aria-invalid:border-border-strong hover-fine:not-disabled:bg-surface-muted active:not-disabled:not-aria-invalid:border-border-strong active:not-disabled:bg-surface-muted data-[state=open]:not-aria-invalid:border-border-strong data-[state=open]:bg-surface-muted focus-visible:not-aria-invalid:border-border-strong disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-danger data-placeholder:text-text-muted data-[size=default]:min-h-(--control-height-md) data-[size=sm]:min-h-(--control-height-sm) data-[state=open]:*:data-[slot=select-icon]:rotate-180 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className);
115
+ $[5] = className;
116
+ $[6] = t2;
117
+ } else {
118
+ t2 = $[6];
119
+ }
120
+ let t3;
121
+ if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
122
+ t3 = /* @__PURE__ */ _jsx(SelectPrimitive.Icon, {
123
+ asChild: true,
124
+ children: /* @__PURE__ */ _jsx(ChevronDownIcon, {
125
+ "data-slot": "select-icon",
126
+ strokeWidth: 1.75,
127
+ className: "pointer-events-none size-4 text-text-muted transition-[rotate] duration-(--duration-spring) ease-(--ease-spring) motion-reduce:transition-none"
128
+ })
129
+ });
130
+ $[7] = t3;
131
+ } else {
132
+ t3 = $[7];
133
+ }
134
+ let t4;
135
+ if ($[8] !== children || $[9] !== props || $[10] !== size || $[11] !== t2) {
136
+ t4 = /* @__PURE__ */ _jsxs(SelectPrimitive.Trigger, {
137
+ "data-slot": "select-trigger",
138
+ "data-size": size,
139
+ className: t2,
140
+ ...props,
141
+ children: [children, t3]
142
+ });
143
+ $[8] = children;
144
+ $[9] = props;
145
+ $[10] = size;
146
+ $[11] = t2;
147
+ $[12] = t4;
148
+ } else {
149
+ t4 = $[12];
150
+ }
151
+ return t4;
152
+ }
153
+ /**
154
+ * Renders Arc's raised option list, at least twelve rem wide so options stay readable. With `position="popper"` it
155
+ * grows from the trigger edge, matches the trigger width up to min(24rem, 100vw minus 20px), keeps 12px from the
156
+ * viewport edges and caps its height at 20rem.
157
+ * @param props - Primitive properties and optional consumer overrides.
158
+ * @returns The styled primitive with its original interaction contract.
159
+ */
160
+ function SelectContent(t0) {
161
+ const $ = _c(26);
162
+ let children;
163
+ let className;
164
+ let props;
165
+ let t1;
166
+ let t2;
167
+ let t3;
168
+ if ($[0] !== t0) {
169
+ ({className, children, position: t1, align: t2, collisionPadding: t3, ...props} = t0);
170
+ $[0] = t0;
171
+ $[1] = children;
172
+ $[2] = className;
173
+ $[3] = props;
174
+ $[4] = t1;
175
+ $[5] = t2;
176
+ $[6] = t3;
177
+ } else {
178
+ children = $[1];
179
+ className = $[2];
180
+ props = $[3];
181
+ t1 = $[4];
182
+ t2 = $[5];
183
+ t3 = $[6];
184
+ }
185
+ const position = t1 === undefined ? "item-aligned" : t1;
186
+ const align = t2 === undefined ? "center" : t2;
187
+ const collisionPadding = t3 === undefined ? SELECT_COLLISION_PADDING_PX : t3;
188
+ const open = useMotionOpen("select");
189
+ const t4 = open ? "open" : "closed";
190
+ const t5 = position === "item-aligned";
191
+ const t6 = position === "popper" && "w-(--radix-select-trigger-width) max-w-[min(24rem,calc(100vw-20px))] data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1";
192
+ let t7;
193
+ if ($[7] !== className || $[8] !== t6) {
194
+ t7 = cn("relative z-50 max-h-[min(20rem,var(--radix-select-content-available-height))] min-w-48 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-[calc(var(--radius-control)+2px)] border border-border bg-surface-raised p-1.5 text-foreground shadow-(--shadow-floating)", t6, className);
195
+ $[7] = className;
196
+ $[8] = t6;
197
+ $[9] = t7;
198
+ } else {
199
+ t7 = $[9];
200
+ }
201
+ let t8;
202
+ if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
203
+ t8 = /* @__PURE__ */ _jsx(SelectScrollUpButton, {});
204
+ $[10] = t8;
205
+ } else {
206
+ t8 = $[10];
207
+ }
208
+ let t9;
209
+ if ($[11] !== children || $[12] !== position) {
210
+ t9 = /* @__PURE__ */ _jsx(SelectPrimitive.Viewport, {
211
+ "data-position": position,
212
+ className: "py-0.5 data-[position=popper]:h-(--radix-select-trigger-height) data-[position=popper]:w-full",
213
+ children
214
+ });
215
+ $[11] = children;
216
+ $[12] = position;
217
+ $[13] = t9;
218
+ } else {
219
+ t9 = $[13];
220
+ }
221
+ let t10;
222
+ if ($[14] === Symbol.for("react.memo_cache_sentinel")) {
223
+ t10 = /* @__PURE__ */ _jsx(SelectScrollDownButton, {});
224
+ $[14] = t10;
225
+ } else {
226
+ t10 = $[14];
227
+ }
228
+ let t11;
229
+ if ($[15] !== align || $[16] !== collisionPadding || $[17] !== position || $[18] !== props || $[19] !== t5 || $[20] !== t7 || $[21] !== t9) {
230
+ t11 = /* @__PURE__ */ _jsxs(SelectPrimitive.Content, {
231
+ "data-slot": "select-content",
232
+ "data-align-trigger": t5,
233
+ className: t7,
234
+ position,
235
+ align,
236
+ collisionPadding,
237
+ ...props,
238
+ children: [
239
+ t8,
240
+ t9,
241
+ t10
242
+ ]
243
+ });
244
+ $[15] = align;
245
+ $[16] = collisionPadding;
246
+ $[17] = position;
247
+ $[18] = props;
248
+ $[19] = t5;
249
+ $[20] = t7;
250
+ $[21] = t9;
251
+ $[22] = t11;
252
+ } else {
253
+ t11 = $[22];
254
+ }
255
+ let t12;
256
+ if ($[23] !== t11 || $[24] !== t4) {
257
+ t12 = /* @__PURE__ */ _jsx(SelectPrimitive.Portal, { children: /* @__PURE__ */ _jsx(ArcFloatingSlot, {
258
+ motion: resolveSelectMotion,
259
+ children: t11
260
+ }, t4) });
261
+ $[23] = t11;
262
+ $[24] = t4;
263
+ $[25] = t12;
264
+ } else {
265
+ t12 = $[25];
266
+ }
267
+ return t12;
268
+ }
269
+ /**
270
+ * Renders Arc's option row: 36px tall, a muted fill when highlighted and the check of the chosen option at the end,
271
+ * while retaining selection and disabled semantics.
272
+ * @param props - Primitive properties and optional consumer overrides.
273
+ * @returns The styled primitive with its original interaction contract.
274
+ */
275
+ function SelectItem(t0) {
276
+ const $ = _c(13);
277
+ let children;
278
+ let className;
279
+ let props;
280
+ if ($[0] !== t0) {
281
+ ({className, children, ...props} = t0);
282
+ $[0] = t0;
283
+ $[1] = children;
284
+ $[2] = className;
285
+ $[3] = props;
286
+ } else {
287
+ children = $[1];
288
+ className = $[2];
289
+ props = $[3];
290
+ }
291
+ let t1;
292
+ if ($[4] !== className) {
293
+ t1 = cn("relative flex min-h-9 w-full cursor-default items-center gap-1.5 rounded-[calc(var(--radius-control)-4px)] py-1 pr-[34px] pl-[11px] text-sm text-foreground outline-hidden select-none transition-colors duration-(--duration-instant) ease-(--ease-standard) motion-reduce:transition-none data-highlighted:bg-surface-muted data-disabled:pointer-events-none data-disabled:opacity-45 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", className);
294
+ $[4] = className;
295
+ $[5] = t1;
296
+ } else {
297
+ t1 = $[5];
298
+ }
299
+ let t2;
300
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
301
+ t2 = /* @__PURE__ */ _jsx("span", {
302
+ className: "pointer-events-none absolute right-2.5 flex size-4 items-center justify-center text-foreground",
303
+ children: /* @__PURE__ */ _jsx(MotionSlot, {
304
+ kind: "item-check",
305
+ children: /* @__PURE__ */ _jsx(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ _jsx(CheckIcon, {
306
+ strokeWidth: 1.75,
307
+ className: "pointer-events-none"
308
+ }) })
309
+ })
310
+ });
311
+ $[6] = t2;
312
+ } else {
313
+ t2 = $[6];
314
+ }
315
+ let t3;
316
+ if ($[7] !== children) {
317
+ t3 = /* @__PURE__ */ _jsx(SelectPrimitive.ItemText, { children });
318
+ $[7] = children;
319
+ $[8] = t3;
320
+ } else {
321
+ t3 = $[8];
322
+ }
323
+ let t4;
324
+ if ($[9] !== props || $[10] !== t1 || $[11] !== t3) {
325
+ t4 = /* @__PURE__ */ _jsxs(SelectPrimitive.Item, {
326
+ "data-slot": "select-item",
327
+ className: t1,
328
+ ...props,
329
+ children: [t2, t3]
330
+ });
331
+ $[9] = props;
332
+ $[10] = t1;
333
+ $[11] = t3;
334
+ $[12] = t4;
335
+ } else {
336
+ t4 = $[12];
337
+ }
338
+ return t4;
339
+ }
340
+ function SelectScrollUpButton(t0) {
341
+ const $ = _c(9);
342
+ let className;
343
+ let props;
344
+ if ($[0] !== t0) {
345
+ ({className, ...props} = t0);
346
+ $[0] = t0;
347
+ $[1] = className;
348
+ $[2] = props;
349
+ } else {
350
+ className = $[1];
351
+ props = $[2];
352
+ }
353
+ let t1;
354
+ if ($[3] !== className) {
355
+ t1 = cn("z-10 flex h-7 cursor-default items-center justify-center bg-surface-raised text-text-muted [&_svg:not([class*='size-'])]:size-4", className);
356
+ $[3] = className;
357
+ $[4] = t1;
358
+ } else {
359
+ t1 = $[4];
360
+ }
361
+ let t2;
362
+ if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
363
+ t2 = /* @__PURE__ */ _jsx(ChevronUpIcon, { strokeWidth: 1.75 });
364
+ $[5] = t2;
365
+ } else {
366
+ t2 = $[5];
367
+ }
368
+ let t3;
369
+ if ($[6] !== props || $[7] !== t1) {
370
+ t3 = /* @__PURE__ */ _jsx(SelectPrimitive.ScrollUpButton, {
371
+ "data-slot": "select-scroll-up-button",
372
+ className: t1,
373
+ ...props,
374
+ children: t2
375
+ });
376
+ $[6] = props;
377
+ $[7] = t1;
378
+ $[8] = t3;
379
+ } else {
380
+ t3 = $[8];
381
+ }
382
+ return t3;
383
+ }
384
+ function SelectScrollDownButton(t0) {
385
+ const $ = _c(9);
386
+ let className;
387
+ let props;
388
+ if ($[0] !== t0) {
389
+ ({className, ...props} = t0);
390
+ $[0] = t0;
391
+ $[1] = className;
392
+ $[2] = props;
393
+ } else {
394
+ className = $[1];
395
+ props = $[2];
396
+ }
397
+ let t1;
398
+ if ($[3] !== className) {
399
+ t1 = cn("z-10 flex h-7 cursor-default items-center justify-center bg-surface-raised text-text-muted [&_svg:not([class*='size-'])]:size-4", className);
400
+ $[3] = className;
401
+ $[4] = t1;
402
+ } else {
403
+ t1 = $[4];
404
+ }
405
+ let t2;
406
+ if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
407
+ t2 = /* @__PURE__ */ _jsx(ChevronDownIcon, { strokeWidth: 1.75 });
408
+ $[5] = t2;
409
+ } else {
410
+ t2 = $[5];
411
+ }
412
+ let t3;
413
+ if ($[6] !== props || $[7] !== t1) {
414
+ t3 = /* @__PURE__ */ _jsx(SelectPrimitive.ScrollDownButton, {
415
+ "data-slot": "select-scroll-down-button",
416
+ className: t1,
417
+ ...props,
418
+ children: t2
419
+ });
420
+ $[6] = props;
421
+ $[7] = t1;
422
+ $[8] = t3;
423
+ } else {
424
+ t3 = $[8];
425
+ }
426
+ return t3;
427
+ }
428
+ export { Select, SelectContent, SelectItem, SelectTrigger, SelectValue };
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Internal primitive of Arc's Tooltip (https://uiarc.dev, MIT License, see THIRD_PARTY_NOTICES.md): a short dark
3
+ * bubble on Arc's tokens that waits a moment, then rises a few pixels from its trigger. While a tooltip is open, and
4
+ * briefly after it closes, the next one opens at once and only fades. Internal: the Radix composition (`Tooltip`,
5
+ * `TooltipTrigger`, `TooltipContent`, `TooltipProvider`) behind the public closed `Tooltip` and @astra-kit/ui's composite
6
+ * components; the package does not export it.
7
+ */
8
+ import * as React from "react";
9
+ import { Tooltip as TooltipPrimitive } from "radix-ui";
10
+ /**
11
+ * Shares the open delay among the tooltips it wraps.
12
+ * @param props - Radix provider properties. `delayDuration` defaults to Arc's 250ms.
13
+ * @returns The provider.
14
+ */
15
+ declare function TooltipProvider({ delayDuration, ...props }: React.ComponentProps<typeof TooltipPrimitive.Provider>): React.JSX.Element;
16
+ /**
17
+ * Owns the open state of one tooltip. It works with or without a `TooltipProvider`: without one it brings its own,
18
+ * as Arc's Tooltip does. Within the shared skip window it opens without delay.
19
+ * @param props - Radix root properties.
20
+ * @returns The tooltip root.
21
+ */
22
+ declare function Tooltip({ delayDuration, ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>): React.JSX.Element;
23
+ declare function TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>): React.JSX.Element;
24
+ /**
25
+ * Renders Arc's bubble: inverted colors, a hairline border, the raised shadow and 15rem of maximum width.
26
+ * @param props - Radix content properties. `sideOffset` defaults to 8px and `collisionPadding` to 12px.
27
+ * @returns The portaled bubble.
28
+ */
29
+ declare function TooltipContent({ className, sideOffset, collisionPadding, children, ...props }: React.ComponentProps<typeof TooltipPrimitive.Content>): React.JSX.Element;
30
+ export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };