@astra-kit/ui 0.0.0-stage → 0.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 +15 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +384 -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 +57 -0
  55. package/dist/components/dropdown-menu.js +107 -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 +10 -0
  177. package/dist/constants/dropdown-menu.js +37 -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,20 @@
1
+ /** Heading level of the card title when none is passed. */
2
+ export const CARD_DEFAULT_HEADING_LEVEL = 3;
3
+ /** Default Spanish accessible name of the quick look's close button. */
4
+ export const CARD_CLOSE_LABEL = "Cerrar vista rápida";
5
+ /** Visual duration, in seconds, of the spring that grows the card into the quick look. */
6
+ export const CARD_GROW_DURATION_S = .3;
7
+ /** Visual duration, in seconds, of the slightly quicker spring that settles the quick look back into the card. */
8
+ export const CARD_SETTLE_DURATION_S = .26;
9
+ /** Time, in milliseconds, the closing quick look travels above the page before the card takes over again. */
10
+ export const CARD_RETURN_MS = 300;
11
+ /** Delay, in seconds, between the words of a new status rising in one after another. */
12
+ export const CARD_STATUS_WORD_STAGGER_S = .03;
13
+ /** Vertical travel, in em, of a status line rising in and the old one lifting away. */
14
+ export const CARD_STATUS_OFFSET_EM = .3;
15
+ /** Vertical travel, in pixels, of the quick look details settling in under the copy. */
16
+ export const CARD_DETAILS_OFFSET_PX = 6;
17
+ /** Scale the quick look's close button grows from. */
18
+ export const CARD_CLOSE_HIDDEN_SCALE = .9;
19
+ /** Scale the close button dips to while pressed. */
20
+ export const CARD_CLOSE_PRESS_SCALE = .94;
@@ -0,0 +1,55 @@
1
+ /** Tuning of `Carousel`, adapted from Arc's carousel (https://uiarc.dev, MIT License, see THIRD_PARTY_NOTICES.md). */
2
+ /** Arrow keys that move to the previous and next slide. */
3
+ export declare const CAROUSEL_KEYS: {
4
+ readonly previous: "ArrowLeft";
5
+ readonly next: "ArrowRight";
6
+ };
7
+ /** Keys that jump to the first and the last slide, as in Arc. */
8
+ export declare const CAROUSEL_EDGE_KEYS: {
9
+ readonly first: "Home";
10
+ readonly last: "End";
11
+ };
12
+ /**
13
+ * Focused elements, and composite widgets around them, that own their arrow, Home and End keys instead of moving the
14
+ * carousel: text entry plus the ARIA widgets with their own keyboard navigation. The carousel's own indicator tab
15
+ * list is excluded through {@link CAROUSEL_INDICATORS_SELECTOR}.
16
+ */
17
+ export declare const CAROUSEL_OWN_KEYBOARD_SELECTOR: string;
18
+ /** Length, in px, of a resting indicator dot and of the active pill it stretches into. */
19
+ export declare const CAROUSEL_INDICATOR_LENGTH_PX: {
20
+ readonly dot: 6;
21
+ readonly pill: 22;
22
+ };
23
+ /** Width of one slide when the consumer does not pick one, as in Arc: a share of the carousel, capped. */
24
+ export declare const CAROUSEL_DEFAULT_SLIDE_SIZE = "min(80cqw, 340px)";
25
+ /** CSS custom property the slides and the control row read the slide width from. */
26
+ export declare const CAROUSEL_SLIDE_SIZE_PROPERTY = "--carousel-slide";
27
+ /** Default copy of the carousel, in Spanish. */
28
+ export declare const CAROUSEL_COPY: {
29
+ /** Spoken role of the carousel root, in place of the English "carousel". */
30
+ readonly roleDescription: "carrusel";
31
+ /** Spoken role of each slide, in place of the English "slide". */
32
+ readonly slideRoleDescription: "diapositiva";
33
+ /** Accessible name of the draggable slide area. */
34
+ readonly viewportLabel: "Diapositivas";
35
+ /** Accessible name of the indicator tab list. */
36
+ readonly indicatorsLabel: "Elegir una diapositiva";
37
+ /** Accessible name of the previous arrow. */
38
+ readonly previous: "Diapositiva anterior";
39
+ /** Accessible name of the next arrow. */
40
+ readonly next: "Diapositiva siguiente";
41
+ /** Accessible name of the rotation control while slides rotate. */
42
+ readonly pauseRotation: "Pausar la rotación de diapositivas";
43
+ /** Accessible name of the rotation control while rotation is paused. */
44
+ readonly startRotation: "Iniciar la rotación de diapositivas";
45
+ readonly slideLabelPrefix: "Diapositiva";
46
+ readonly slideLabelSeparator: "de";
47
+ };
48
+ /** Root of a carousel; a nested carousel owns the keys pressed inside it. */
49
+ export declare const CAROUSEL_ROOT_SELECTOR = "[data-slot=\"carousel\"]";
50
+ /** The carousel's own indicator tab list, whose arrow, Home and End keys move the carousel. */
51
+ export declare const CAROUSEL_INDICATORS_SELECTOR = "[data-slot=\"carousel-indicators\"]";
52
+ /** Size, in px, of the play and pause icons of the rotation control. */
53
+ export declare const CAROUSEL_ROTATION_ICON_SIZE_PX = 15;
54
+ /** Scale the rotation icon grows from when it swaps between play and pause. */
55
+ export declare const CAROUSEL_ROTATION_ICON_ENTER_SCALE = 0.6;
@@ -0,0 +1,74 @@
1
+ /** Tuning of `Carousel`, adapted from Arc's carousel (https://uiarc.dev, MIT License, see THIRD_PARTY_NOTICES.md). */
2
+ /** Arrow keys that move to the previous and next slide. */
3
+ export const CAROUSEL_KEYS = {
4
+ previous: "ArrowLeft",
5
+ next: "ArrowRight"
6
+ };
7
+ /** Keys that jump to the first and the last slide, as in Arc. */
8
+ export const CAROUSEL_EDGE_KEYS = {
9
+ first: "Home",
10
+ last: "End"
11
+ };
12
+ /**
13
+ * Focused elements, and composite widgets around them, that own their arrow, Home and End keys instead of moving the
14
+ * carousel: text entry plus the ARIA widgets with their own keyboard navigation. The carousel's own indicator tab
15
+ * list is excluded through {@link CAROUSEL_INDICATORS_SELECTOR}.
16
+ */
17
+ export const CAROUSEL_OWN_KEYBOARD_SELECTOR = [
18
+ "input",
19
+ "textarea",
20
+ "select",
21
+ "[contenteditable]:not([contenteditable=false])",
22
+ ...[
23
+ "combobox",
24
+ "grid",
25
+ "listbox",
26
+ "menu",
27
+ "menubar",
28
+ "radiogroup",
29
+ "slider",
30
+ "spinbutton",
31
+ "tablist",
32
+ "toolbar",
33
+ "tree",
34
+ "treegrid"
35
+ ].map((role) => `[role=${role}]`)
36
+ ].join(", ");
37
+ /** Length, in px, of a resting indicator dot and of the active pill it stretches into. */
38
+ export const CAROUSEL_INDICATOR_LENGTH_PX = {
39
+ dot: 6,
40
+ pill: 22
41
+ };
42
+ /** Width of one slide when the consumer does not pick one, as in Arc: a share of the carousel, capped. */
43
+ export const CAROUSEL_DEFAULT_SLIDE_SIZE = "min(80cqw, 340px)";
44
+ /** CSS custom property the slides and the control row read the slide width from. */
45
+ export const CAROUSEL_SLIDE_SIZE_PROPERTY = "--carousel-slide";
46
+ /** Default copy of the carousel, in Spanish. */
47
+ export const CAROUSEL_COPY = {
48
+ /** Spoken role of the carousel root, in place of the English "carousel". */
49
+ roleDescription: "carrusel",
50
+ /** Spoken role of each slide, in place of the English "slide". */
51
+ slideRoleDescription: "diapositiva",
52
+ /** Accessible name of the draggable slide area. */
53
+ viewportLabel: "Diapositivas",
54
+ /** Accessible name of the indicator tab list. */
55
+ indicatorsLabel: "Elegir una diapositiva",
56
+ /** Accessible name of the previous arrow. */
57
+ previous: "Diapositiva anterior",
58
+ /** Accessible name of the next arrow. */
59
+ next: "Diapositiva siguiente",
60
+ /** Accessible name of the rotation control while slides rotate. */
61
+ pauseRotation: "Pausar la rotación de diapositivas",
62
+ /** Accessible name of the rotation control while rotation is paused. */
63
+ startRotation: "Iniciar la rotación de diapositivas",
64
+ slideLabelPrefix: "Diapositiva",
65
+ slideLabelSeparator: "de"
66
+ };
67
+ /** Root of a carousel; a nested carousel owns the keys pressed inside it. */
68
+ export const CAROUSEL_ROOT_SELECTOR = "[data-slot=\"carousel\"]";
69
+ /** The carousel's own indicator tab list, whose arrow, Home and End keys move the carousel. */
70
+ export const CAROUSEL_INDICATORS_SELECTOR = "[data-slot=\"carousel-indicators\"]";
71
+ /** Size, in px, of the play and pause icons of the rotation control. */
72
+ export const CAROUSEL_ROTATION_ICON_SIZE_PX = 15;
73
+ /** Scale the rotation icon grows from when it swaps between play and pause. */
74
+ export const CAROUSEL_ROTATION_ICON_ENTER_SCALE = .6;
@@ -0,0 +1,17 @@
1
+ /** Tuning of Arc's Checkbox mark, adapted from Arc (https://uiarc.dev, MIT License, see THIRD_PARTY_NOTICES.md). */
2
+ /**
3
+ * The check and the dash share three points, so the mark morphs from one into the other instead of swapping. Both
4
+ * are drawn in the 18 by 18 view box of `CHECKBOX_MARK_VIEW_BOX`.
5
+ */
6
+ export declare const CHECKBOX_MARK_PATH: {
7
+ readonly check: "M4.25 9.25 L7.25 12.25 L13.75 5.75";
8
+ readonly dash: "M4.75 9 L9 9 L13.25 9";
9
+ };
10
+ /** View box of the mark, matching the 18px square it is drawn on. */
11
+ export declare const CHECKBOX_MARK_VIEW_BOX = "0 0 18 18";
12
+ /** Stroke width of the mark, in view box units. */
13
+ export declare const CHECKBOX_MARK_STROKE_WIDTH = 1.75;
14
+ /** Scale the fill starts from when the box is checked and shrinks back to when it is cleared. */
15
+ export declare const CHECKBOX_FILL_HIDDEN_SCALE = 0.6;
16
+ /** Suffix of the id that ties the helper copy to the control through `aria-describedby`. */
17
+ export declare const CHECKBOX_DESCRIPTION_ID_SUFFIX = "description";
@@ -0,0 +1,17 @@
1
+ /** Tuning of Arc's Checkbox mark, adapted from Arc (https://uiarc.dev, MIT License, see THIRD_PARTY_NOTICES.md). */
2
+ /**
3
+ * The check and the dash share three points, so the mark morphs from one into the other instead of swapping. Both
4
+ * are drawn in the 18 by 18 view box of `CHECKBOX_MARK_VIEW_BOX`.
5
+ */
6
+ export const CHECKBOX_MARK_PATH = {
7
+ check: "M4.25 9.25 L7.25 12.25 L13.75 5.75",
8
+ dash: "M4.75 9 L9 9 L13.25 9"
9
+ };
10
+ /** View box of the mark, matching the 18px square it is drawn on. */
11
+ export const CHECKBOX_MARK_VIEW_BOX = "0 0 18 18";
12
+ /** Stroke width of the mark, in view box units. */
13
+ export const CHECKBOX_MARK_STROKE_WIDTH = 1.75;
14
+ /** Scale the fill starts from when the box is checked and shrinks back to when it is cleared. */
15
+ export const CHECKBOX_FILL_HIDDEN_SCALE = .6;
16
+ /** Suffix of the id that ties the helper copy to the control through `aria-describedby`. */
17
+ export const CHECKBOX_DESCRIPTION_ID_SUFFIX = "description";
@@ -0,0 +1,11 @@
1
+ /** Tuning and default copy shared by the Arc surfaces of `Dialog` and its `alert` mode. */
2
+ /** Vertical offsets, in em, of a changed title or description rising in and lifting out while the dialog is open. */
3
+ export declare const DIALOG_TEXT_SWAP_OFFSET_EM: {
4
+ readonly enter: 0.3;
5
+ readonly exit: -0.3;
6
+ };
7
+ /** Default Spanish copy of Dialog; the close button name can be overridden with `closeLabel`. */
8
+ export declare const DIALOG_DEFAULT_COPY: {
9
+ /** Accessible name of the built-in close button (Arc's "Close dialog"). */
10
+ readonly closeLabel: "Cerrar diálogo";
11
+ };
@@ -0,0 +1,10 @@
1
+ /** Tuning and default copy shared by the Arc surfaces of `Dialog` and its `alert` mode. */
2
+ /** Vertical offsets, in em, of a changed title or description rising in and lifting out while the dialog is open. */
3
+ export const DIALOG_TEXT_SWAP_OFFSET_EM = {
4
+ enter: .3,
5
+ exit: -.3
6
+ };
7
+ /** Default Spanish copy of Dialog; the close button name can be overridden with `closeLabel`. */
8
+ export const DIALOG_DEFAULT_COPY = {
9
+ /** Accessible name of the built-in close button (Arc's "Close dialog"). */
10
+ closeLabel: "Cerrar diálogo" };
@@ -0,0 +1,10 @@
1
+ import type { ArcFloatingMotion } from "../motion/arc-floating-slot.js";
2
+ /** Gap, in pixels, between the trigger and the menu. */
3
+ export declare const DROPDOWN_MENU_SIDE_OFFSET_PX = 6;
4
+ /** Minimum distance, in pixels, a menu keeps from the viewport edges. */
5
+ export declare const DROPDOWN_MENU_COLLISION_PADDING_PX = 12;
6
+ /**
7
+ * Arc's menu: it starts 5px toward its trigger at .97, settles on the CSS spring while it fades in quickly, and
8
+ * leaves halfway back toward the trigger at .985.
9
+ */
10
+ export declare const DROPDOWN_MENU_MOTION: ArcFloatingMotion;
@@ -0,0 +1,37 @@
1
+ import { ARC_DURATION, ARC_EASE, ARC_SPRING_CSS } from "../motion/arc-tokens.js";
2
+ /** Gap, in pixels, between the trigger and the menu. */
3
+ export const DROPDOWN_MENU_SIDE_OFFSET_PX = 6;
4
+ /** Minimum distance, in pixels, a menu keeps from the viewport edges. */
5
+ export const DROPDOWN_MENU_COLLISION_PADDING_PX = 12;
6
+ /** Arc closes the menu in 130ms on the standard curve. */
7
+ const DROPDOWN_MENU_EXIT_TWEEN = {
8
+ duration: .13,
9
+ ease: [...ARC_EASE.standard]
10
+ };
11
+ /**
12
+ * Arc's menu: it starts 5px toward its trigger at .97, settles on the CSS spring while it fades in quickly, and
13
+ * leaves halfway back toward the trigger at .985.
14
+ */
15
+ export const DROPDOWN_MENU_MOTION = {
16
+ enterFrom: {
17
+ travel: 5,
18
+ scale: .97,
19
+ opacity: 0
20
+ },
21
+ enter: {
22
+ transform: ARC_SPRING_CSS,
23
+ opacity: {
24
+ duration: ARC_DURATION.fast,
25
+ ease: [...ARC_EASE.enter]
26
+ }
27
+ },
28
+ exitTo: {
29
+ travel: 2.5,
30
+ scale: .985,
31
+ opacity: 0
32
+ },
33
+ exit: {
34
+ transform: DROPDOWN_MENU_EXIT_TWEEN,
35
+ opacity: DROPDOWN_MENU_EXIT_TWEEN
36
+ }
37
+ };
@@ -0,0 +1,24 @@
1
+ /** Tuning of the internal labelled field shared by `Input` and `Textarea`. */
2
+ /** Vertical offsets, in em, of changed message words rising in and lifting out. */
3
+ export declare const FIELD_MESSAGE_WORD_OFFSET_EM: {
4
+ readonly enter: 0.35;
5
+ readonly exit: -0.35;
6
+ };
7
+ /** Vertical travel, in em, of a digit rolling in or out of a count in the message. */
8
+ export declare const FIELD_MESSAGE_DIGIT_OFFSET_EM = 0.6;
9
+ /** A message word that rolls its digits instead of rising in: counts, decimals, ratios, times and percentages. */
10
+ export declare const FIELD_MESSAGE_NUMBER_PATTERN: RegExp;
11
+ /**
12
+ * Grouping separators removed before comparing two counts to pick the roll direction: a dot or comma followed by
13
+ * exactly three digits, so both `1.000` (es) and `1,000` (en) read as a thousand while `1,5` stays a decimal.
14
+ */
15
+ export declare const FIELD_MESSAGE_GROUP_SEPARATOR_PATTERN: RegExp;
16
+ /** Separators between the components of a time (`0:09`) or a ratio (`3/10`), compared one by one. */
17
+ export declare const FIELD_MESSAGE_COMPONENT_SEPARATOR_PATTERN: RegExp;
18
+ /** Decimal comma of locales such as Spanish, read as a decimal point once the grouping separators are gone. */
19
+ export declare const FIELD_MESSAGE_DECIMAL_COMMA = ",";
20
+ /** Suffixes of the ids that tie the helper and error rows to the control through `aria-describedby`. */
21
+ export declare const FIELD_MESSAGE_ID_SUFFIX: {
22
+ readonly description: "description";
23
+ readonly error: "error";
24
+ };
@@ -0,0 +1,24 @@
1
+ /** Tuning of the internal labelled field shared by `Input` and `Textarea`. */
2
+ /** Vertical offsets, in em, of changed message words rising in and lifting out. */
3
+ export const FIELD_MESSAGE_WORD_OFFSET_EM = {
4
+ enter: .35,
5
+ exit: -.35
6
+ };
7
+ /** Vertical travel, in em, of a digit rolling in or out of a count in the message. */
8
+ export const FIELD_MESSAGE_DIGIT_OFFSET_EM = .6;
9
+ /** A message word that rolls its digits instead of rising in: counts, decimals, ratios, times and percentages. */
10
+ export const FIELD_MESSAGE_NUMBER_PATTERN = /^\d[\d.,/:]*%?$/;
11
+ /**
12
+ * Grouping separators removed before comparing two counts to pick the roll direction: a dot or comma followed by
13
+ * exactly three digits, so both `1.000` (es) and `1,000` (en) read as a thousand while `1,5` stays a decimal.
14
+ */
15
+ export const FIELD_MESSAGE_GROUP_SEPARATOR_PATTERN = /[.,](?=\d{3}(?!\d))/g;
16
+ /** Separators between the components of a time (`0:09`) or a ratio (`3/10`), compared one by one. */
17
+ export const FIELD_MESSAGE_COMPONENT_SEPARATOR_PATTERN = /[:/]/;
18
+ /** Decimal comma of locales such as Spanish, read as a decimal point once the grouping separators are gone. */
19
+ export const FIELD_MESSAGE_DECIMAL_COMMA = ",";
20
+ /** Suffixes of the ids that tie the helper and error rows to the control through `aria-describedby`. */
21
+ export const FIELD_MESSAGE_ID_SUFFIX = {
22
+ description: "description",
23
+ error: "error"
24
+ };
@@ -0,0 +1,37 @@
1
+ import type { ArcFloatingMotion } from "../motion/arc-floating-slot.js";
2
+ /** Milliseconds of hover before the first card opens. */
3
+ export declare const HOVER_CARD_OPEN_DELAY_MS = 500;
4
+ /** Milliseconds of grace after the pointer leaves, so it can travel into the card. */
5
+ export declare const HOVER_CARD_CLOSE_DELAY_MS = 140;
6
+ /** Moving to another trigger within this many milliseconds of a card closing opens the next one almost at once. */
7
+ export declare const HOVER_CARD_SKIP_WINDOW_MS = 300;
8
+ /**
9
+ * Even warm, a trigger waits this many milliseconds, so a pointer crossing it on the way into an open card does not
10
+ * steal the card.
11
+ */
12
+ export declare const HOVER_CARD_WARM_OPEN_DELAY_MS = 80;
13
+ /** Gap, in px, between the card and its trigger. */
14
+ export declare const HOVER_CARD_SIDE_OFFSET_PX = 8;
15
+ /** Distance, in px, the card keeps from the viewport edges before it flips or shifts. */
16
+ export declare const HOVER_CARD_COLLISION_PADDING_PX = 12;
17
+ /** Delay, in seconds, before the first row of `HoverCardProfile` settles in. */
18
+ export declare const HOVER_CARD_PROFILE_SETTLE_DELAY_S = 0.04;
19
+ /** Stagger, in seconds, between the rows of `HoverCardProfile`. */
20
+ export declare const HOVER_CARD_PROFILE_STAGGER_S = 0.035;
21
+ /** Distance, in px, each row of `HoverCardProfile` rises while it settles in. */
22
+ export declare const HOVER_CARD_PROFILE_SETTLE_DISTANCE_PX = 4;
23
+ /** Rows of `HoverCardProfile`, in the order they settle in. */
24
+ export declare const HOVER_CARD_PROFILE_ROW_ORDER: {
25
+ readonly head: 0;
26
+ readonly bio: 1;
27
+ readonly stats: 2;
28
+ readonly meta: 3;
29
+ };
30
+ /** Initials shown in place of a missing portrait: the first letter of up to this many words of the name. */
31
+ export declare const HOVER_CARD_PROFILE_INITIALS_LENGTH = 2;
32
+ /** Side, in px, of the square portrait of `HoverCardProfile`. */
33
+ export declare const HOVER_CARD_PROFILE_PORTRAIT_SIZE_PX = 48;
34
+ /** The card grows from the trigger edge: 4px of travel and a .96 scale on one smooth spring, with a leading fade. */
35
+ export declare const HOVER_CARD_MOTION: ArcFloatingMotion;
36
+ /** Within the skip window the next card opens in place and only fades. */
37
+ export declare const HOVER_CARD_INSTANT_MOTION: ArcFloatingMotion;
@@ -0,0 +1,85 @@
1
+ import { ARC_DURATION, ARC_EASE, ARC_SPRING_SMOOTH } from "../motion/arc-tokens.js";
2
+ /** Milliseconds of hover before the first card opens. */
3
+ export const HOVER_CARD_OPEN_DELAY_MS = 500;
4
+ /** Milliseconds of grace after the pointer leaves, so it can travel into the card. */
5
+ export const HOVER_CARD_CLOSE_DELAY_MS = 140;
6
+ /** Moving to another trigger within this many milliseconds of a card closing opens the next one almost at once. */
7
+ export const HOVER_CARD_SKIP_WINDOW_MS = 300;
8
+ /**
9
+ * Even warm, a trigger waits this many milliseconds, so a pointer crossing it on the way into an open card does not
10
+ * steal the card.
11
+ */
12
+ export const HOVER_CARD_WARM_OPEN_DELAY_MS = 80;
13
+ /** Gap, in px, between the card and its trigger. */
14
+ export const HOVER_CARD_SIDE_OFFSET_PX = 8;
15
+ /** Distance, in px, the card keeps from the viewport edges before it flips or shifts. */
16
+ export const HOVER_CARD_COLLISION_PADDING_PX = 12;
17
+ /** Delay, in seconds, before the first row of `HoverCardProfile` settles in. */
18
+ export const HOVER_CARD_PROFILE_SETTLE_DELAY_S = .04;
19
+ /** Stagger, in seconds, between the rows of `HoverCardProfile`. */
20
+ export const HOVER_CARD_PROFILE_STAGGER_S = .035;
21
+ /** Distance, in px, each row of `HoverCardProfile` rises while it settles in. */
22
+ export const HOVER_CARD_PROFILE_SETTLE_DISTANCE_PX = 4;
23
+ /** Rows of `HoverCardProfile`, in the order they settle in. */
24
+ export const HOVER_CARD_PROFILE_ROW_ORDER = {
25
+ head: 0,
26
+ bio: 1,
27
+ stats: 2,
28
+ meta: 3
29
+ };
30
+ /** Initials shown in place of a missing portrait: the first letter of up to this many words of the name. */
31
+ export const HOVER_CARD_PROFILE_INITIALS_LENGTH = 2;
32
+ /** Side, in px, of the square portrait of `HoverCardProfile`. */
33
+ export const HOVER_CARD_PROFILE_PORTRAIT_SIZE_PX = 48;
34
+ const exitTween = {
35
+ duration: .12,
36
+ ease: [...ARC_EASE.standard]
37
+ };
38
+ /** The card grows from the trigger edge: 4px of travel and a .96 scale on one smooth spring, with a leading fade. */
39
+ export const HOVER_CARD_MOTION = {
40
+ enterFrom: {
41
+ travel: 4,
42
+ scale: .96,
43
+ opacity: 0
44
+ },
45
+ enter: {
46
+ transform: ARC_SPRING_SMOOTH,
47
+ opacity: {
48
+ duration: ARC_DURATION.fast,
49
+ ease: [...ARC_EASE.enter]
50
+ }
51
+ },
52
+ exitTo: {
53
+ travel: 4,
54
+ scale: .96,
55
+ opacity: 0
56
+ },
57
+ exit: {
58
+ transform: exitTween,
59
+ opacity: exitTween
60
+ }
61
+ };
62
+ /** Within the skip window the next card opens in place and only fades. */
63
+ export const HOVER_CARD_INSTANT_MOTION = {
64
+ enterFrom: {
65
+ travel: 0,
66
+ scale: 1,
67
+ opacity: 0
68
+ },
69
+ enter: {
70
+ transform: {
71
+ duration: .14,
72
+ ease: [...ARC_EASE.enter]
73
+ },
74
+ opacity: {
75
+ duration: .09,
76
+ ease: [...ARC_EASE.enter]
77
+ }
78
+ },
79
+ exitTo: {
80
+ travel: 0,
81
+ scale: 1,
82
+ opacity: 0
83
+ },
84
+ exit: HOVER_CARD_MOTION.exit
85
+ };
@@ -0,0 +1,13 @@
1
+ /** Tuning of the internal letter-by-letter label morph shared by `ActionButton` and `SplitButton`. */
2
+ /** Longest entrance delay a single letter gets, so long labels still finish their morph quickly. */
3
+ export declare const MORPH_TEXT_MAX_GLYPH_DELAY_S = 0.1;
4
+ /**
5
+ * Shared leading or trailing runs shorter than this are replaced instead of kept, so a one-letter coincidence does
6
+ * not leave a lonely letter standing while the rest of the label morphs.
7
+ */
8
+ export declare const MORPH_TEXT_MIN_SHARED_RUN = 2;
9
+ /** Vertical offsets, in pixels, of letters rising in and lifting out of the label. */
10
+ export declare const MORPH_TEXT_GLYPH_OFFSET_PX: {
11
+ readonly enter: 5;
12
+ readonly exit: -4;
13
+ };
@@ -0,0 +1,13 @@
1
+ /** Tuning of the internal letter-by-letter label morph shared by `ActionButton` and `SplitButton`. */
2
+ /** Longest entrance delay a single letter gets, so long labels still finish their morph quickly. */
3
+ export const MORPH_TEXT_MAX_GLYPH_DELAY_S = .1;
4
+ /**
5
+ * Shared leading or trailing runs shorter than this are replaced instead of kept, so a one-letter coincidence does
6
+ * not leave a lonely letter standing while the rest of the label morphs.
7
+ */
8
+ export const MORPH_TEXT_MIN_SHARED_RUN = 2;
9
+ /** Vertical offsets, in pixels, of letters rising in and lifting out of the label. */
10
+ export const MORPH_TEXT_GLYPH_OFFSET_PX = {
11
+ enter: 5,
12
+ exit: -4
13
+ };
@@ -0,0 +1,12 @@
1
+ /** Shares the operating-system preference across CSS-adjacent and JavaScript animations. */
2
+ export declare const REDUCED_MOTION_QUERY = "(prefers-reduced-motion: reduce)";
3
+ /** Only true hover pointers get hover lifts; touch devices keep phantom hovers after taps. */
4
+ export declare const HOVER_CAPABLE_QUERY = "(hover: hover) and (pointer: fine)";
5
+ /** Converts Motion's second-based timings to the millisecond timings of Web Animations. */
6
+ export declare const MILLISECONDS_PER_SECOND = 1000;
7
+ /**
8
+ * Marks a surface while its entrance plays. Its transform makes it the containing block of
9
+ * fixed descendants and its clip cuts them, so content pinned to the viewport stays hidden
10
+ * until the surface settles.
11
+ */
12
+ export declare const MOTION_ENTERING_ATTRIBUTE = "data-motion-entering";
@@ -0,0 +1,12 @@
1
+ /** Shares the operating-system preference across CSS-adjacent and JavaScript animations. */
2
+ export const REDUCED_MOTION_QUERY = "(prefers-reduced-motion: reduce)";
3
+ /** Only true hover pointers get hover lifts; touch devices keep phantom hovers after taps. */
4
+ export const HOVER_CAPABLE_QUERY = "(hover: hover) and (pointer: fine)";
5
+ /** Converts Motion's second-based timings to the millisecond timings of Web Animations. */
6
+ export const MILLISECONDS_PER_SECOND = 1e3;
7
+ /**
8
+ * Marks a surface while its entrance plays. Its transform makes it the containing block of
9
+ * fixed descendants and its clip cuts them, so content pinned to the viewport stays hidden
10
+ * until the surface settles.
11
+ */
12
+ export const MOTION_ENTERING_ATTRIBUTE = "data-motion-entering";
@@ -0,0 +1,20 @@
1
+ /** Default Spanish copy and window of Arc's Pagination. */
2
+ /** Default Spanish copy of Pagination; the landmark and arrow copy can be overridden through props. */
3
+ export declare const PAGINATION_DEFAULT_COPY: {
4
+ /** Accessible name of the navigation landmark (Arc's "Pagination"). */
5
+ readonly navigationLabel: "Paginación";
6
+ /** Visible label of the previous arrow. */
7
+ readonly previousText: "Anterior";
8
+ /** Visible label of the next arrow. */
9
+ readonly nextText: "Siguiente";
10
+ /** Accessible name of the previous arrow while it keeps its default label (Arc's "Previous page"). */
11
+ readonly previousLabel: "Ir a la página anterior";
12
+ /** Accessible name of the next arrow while it keeps its default label (Arc's "Next page"). */
13
+ readonly nextLabel: "Ir a la página siguiente";
14
+ /** Word before the number in the accessible name of each page (Arc's "Page 3"). */
15
+ readonly pageLabelPrefix: "Página";
16
+ };
17
+ /** Pages shown at once: Arc's five page window, so the control keeps one width on any screen. */
18
+ export declare const PAGINATION_WINDOW_SIZE = 5;
19
+ /** First page number: pages are 1-based. */
20
+ export declare const PAGINATION_FIRST_PAGE = 1;
@@ -0,0 +1,20 @@
1
+ /** Default Spanish copy and window of Arc's Pagination. */
2
+ /** Default Spanish copy of Pagination; the landmark and arrow copy can be overridden through props. */
3
+ export const PAGINATION_DEFAULT_COPY = {
4
+ /** Accessible name of the navigation landmark (Arc's "Pagination"). */
5
+ navigationLabel: "Paginación",
6
+ /** Visible label of the previous arrow. */
7
+ previousText: "Anterior",
8
+ /** Visible label of the next arrow. */
9
+ nextText: "Siguiente",
10
+ /** Accessible name of the previous arrow while it keeps its default label (Arc's "Previous page"). */
11
+ previousLabel: "Ir a la página anterior",
12
+ /** Accessible name of the next arrow while it keeps its default label (Arc's "Next page"). */
13
+ nextLabel: "Ir a la página siguiente",
14
+ /** Word before the number in the accessible name of each page (Arc's "Page 3"). */
15
+ pageLabelPrefix: "Página"
16
+ };
17
+ /** Pages shown at once: Arc's five page window, so the control keeps one width on any screen. */
18
+ export const PAGINATION_WINDOW_SIZE = 5;
19
+ /** First page number: pages are 1-based. */
20
+ export const PAGINATION_FIRST_PAGE = 1;
@@ -0,0 +1,7 @@
1
+ import type { ArcFloatingMotion } from "../motion/arc-floating-slot.js";
2
+ /** Gap, in px, between the panel and its trigger. */
3
+ export declare const POPOVER_SIDE_OFFSET_PX = 6;
4
+ /** Distance, in px, the panel keeps from the viewport edges before it flips or shifts. */
5
+ export declare const POPOVER_COLLISION_PADDING_PX = 10;
6
+ /** The panel starts 5px toward its trigger at .97, settles on a spring, and leaves faster than it arrives. */
7
+ export declare const POPOVER_MOTION: ArcFloatingMotion;
@@ -0,0 +1,33 @@
1
+ import { ARC_DURATION, ARC_EASE, ARC_SPRING_CSS } from "../motion/arc-tokens.js";
2
+ /** Gap, in px, between the panel and its trigger. */
3
+ export const POPOVER_SIDE_OFFSET_PX = 6;
4
+ /** Distance, in px, the panel keeps from the viewport edges before it flips or shifts. */
5
+ export const POPOVER_COLLISION_PADDING_PX = 10;
6
+ const exitTween = {
7
+ duration: ARC_DURATION.fast,
8
+ ease: [...ARC_EASE.standard]
9
+ };
10
+ /** The panel starts 5px toward its trigger at .97, settles on a spring, and leaves faster than it arrives. */
11
+ export const POPOVER_MOTION = {
12
+ enterFrom: {
13
+ travel: 5,
14
+ scale: .97,
15
+ opacity: 0
16
+ },
17
+ enter: {
18
+ transform: ARC_SPRING_CSS,
19
+ opacity: {
20
+ duration: ARC_DURATION.fast,
21
+ ease: [...ARC_EASE.enter]
22
+ }
23
+ },
24
+ exitTo: {
25
+ travel: 2.5,
26
+ scale: .98,
27
+ opacity: 0
28
+ },
29
+ exit: {
30
+ transform: exitTween,
31
+ opacity: exitTween
32
+ }
33
+ };
@@ -0,0 +1,10 @@
1
+ /** Tuning of Arc's RadioGroup, adapted from Arc (https://uiarc.dev, MIT License, see THIRD_PARTY_NOTICES.md). */
2
+ /** Scale the dot shrinks to when its option is cleared, and springs up from when it is chosen. */
3
+ export declare const RADIO_GROUP_DOT_HIDDEN_SCALE = 0.4;
4
+ /** Attribute the group sets once its highlight is placed, which drops the static fallback look of the checked row. */
5
+ export declare const RADIO_GROUP_READY_ATTRIBUTE = "data-ready";
6
+ /** Suffixes of the ids that tie an option row's copy to its radio. */
7
+ export declare const RADIO_GROUP_OPTION_ID_SUFFIX: {
8
+ readonly label: "label";
9
+ readonly description: "description";
10
+ };
@@ -0,0 +1,10 @@
1
+ /** Tuning of Arc's RadioGroup, adapted from Arc (https://uiarc.dev, MIT License, see THIRD_PARTY_NOTICES.md). */
2
+ /** Scale the dot shrinks to when its option is cleared, and springs up from when it is chosen. */
3
+ export const RADIO_GROUP_DOT_HIDDEN_SCALE = .4;
4
+ /** Attribute the group sets once its highlight is placed, which drops the static fallback look of the checked row. */
5
+ export const RADIO_GROUP_READY_ATTRIBUTE = "data-ready";
6
+ /** Suffixes of the ids that tie an option row's copy to its radio. */
7
+ export const RADIO_GROUP_OPTION_ID_SUFFIX = {
8
+ label: "label",
9
+ description: "description"
10
+ };
@@ -0,0 +1,7 @@
1
+ import type { ArcFloatingMotion } from "../motion/arc-floating-slot.js";
2
+ /** Minimum distance, in pixels, the option list keeps from the viewport edges. */
3
+ export declare const SELECT_COLLISION_PADDING_PX = 12;
4
+ /** Default Spanish placeholder, shown while no option is chosen. Arc's English default is "Select an option". */
5
+ export declare const SELECT_DEFAULT_PLACEHOLDER = "Seleccion\u00E1 una opci\u00F3n";
6
+ /** Arc's option list: it grows 6px from the trigger edge at .97 and leaves halfway back at .98, both as tweens. */
7
+ export declare const SELECT_MOTION: ArcFloatingMotion;
@@ -0,0 +1,34 @@
1
+ import { ARC_DURATION, ARC_EASE } from "../motion/arc-tokens.js";
2
+ /** Minimum distance, in pixels, the option list keeps from the viewport edges. */
3
+ export const SELECT_COLLISION_PADDING_PX = 12;
4
+ /** Default Spanish placeholder, shown while no option is chosen. Arc's English default is "Select an option". */
5
+ export const SELECT_DEFAULT_PLACEHOLDER = "Seleccioná una opción";
6
+ const SELECT_ENTER_TWEEN = {
7
+ duration: ARC_DURATION.standard,
8
+ ease: [...ARC_EASE.enter]
9
+ };
10
+ const SELECT_EXIT_TWEEN = {
11
+ duration: ARC_DURATION.instant,
12
+ ease: [...ARC_EASE.standard]
13
+ };
14
+ /** Arc's option list: it grows 6px from the trigger edge at .97 and leaves halfway back at .98, both as tweens. */
15
+ export const SELECT_MOTION = {
16
+ enterFrom: {
17
+ travel: 6,
18
+ scale: .97,
19
+ opacity: 0
20
+ },
21
+ enter: {
22
+ transform: SELECT_ENTER_TWEEN,
23
+ opacity: SELECT_ENTER_TWEEN
24
+ },
25
+ exitTo: {
26
+ travel: 3,
27
+ scale: .98,
28
+ opacity: 0
29
+ },
30
+ exit: {
31
+ transform: SELECT_EXIT_TWEEN,
32
+ opacity: SELECT_EXIT_TWEEN
33
+ }
34
+ };