@neo-ui-kit/react 0.0.0-stage → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +213 -2
  3. package/dist/artwork/icons.json.d.ts +2 -0
  4. package/dist/artwork/illustrations.json.d.ts +2 -0
  5. package/dist/chunks/chunk-347P6ZE4.js +104 -0
  6. package/dist/chunks/chunk-BJSFN52W.js +417 -0
  7. package/dist/chunks/chunk-FCOU3ODR.js +63 -0
  8. package/dist/chunks/chunk-JZ4GDTH5.js +87 -0
  9. package/dist/chunks/chunk-UGDRXR7P.js +3362 -0
  10. package/dist/chunks/chunk-VK6GHRLV.js +335 -0
  11. package/dist/chunks/chunk-YKCUOZ7V.js +777 -0
  12. package/dist/components/artwork/DatabaseArt/DatabaseArt.d.ts +6 -0
  13. package/dist/components/artwork/DatabaseArt/styles.css +58 -0
  14. package/dist/components/artwork/Landscape/Landscape.d.ts +7 -0
  15. package/dist/components/artwork/Landscape/styles.css +79 -0
  16. package/dist/components/artwork/NeonWaves/NeonWaves.d.ts +15 -0
  17. package/dist/components/artwork/NeonWaves/styles.css +48 -0
  18. package/dist/components/artwork/Planet/Planet.d.ts +4 -0
  19. package/dist/components/artwork/Planet/styles.css +52 -0
  20. package/dist/components/artwork/QuantumField/QuantumField.d.ts +42 -0
  21. package/dist/components/artwork/QuantumField/QuantumFieldExperience.d.ts +22 -0
  22. package/dist/components/artwork/QuantumField/UPSTREAM-LICENSE.txt +21 -0
  23. package/dist/components/artwork/QuantumField/audio.d.ts +15 -0
  24. package/dist/components/artwork/QuantumField/renderer.d.ts +24 -0
  25. package/dist/components/artwork/QuantumField/styles.css +77 -0
  26. package/dist/components/artwork/ServerArt/ServerArt.d.ts +8 -0
  27. package/dist/components/artwork/ServerArt/styles.css +43 -0
  28. package/dist/components/artwork/Spectrum/Spectrum.d.ts +7 -0
  29. package/dist/components/artwork/Spectrum/styles.css +35 -0
  30. package/dist/components/artwork/layers.d.ts +15 -0
  31. package/dist/components/artwork/useArtwork.d.ts +8 -0
  32. package/dist/components/controls/Autocomplete/Autocomplete.d.ts +2 -0
  33. package/dist/components/controls/Autocomplete/styles.css +1 -0
  34. package/dist/components/controls/Button/Button.d.ts +2 -0
  35. package/dist/components/controls/Button/styles.css +1 -0
  36. package/dist/components/controls/Checkbox/Checkbox.d.ts +2 -0
  37. package/dist/components/controls/Checkbox/styles.css +70 -0
  38. package/dist/components/controls/Chip/Chip.d.ts +21 -0
  39. package/dist/components/controls/Chip/styles.css +74 -0
  40. package/dist/components/controls/ChipField.d.ts +25 -0
  41. package/dist/components/controls/ColorPicker/ColorPicker.d.ts +16 -0
  42. package/dist/components/controls/ColorPicker/color.d.ts +9 -0
  43. package/dist/components/controls/ColorPicker/styles.css +103 -0
  44. package/dist/components/controls/DatePicker/DatePicker.d.ts +19 -0
  45. package/dist/components/controls/DatePicker/styles.css +69 -0
  46. package/dist/components/controls/FilePicker/FilePicker.d.ts +2 -0
  47. package/dist/components/controls/FilePicker/styles.css +149 -0
  48. package/dist/components/controls/IconButton/IconButton.d.ts +2 -0
  49. package/dist/components/controls/IconButton/styles.css +4 -0
  50. package/dist/components/controls/InputBase/InputBase.d.ts +21 -0
  51. package/dist/components/controls/InputBase/styles.css +379 -0
  52. package/dist/components/controls/Link/Link.d.ts +11 -0
  53. package/dist/components/controls/Link/styles.css +50 -0
  54. package/dist/components/controls/NumberField/NumberField.d.ts +2 -0
  55. package/dist/components/controls/NumberField/styles.css +1 -0
  56. package/dist/components/controls/PeoplePicker/PeoplePicker.d.ts +37 -0
  57. package/dist/components/controls/PeoplePicker/styles.css +7 -0
  58. package/dist/components/controls/SegmentedControl/SegmentedControl.d.ts +2 -0
  59. package/dist/components/controls/SegmentedControl/styles.css +9 -0
  60. package/dist/components/controls/Select/Select.d.ts +8 -0
  61. package/dist/components/controls/Select/styles.css +142 -0
  62. package/dist/components/controls/Slider/Slider.d.ts +3 -0
  63. package/dist/components/controls/Slider/styles.css +138 -0
  64. package/dist/components/controls/SplitButton/SplitButton.d.ts +2 -0
  65. package/dist/components/controls/SplitButton/styles.css +169 -0
  66. package/dist/components/controls/Switch/Switch.d.ts +2 -0
  67. package/dist/components/controls/Switch/styles.css +54 -0
  68. package/dist/components/controls/Tab/Tab.d.ts +2 -0
  69. package/dist/components/controls/Tab/styles.css +111 -0
  70. package/dist/components/controls/Tabs/Tabs.d.ts +2 -0
  71. package/dist/components/controls/Tabs/styles.css +239 -0
  72. package/dist/components/controls/TagInput/TagInput.d.ts +24 -0
  73. package/dist/components/controls/TagInput/styles.css +24 -0
  74. package/dist/components/controls/TextArea/TextArea.d.ts +2 -0
  75. package/dist/components/controls/TextArea/styles.css +15 -0
  76. package/dist/components/controls/TextField/TextField.d.ts +2 -0
  77. package/dist/components/controls/ThemePicker/ThemePicker.d.ts +24 -0
  78. package/dist/components/controls/ThemePicker/styles.css +128 -0
  79. package/dist/components/controls/ToggleButton/ToggleButton.d.ts +2 -0
  80. package/dist/components/controls/ToggleButton/styles.css +49 -0
  81. package/dist/components/controls/internal.d.ts +62 -0
  82. package/dist/components/controls/shared.css +694 -0
  83. package/dist/components/controls/shared.d.ts +204 -0
  84. package/dist/components/editor/PianoRoll/PianoRoll.d.ts +65 -0
  85. package/dist/components/editor/PianoRoll/styles.css +186 -0
  86. package/dist/components/editor/shared.css +1 -0
  87. package/dist/components/effects/AnimatedBorder/AnimatedBorder.d.ts +9 -0
  88. package/dist/components/effects/AnimatedBorder/styles.css +7 -0
  89. package/dist/components/effects/Beacon/Beacon.d.ts +9 -0
  90. package/dist/components/effects/Beacon/styles.css +38 -0
  91. package/dist/components/effects/Equalizer/Equalizer.d.ts +14 -0
  92. package/dist/components/effects/Equalizer/styles.css +38 -0
  93. package/dist/components/effects/GlowText/GlowText.d.ts +9 -0
  94. package/dist/components/effects/GlowText/styles.css +56 -0
  95. package/dist/components/effects/ImageShine/ImageShine.d.ts +13 -0
  96. package/dist/components/effects/ImageShine/styles.css +66 -0
  97. package/dist/components/effects/Marquee/Marquee.d.ts +9 -0
  98. package/dist/components/effects/Marquee/styles.css +46 -0
  99. package/dist/components/effects/MelodixText/MelodixText.d.ts +15 -0
  100. package/dist/components/effects/MelodixText/styles.css +28 -0
  101. package/dist/components/effects/Reveal/Reveal.d.ts +13 -0
  102. package/dist/components/effects/Reveal/styles.css +25 -0
  103. package/dist/components/effects/Shimmer/Shimmer.d.ts +10 -0
  104. package/dist/components/effects/Shimmer/styles.css +48 -0
  105. package/dist/components/effects/Sparkles/Sparkles.d.ts +9 -0
  106. package/dist/components/effects/Sparkles/styles.css +28 -0
  107. package/dist/components/effects/Spotlight/Spotlight.d.ts +11 -0
  108. package/dist/components/effects/Spotlight/styles.css +45 -0
  109. package/dist/components/effects/Tilt/Tilt.d.ts +11 -0
  110. package/dist/components/effects/Tilt/styles.css +67 -0
  111. package/dist/components/feedback/Badge/Badge.d.ts +3 -0
  112. package/dist/components/feedback/Badge/styles.css +91 -0
  113. package/dist/components/feedback/CollapsibleSection/CollapsibleSection.d.ts +2 -0
  114. package/dist/components/feedback/CollapsibleSection/styles.css +76 -0
  115. package/dist/components/feedback/DataTable/DataTable.d.ts +16 -0
  116. package/dist/components/feedback/DataTable/styles.css +522 -0
  117. package/dist/components/feedback/Dialog/Dialog.d.ts +2 -0
  118. package/dist/components/feedback/Dialog/styles.css +82 -0
  119. package/dist/components/feedback/EmptyState/EmptyState.d.ts +2 -0
  120. package/dist/components/feedback/EmptyState/styles.css +80 -0
  121. package/dist/components/feedback/KeyValueList/KeyValueList.d.ts +2 -0
  122. package/dist/components/feedback/KeyValueList/styles.css +51 -0
  123. package/dist/components/feedback/Menu/Menu.d.ts +2 -0
  124. package/dist/components/feedback/Menu/styles.css +123 -0
  125. package/dist/components/feedback/MenuItem/MenuItem.d.ts +2 -0
  126. package/dist/components/feedback/MenuItem/styles.css +71 -0
  127. package/dist/components/feedback/MessageBar/MessageBar.d.ts +2 -0
  128. package/dist/components/feedback/MessageBar/styles.css +116 -0
  129. package/dist/components/feedback/Popover/Popover.d.ts +2 -0
  130. package/dist/components/feedback/Popover/styles.css +44 -0
  131. package/dist/components/feedback/ProgressBar/ProgressBar.d.ts +2 -0
  132. package/dist/components/feedback/ProgressBar/styles.css +76 -0
  133. package/dist/components/feedback/SignalBars/SignalBars.d.ts +11 -0
  134. package/dist/components/feedback/SignalBars/styles.css +31 -0
  135. package/dist/components/feedback/StatusIndicator/StatusIndicator.d.ts +2 -0
  136. package/dist/components/feedback/StatusIndicator/styles.css +88 -0
  137. package/dist/components/feedback/Steps/Steps.d.ts +2 -0
  138. package/dist/components/feedback/Steps/styles.css +152 -0
  139. package/dist/components/feedback/Toast/Toast.d.ts +2 -0
  140. package/dist/components/feedback/Toast/styles.css +89 -0
  141. package/dist/components/feedback/Tooltip/Tooltip.d.ts +15 -0
  142. package/dist/components/feedback/Tooltip/styles.css +38 -0
  143. package/dist/components/feedback/shared.css +22 -0
  144. package/dist/components/feedback/shared.d.ts +231 -0
  145. package/dist/components/forms/Form/Form.d.ts +35 -0
  146. package/dist/components/forms/Form/styles.css +1 -0
  147. package/dist/components/forms/FormFields/FormFields.d.ts +20 -0
  148. package/dist/components/forms/FormFields/styles.css +72 -0
  149. package/dist/components/foundation/Loader/Loader.d.ts +30 -0
  150. package/dist/components/foundation/LoaderGenerator/LoaderGenerator.d.ts +38 -0
  151. package/dist/components/foundation/LoaderGenerator/styles.css +104 -0
  152. package/dist/components/foundation/ThemeEditor/ThemeEditor.d.ts +15 -0
  153. package/dist/components/foundation/ThemeEditor/styles.css +97 -0
  154. package/dist/components/foundation/ThemeEditor/themeConfig.d.ts +47 -0
  155. package/dist/components/foundation/ThemeProvider/ThemeProvider.d.ts +32 -0
  156. package/dist/components/foundation/ThemeProvider/styles.css +59 -0
  157. package/dist/components/foundation/Typography/Typography.d.ts +17 -0
  158. package/dist/components/foundation/Typography/styles.css +115 -0
  159. package/dist/components/layout/Avatar/Avatar.d.ts +2 -0
  160. package/dist/components/layout/Avatar/HostSeal.d.ts +5 -0
  161. package/dist/components/layout/Avatar/styles.css +166 -0
  162. package/dist/components/layout/BrandMark/BrandMark.d.ts +2 -0
  163. package/dist/components/layout/BrandMark/styles.css +39 -0
  164. package/dist/components/layout/ButtonGroup/ButtonGroup.d.ts +12 -0
  165. package/dist/components/layout/ButtonGroup/styles.css +36 -0
  166. package/dist/components/layout/Card/Card.d.ts +14 -0
  167. package/dist/components/layout/Card/styles.css +37 -0
  168. package/dist/components/layout/DialogActions/DialogActions.d.ts +12 -0
  169. package/dist/components/layout/DialogActions/styles.css +31 -0
  170. package/dist/components/layout/DialogBody/DialogBody.d.ts +12 -0
  171. package/dist/components/layout/DialogBody/styles.css +28 -0
  172. package/dist/components/layout/Divider/Divider.d.ts +2 -0
  173. package/dist/components/layout/Divider/styles.css +58 -0
  174. package/dist/components/layout/FloatingPanel/FloatingPanel.d.ts +15 -0
  175. package/dist/components/layout/FloatingPanel/styles.css +47 -0
  176. package/dist/components/layout/FloatingPanel/useFloatingPanel.d.ts +54 -0
  177. package/dist/components/layout/Grid/Grid.d.ts +24 -0
  178. package/dist/components/layout/Grid/styles.css +90 -0
  179. package/dist/components/layout/Header/Header.d.ts +2 -0
  180. package/dist/components/layout/Header/styles.css +42 -0
  181. package/dist/components/layout/Icon/Icon.d.ts +4 -0
  182. package/dist/components/layout/Icon/styles.css +62 -0
  183. package/dist/components/layout/Illustration/Illustration.d.ts +2 -0
  184. package/dist/components/layout/Illustration/styles.css +104 -0
  185. package/dist/components/layout/ScrollArea/ScrollArea.d.ts +2 -0
  186. package/dist/components/layout/ScrollArea/styles.css +61 -0
  187. package/dist/components/layout/Stack/Stack.d.ts +21 -0
  188. package/dist/components/layout/Stack/styles.css +53 -0
  189. package/dist/components/layout/StatTile/StatTile.d.ts +20 -0
  190. package/dist/components/layout/StatTile/styles.css +90 -0
  191. package/dist/components/layout/TabPanel/TabPanel.d.ts +2 -0
  192. package/dist/components/layout/TabPanel/styles.css +16 -0
  193. package/dist/components/layout/Text/Text.d.ts +2 -0
  194. package/dist/components/layout/Text/styles.css +29 -0
  195. package/dist/components/layout/Toolbar/Toolbar.d.ts +12 -0
  196. package/dist/components/layout/Toolbar/styles.css +7 -0
  197. package/dist/components/layout/shared.css +79 -0
  198. package/dist/components/layout/shared.d.ts +64 -0
  199. package/dist/components/media/AudioPlayer/AudioPlayer.d.ts +2 -0
  200. package/dist/components/media/AudioPlayer/styles.css +86 -0
  201. package/dist/components/media/KaraokeLyrics/KaraokeLyrics.d.ts +25 -0
  202. package/dist/components/media/KaraokeLyrics/styles.css +56 -0
  203. package/dist/components/media/LevelMeter/LevelMeter.d.ts +7 -0
  204. package/dist/components/media/LevelMeter/styles.css +30 -0
  205. package/dist/components/media/MediaCard/MediaCard.d.ts +24 -0
  206. package/dist/components/media/MediaCard/styles.css +108 -0
  207. package/dist/components/media/MelodyRoll/MelodyRoll.d.ts +48 -0
  208. package/dist/components/media/MelodyRoll/styles.css +196 -0
  209. package/dist/components/media/PianoKeyboard/PianoKeyboard.d.ts +24 -0
  210. package/dist/components/media/PianoKeyboard/styles.css +83 -0
  211. package/dist/components/media/RotaryKnob/RotaryKnob.d.ts +3 -0
  212. package/dist/components/media/RotaryKnob/styles.css +319 -0
  213. package/dist/components/media/Sparkline/Sparkline.d.ts +2 -0
  214. package/dist/components/media/Sparkline/styles.css +70 -0
  215. package/dist/components/media/WaveDecoration/WaveDecoration.d.ts +2 -0
  216. package/dist/components/media/WaveDecoration/styles.css +2 -0
  217. package/dist/components/media/Waveform/Waveform.d.ts +9 -0
  218. package/dist/components/media/Waveform/styles.css +375 -0
  219. package/dist/components/media/Waveform/useWaveformPeaks.d.ts +11 -0
  220. package/dist/components/media/shared.css +7 -0
  221. package/dist/components/media/shared.d.ts +80 -0
  222. package/dist/components/navigation/Router/Router.d.ts +32 -0
  223. package/dist/components/navigation/Router/styles.css +1 -0
  224. package/dist/components.css +102 -0
  225. package/dist/core/artwork.d.ts +17 -0
  226. package/dist/core/base.d.ts +65 -0
  227. package/dist/core/environment.d.ts +5 -0
  228. package/dist/core/i18n.d.ts +34 -0
  229. package/dist/core/messages.d.ts +1 -0
  230. package/dist/core/motion/hooks.d.ts +17 -0
  231. package/dist/core/motion-engine.d.ts +13 -0
  232. package/dist/core/noise.d.ts +20 -0
  233. package/dist/core/providers/context.d.ts +4 -0
  234. package/dist/core/responsive.d.ts +13 -0
  235. package/dist/core.d.ts +8 -0
  236. package/dist/core.js +56 -0
  237. package/dist/editor.d.ts +2 -0
  238. package/dist/editor.js +8 -0
  239. package/dist/fonts/melodix/Melodix-100.woff2 +0 -0
  240. package/dist/fonts/melodix/Melodix-200.woff2 +0 -0
  241. package/dist/fonts/melodix/Melodix-300.woff2 +0 -0
  242. package/dist/fonts/melodix/Melodix-400.woff2 +0 -0
  243. package/dist/fonts/melodix/Melodix-500.woff2 +0 -0
  244. package/dist/fonts/melodix/Melodix-600.woff2 +0 -0
  245. package/dist/fonts/melodix/Melodix-700.woff2 +0 -0
  246. package/dist/fonts/melodix/Melodix-800.woff2 +0 -0
  247. package/dist/fonts/melodix/Melodix-900.woff2 +0 -0
  248. package/dist/fonts/melodix/MelodixText-100.woff2 +0 -0
  249. package/dist/fonts/melodix/MelodixText-200.woff2 +0 -0
  250. package/dist/fonts/melodix/MelodixText-300.woff2 +0 -0
  251. package/dist/fonts/melodix/MelodixText-400.woff2 +0 -0
  252. package/dist/fonts/melodix/MelodixText-500.woff2 +0 -0
  253. package/dist/fonts/melodix/MelodixText-600.woff2 +0 -0
  254. package/dist/fonts/melodix/MelodixText-700.woff2 +0 -0
  255. package/dist/fonts/melodix/MelodixText-800.woff2 +0 -0
  256. package/dist/fonts/melodix/MelodixText-900.woff2 +0 -0
  257. package/dist/fonts/melodix/OFL-PlayfairDisplay.txt +93 -0
  258. package/dist/fonts/melodix.css +123 -0
  259. package/dist/forms.d.ts +4 -0
  260. package/dist/forms.js +17 -0
  261. package/dist/index.d.ts +163 -0
  262. package/dist/index.js +9683 -0
  263. package/dist/router.d.ts +2 -0
  264. package/dist/router.js +11 -0
  265. package/dist/styles.css +2 -0
  266. package/dist/theme/base.css +221 -0
  267. package/dist/theme/tokens.css +196 -0
  268. package/dist/theme/typography.d.ts +24 -0
  269. package/dist/tokens.css +1 -0
  270. package/package.json +83 -4
@@ -0,0 +1,51 @@
1
+ /* Styles owned by KeyValueList: rows slide in one by one and highlight on hover. */
2
+ .ad-key-value-list {
3
+ display: grid;
4
+ gap: 0.125rem;
5
+ margin: 0;
6
+ font-size: 0.8125rem;
7
+ }
8
+ .ad-key-value-list > div {
9
+ display: grid;
10
+ min-width: 0;
11
+ /* Neither column may push the list wider than its container. */
12
+ grid-template-columns: minmax(min(7.5rem, 40%), 1fr) minmax(0, 1.2fr);
13
+ align-items: center;
14
+ gap: 1.125rem;
15
+ padding: 0.45rem 0.6rem;
16
+ border-radius: 0.5rem;
17
+ transition: background 0.25s;
18
+ animation: ad-kv-row 0.5s cubic-bezier(0.2, 0.8, 0.2, 1) both;
19
+ }
20
+ .ad-key-value-list > div:nth-child(2) {
21
+ animation-delay: 0.07s;
22
+ }
23
+ .ad-key-value-list > div:nth-child(3) {
24
+ animation-delay: 0.14s;
25
+ }
26
+ .ad-key-value-list > div:nth-child(n + 4) {
27
+ animation-delay: 0.21s;
28
+ }
29
+ .ad-key-value-list > div:hover {
30
+ background: #ffffff08;
31
+ }
32
+ .ad-key-value-list dt {
33
+ min-width: 0;
34
+ overflow-wrap: anywhere;
35
+ color: var(--ad-muted);
36
+ transition: color 0.25s;
37
+ }
38
+ .ad-key-value-list > div:hover dt {
39
+ color: var(--ad-pink);
40
+ }
41
+ .ad-key-value-list dd {
42
+ min-width: 0;
43
+ margin: 0;
44
+ overflow-wrap: anywhere;
45
+ }
46
+ @keyframes ad-kv-row {
47
+ from {
48
+ opacity: 0;
49
+ transform: translateX(-0.6rem);
50
+ }
51
+ }
@@ -0,0 +1,2 @@
1
+ import type { MenuProps } from "../shared";
2
+ export declare const Menu: (p: MenuProps) => import("react").JSX.Element;
@@ -0,0 +1,123 @@
1
+ /* Premium floating action menu. */
2
+ .ad.ad-menu {
3
+ --ad-menu-radius: 1.08rem;
4
+ --ad-menu-caret-size: 0.72rem;
5
+ position: fixed;
6
+ inset: auto;
7
+ min-inline-size: min(clamp(16rem, 24vw, 21rem), var(--ad-popover-available-width, calc(100vw - 1.25rem)));
8
+ max-inline-size: min(26rem, var(--ad-popover-available-width, calc(100vw - 1.25rem)));
9
+ padding: 0.62rem;
10
+ border: 0.0625rem solid transparent;
11
+ border-radius: var(--ad-menu-radius);
12
+ color: var(--ad-text);
13
+ overflow: visible;
14
+ isolation: isolate;
15
+ backdrop-filter: blur(1.35rem) saturate(1.18);
16
+ background:
17
+ radial-gradient(
18
+ 120% 92% at 50% -12%,
19
+ rgb(from var(--ad-primary-600) r g b / 0.23) 0%,
20
+ rgb(from var(--ad-primary-800) r g b / 0.16) 25%,
21
+ transparent 57%
22
+ )
23
+ padding-box,
24
+ radial-gradient(90% 120% at 0 100%, rgb(from var(--ad-primary-800) r g b / 0.13) 0%, transparent 65%)
25
+ padding-box,
26
+ linear-gradient(145deg, rgb(from var(--ad-neutral-850) r g b / 0.93), rgb(from var(--ad-neutral-900) r g b / 0.94) 56%, rgb(from var(--ad-neutral-850) r g b / 0.93)) padding-box,
27
+ linear-gradient(
28
+ 140deg,
29
+ rgb(from var(--ad-secondary-200) r g b / 0.72) 0%,
30
+ rgb(from var(--ad-primary) r g b / 0.55) 14%,
31
+ rgb(from var(--ad-primary-700) r g b / 0.34) 40%,
32
+ rgb(from var(--ad-secondary) r g b / 0.63) 76%,
33
+ rgb(from var(--ad-primary-700) r g b / 0.34) 100%
34
+ )
35
+ border-box;
36
+ box-shadow:
37
+ inset 0 0.0625rem 0.125rem rgb(from var(--ad-neutral-200) r g b / 0.29),
38
+ inset 0 0 1.2rem rgb(from var(--ad-primary) r g b / 0.1),
39
+ 0 0.9rem 2.8rem #000c,
40
+ 0 0 1.35rem rgb(from var(--ad-primary) r g b / 0.23),
41
+ 0 0 3rem rgb(from var(--ad-primary) r g b / 0.09);
42
+ transform-origin: var(--ad-popover-anchor-x, 50%) top;
43
+ animation: ad-menu-enter 0.19s cubic-bezier(0.18, 0.82, 0.28, 1) both;
44
+ }
45
+ .ad.ad-menu::after {
46
+ content: "";
47
+ position: absolute;
48
+ inset: 0.18rem;
49
+ border-radius: calc(var(--ad-menu-radius) - 0.18rem);
50
+ border: 0.0625rem solid #ffffff09;
51
+ box-shadow: inset 0 0.0625rem 0.1rem #ffffff18;
52
+ pointer-events: none;
53
+ z-index: 4;
54
+ }
55
+ .ad.ad-menu::before {
56
+ content: "";
57
+ position: absolute;
58
+ z-index: -1;
59
+ inline-size: var(--ad-menu-caret-size);
60
+ block-size: var(--ad-menu-caret-size);
61
+ left: clamp(
62
+ 1.3rem,
63
+ calc(var(--ad-popover-anchor-x, 50%) - var(--ad-menu-caret-size) / 2),
64
+ calc(100% - 2rem)
65
+ );
66
+ top: calc(var(--ad-menu-caret-size) * -0.49);
67
+ transform: rotate(45deg);
68
+ border-left: 0.0625rem solid rgb(from var(--ad-secondary) r g b / 0.56);
69
+ border-top: 0.0625rem solid rgb(from var(--ad-secondary-200) r g b / 0.69);
70
+ border-radius: 0.15rem 0 0 0;
71
+ background: linear-gradient(135deg, var(--ad-primary-800), var(--ad-neutral-850) 66%);
72
+ box-shadow: -0.18rem -0.18rem 0.65rem rgb(from var(--ad-primary) r g b / 0.23);
73
+ }
74
+ .ad.ad-menu[data-ad-side="above"] {
75
+ transform-origin: var(--ad-popover-anchor-x, 50%) bottom;
76
+ animation-name: ad-menu-enter-above;
77
+ }
78
+ .ad.ad-menu[data-ad-side="above"]::before {
79
+ top: auto;
80
+ bottom: calc(var(--ad-menu-caret-size) * -0.49);
81
+ transform: rotate(225deg);
82
+ }
83
+ .ad-menu > .ad-divider {
84
+ margin: 0.16rem 0.72rem;
85
+ inline-size: auto;
86
+ background: linear-gradient(
87
+ 90deg,
88
+ transparent,
89
+ rgb(from var(--ad-primary) r g b / 0.17) 14%,
90
+ rgb(from var(--ad-secondary) r g b / 0.23) 50%,
91
+ rgb(from var(--ad-primary) r g b / 0.17) 86%,
92
+ transparent
93
+ );
94
+ }
95
+ @keyframes ad-menu-enter {
96
+ from {
97
+ opacity: 0;
98
+ transform: translateY(-0.38rem) scale(0.975);
99
+ filter: blur(0.08rem);
100
+ }
101
+ to {
102
+ opacity: 1;
103
+ transform: translateY(0) scale(1);
104
+ filter: blur(0);
105
+ }
106
+ }
107
+ @keyframes ad-menu-enter-above {
108
+ from {
109
+ opacity: 0;
110
+ transform: translateY(0.38rem) scale(0.975);
111
+ filter: blur(0.08rem);
112
+ }
113
+ to {
114
+ opacity: 1;
115
+ transform: translateY(0) scale(1);
116
+ filter: blur(0);
117
+ }
118
+ }
119
+ @media (prefers-reduced-motion: reduce) {
120
+ .ad.ad-menu {
121
+ animation: none;
122
+ }
123
+ }
@@ -0,0 +1,2 @@
1
+ import type { MenuItemProps } from "../shared";
2
+ export declare const MenuItem: (p: MenuItemProps) => import("react").JSX.Element;
@@ -0,0 +1,71 @@
1
+ /* Menu row: plain icon and label, a soft highlight on hover or keyboard focus. */
2
+ .ad-menu-item {
3
+ --ad-menu-item-tone: var(--ad-neutral-200);
4
+ appearance: none;
5
+ inline-size: 100%;
6
+ min-inline-size: 0;
7
+ min-block-size: 2.5rem;
8
+ display: grid;
9
+ grid-template-columns: auto minmax(0, 1fr) auto;
10
+ align-items: center;
11
+ gap: 0.7rem;
12
+ padding: 0.4rem 0.7rem;
13
+ border: 0;
14
+ border-radius: calc(var(--ad-radius) * 0.65);
15
+ background: transparent;
16
+ color: var(--ad-menu-item-tone);
17
+ text-align: left;
18
+ font-family: inherit;
19
+ font-size: var(--ad-font-size-body-sm);
20
+ font-weight: 600;
21
+ line-height: 1.2;
22
+ cursor: pointer;
23
+ transition:
24
+ background 0.14s,
25
+ color 0.14s;
26
+ }
27
+ .ad-menu-item:hover:not(:disabled),
28
+ .ad-menu-item:focus-visible {
29
+ outline: 0;
30
+ background: #ffffff10;
31
+ color: #fff;
32
+ }
33
+ .ad-menu-item:active:not(:disabled) {
34
+ background: #ffffff1a;
35
+ }
36
+ .ad-menu-item:disabled {
37
+ opacity: 0.38;
38
+ cursor: not-allowed;
39
+ }
40
+ .ad-menu-item-icon,
41
+ .ad-menu-item-end {
42
+ display: grid;
43
+ place-items: center;
44
+ color: var(--ad-neutral-400);
45
+ }
46
+ .ad-menu-item-icon > .ad-icon {
47
+ --ad-icon-size: 1.15rem;
48
+ }
49
+ .ad-menu-item:hover:not(:disabled) .ad-menu-item-icon {
50
+ color: var(--ad-pink);
51
+ }
52
+ .ad-menu-item-label {
53
+ min-inline-size: 0;
54
+ overflow: hidden;
55
+ text-overflow: ellipsis;
56
+ white-space: nowrap;
57
+ }
58
+ .ad-menu-item-end > .ad-icon {
59
+ --ad-icon-size: 1rem;
60
+ }
61
+ .ad-menu-item[data-ad-tone="error"] {
62
+ --ad-menu-item-tone: var(--ad-secondary);
63
+ }
64
+ .ad-menu-item[data-ad-tone="error"] .ad-menu-item-icon {
65
+ color: var(--ad-secondary);
66
+ }
67
+ .ad-menu-item[data-ad-tone="error"]:hover:not(:disabled),
68
+ .ad-menu-item[data-ad-tone="error"]:focus-visible {
69
+ background: rgb(from var(--ad-primary) r g b / 0.13);
70
+ color: var(--ad-secondary-200);
71
+ }
@@ -0,0 +1,2 @@
1
+ import type { MessageBarProps } from "../shared";
2
+ export declare const MessageBar: ({ action, tone, ...p }: MessageBarProps) => import("react").JSX.Element;
@@ -0,0 +1,116 @@
1
+ /* Styles owned by MessageBar: tone strip, glowing icon ring, a scan line on arrival. */
2
+ .ad-message-bar {
3
+ position: relative;
4
+ display: flex;
5
+ flex-wrap: wrap;
6
+ gap: 0.8rem;
7
+ align-items: center;
8
+ min-width: 0;
9
+ padding: 0.7rem 1rem 0.7rem 1.1rem;
10
+ font-size: var(--ad-font-size-body-sm);
11
+ line-height: 1.5;
12
+ color: var(--ad-neutral-200);
13
+ border: 0.0625rem solid color-mix(in srgb, var(--ad-tone) 35%, transparent);
14
+ border-radius: calc(var(--ad-radius) * 0.8);
15
+ background:
16
+ linear-gradient(
17
+ 90deg,
18
+ color-mix(in srgb, var(--ad-tone) 16%, transparent),
19
+ transparent 70%
20
+ ),
21
+ rgb(from var(--ad-neutral-900) r g b / 0.95);
22
+ overflow: hidden;
23
+ animation: ad-message-in 0.45s cubic-bezier(0.2, 0.9, 0.3, 1.15) both;
24
+ }
25
+ /* Tone strip on the leading edge. */
26
+ .ad-message-bar::before {
27
+ content: "";
28
+ position: absolute;
29
+ left: 0;
30
+ top: 0.45rem;
31
+ bottom: 0.45rem;
32
+ width: 0.1875rem;
33
+ border-radius: 0 999rem 999rem 0;
34
+ background: var(--ad-tone);
35
+ box-shadow: 0 0 0.75rem var(--ad-tone);
36
+ }
37
+ /* Scan line passing once when the message appears. */
38
+ .ad-message-bar::after {
39
+ content: "";
40
+ position: absolute;
41
+ inset: 0;
42
+ background: linear-gradient(
43
+ 100deg,
44
+ transparent 30%,
45
+ color-mix(in srgb, var(--ad-tone) 30%, transparent) 50%,
46
+ transparent 70%
47
+ );
48
+ translate: -100% 0;
49
+ animation: ad-message-scan 1.1s 0.15s ease-out both;
50
+ pointer-events: none;
51
+ }
52
+ .ad-message-bar-icon {
53
+ display: grid;
54
+ place-items: center;
55
+ flex: none;
56
+ width: 2rem;
57
+ height: 2rem;
58
+ border-radius: 50%;
59
+ color: var(--ad-tone);
60
+ background: color-mix(in srgb, var(--ad-tone) 14%, var(--ad-neutral-900));
61
+ box-shadow:
62
+ inset 0 0 0 0.0625rem color-mix(in srgb, var(--ad-tone) 50%, transparent),
63
+ 0 0 0.75rem color-mix(in srgb, var(--ad-tone) 30%, transparent);
64
+ }
65
+ .ad-message-bar-icon > .ad-icon {
66
+ --ad-icon-size: 1.1rem;
67
+ }
68
+ .ad-message-bar-icon {
69
+ position: relative;
70
+ }
71
+ .ad-message-bar:is([data-ad-tone="error"], [data-ad-tone="warning"]) .ad-message-bar-icon::after {
72
+ content: "";
73
+ position: absolute;
74
+ inset: 0;
75
+ border-radius: 50%;
76
+ box-shadow: inset 0 0 0 0.0625rem var(--ad-tone), 0 0 1.1rem color-mix(in srgb, var(--ad-tone) 55%, transparent);
77
+ opacity: 0;
78
+ animation: ad-message-alert 2s ease-in-out infinite;
79
+ }
80
+ .ad-message-bar-text {
81
+ flex: 1 1 12ch;
82
+ min-width: 0;
83
+ overflow-wrap: anywhere;
84
+ }
85
+ .ad-message-bar-action {
86
+ flex: 0 1 auto;
87
+ max-width: 100%;
88
+ margin-inline-start: auto;
89
+ overflow-wrap: anywhere;
90
+ }
91
+ .ad-message-bar-action .ad-button {
92
+ max-width: 100%;
93
+ height: auto;
94
+ min-height: var(--ad-size-h);
95
+ padding-block: 0.5em;
96
+ white-space: normal;
97
+ }
98
+ .ad-message-bar-action .ad-button-label {
99
+ white-space: normal;
100
+ }
101
+ @keyframes ad-message-in {
102
+ from {
103
+ opacity: 0;
104
+ transform: translateY(-0.4rem);
105
+ }
106
+ }
107
+ @keyframes ad-message-scan {
108
+ to {
109
+ translate: 100% 0;
110
+ }
111
+ }
112
+ @keyframes ad-message-alert {
113
+ 50% {
114
+ opacity: 1;
115
+ }
116
+ }
@@ -0,0 +1,2 @@
1
+ import { type PopoverProps } from "../shared";
2
+ export declare const Popover: (p: PopoverProps) => import("react").JSX.Element | null;
@@ -0,0 +1,44 @@
1
+ /* Styles owned by Popover: unfolds from its anchor side, rows arrive in a quick cascade. */
2
+ .ad-popover {
3
+ min-width: min(14.6875rem, var(--ad-popover-available-width, calc(100vw - 1rem)));
4
+ max-width: min(21.875rem, var(--ad-popover-available-width, calc(100vw - 1rem)));
5
+ max-height: var(--ad-popover-available-height, calc(100dvh - 1rem));
6
+ overflow: auto;
7
+ overflow-wrap: anywhere;
8
+ transform-origin: var(--ad-popover-anchor-x, 50%) top;
9
+ animation: ad-popover-in 0.22s cubic-bezier(0.2, 0.9, 0.3, 1.2) both;
10
+ }
11
+ .ad-popover[data-ad-side="above"] {
12
+ transform-origin: var(--ad-popover-anchor-x, 50%) bottom;
13
+ }
14
+ :is(.ad-option-list, .ad-menu) > :is(.ad-option, .ad-menu-item) {
15
+ animation: ad-row-in 0.28s cubic-bezier(0.2, 0.8, 0.2, 1) both;
16
+ }
17
+ :is(.ad-option-list, .ad-menu) > :nth-child(2) {
18
+ animation-delay: 0.03s;
19
+ }
20
+ :is(.ad-option-list, .ad-menu) > :nth-child(3) {
21
+ animation-delay: 0.06s;
22
+ }
23
+ :is(.ad-option-list, .ad-menu) > :nth-child(4) {
24
+ animation-delay: 0.09s;
25
+ }
26
+ :is(.ad-option-list, .ad-menu) > :nth-child(5) {
27
+ animation-delay: 0.12s;
28
+ }
29
+ :is(.ad-option-list, .ad-menu) > :nth-child(n + 6) {
30
+ animation-delay: 0.15s;
31
+ }
32
+ @keyframes ad-popover-in {
33
+ from {
34
+ opacity: 0;
35
+ transform: translateY(-0.35rem) scale(0.96);
36
+ filter: blur(0.25rem);
37
+ }
38
+ }
39
+ @keyframes ad-row-in {
40
+ from {
41
+ opacity: 0;
42
+ transform: translateX(-0.4rem);
43
+ }
44
+ }
@@ -0,0 +1,2 @@
1
+ import { type ProgressBarProps } from "../shared";
2
+ export declare const ProgressBar: (p: ProgressBarProps) => import("react").JSX.Element;
@@ -0,0 +1,76 @@
1
+ /* Styles owned by ProgressBar: the fill glides to its value with a glint running through it. */
2
+ .ad-progress-bar {
3
+ height: 0.5625rem;
4
+ border: 0.0625rem solid var(--ad-primary-600);
5
+ border-radius: 0.5rem;
6
+ background: linear-gradient(var(--ad-neutral-900), var(--ad-neutral-900));
7
+ position: relative;
8
+ width: 100%;
9
+ overflow: hidden;
10
+ }
11
+ .ad-progress-bar > span {
12
+ position: absolute;
13
+ left: 0;
14
+ top: 0;
15
+ bottom: 0;
16
+ border-radius: inherit;
17
+ overflow: hidden;
18
+ background: linear-gradient(90deg, var(--ad-primary), var(--ad-secondary));
19
+ box-shadow:
20
+ inset 0 0.0625rem 0.0625rem rgb(from var(--ad-secondary-200) r g b / 0.47),
21
+ 0 0 0.6rem rgb(from var(--ad-primary) r g b / 0.33);
22
+ transition: width 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
23
+ }
24
+ /* The glint running through the fill. */
25
+ .ad-progress-bar > span::after {
26
+ content: "";
27
+ position: absolute;
28
+ inset: 0 auto 0 0;
29
+ width: 60%;
30
+ background: linear-gradient(100deg, transparent 30%, #ffffff66 50%, transparent 70%);
31
+ transform: translateX(-100%);
32
+ animation: ad-progress-glint 2.2s ease-in-out infinite;
33
+ }
34
+ .ad-progress-bar[data-indeterminate] > span {
35
+ animation: ad-progress-run 1.4s cubic-bezier(0.45, 0, 0.55, 1) infinite;
36
+ }
37
+ @keyframes ad-progress-glint {
38
+ to {
39
+ transform: translateX(270%);
40
+ }
41
+ }
42
+ @keyframes ad-progress-run {
43
+ from {
44
+ transform: translateX(-100%);
45
+ }
46
+ to {
47
+ transform: translateX(290%);
48
+ }
49
+ }
50
+ /* Wave variant: the bars light up from the left as the work advances. */
51
+ .ad-progress-bar[data-variant="wave"] {
52
+ height: 1.75rem;
53
+ border: 0;
54
+ background: none;
55
+ overflow: visible;
56
+ }
57
+ .ad-progress-bar[data-variant="wave"] > svg {
58
+ display: block;
59
+ width: 100%;
60
+ height: 100%;
61
+ }
62
+ .ad-progress-wave-idle {
63
+ fill: rgb(from var(--ad-neutral-200) r g b / 0.18);
64
+ }
65
+ .ad-progress-wave-done {
66
+ fill: var(--ad-primary);
67
+ filter: drop-shadow(0 0 0.2rem rgb(from var(--ad-primary) r g b / 0.7));
68
+ }
69
+ .ad-progress-bar[data-variant="wave"][data-indeterminate] .ad-progress-wave-done {
70
+ animation: ad-progress-wave-run 1.6s ease-in-out infinite;
71
+ }
72
+ @keyframes ad-progress-wave-run {
73
+ 50% {
74
+ opacity: 0.35;
75
+ }
76
+ }
@@ -0,0 +1,11 @@
1
+ import { type CommonProps } from "../../../core/base";
2
+ export interface SignalBarsProps extends CommonProps {
3
+ /** How many bars are lit, 0…`bars`. */
4
+ level?: number;
5
+ bars?: number;
6
+ /** A weak or broken link: the lit bars turn to the warning colour. */
7
+ weak?: boolean;
8
+ label?: string;
9
+ }
10
+ /** Signal strength as rising bars, like a phone's reception; the lit ones glow. */
11
+ export declare function SignalBars({ level, bars, weak, label, ...p }: SignalBarsProps): import("react").JSX.Element;
@@ -0,0 +1,31 @@
1
+ /* Styles owned by SignalBars: rising bars; lit ones glow, the top one breathes. */
2
+ .ad-signal-bars {
3
+ --ad-signal-tone: var(--ad-primary);
4
+ display: inline-flex;
5
+ align-items: flex-end;
6
+ gap: 0.18em;
7
+ width: 1.4em;
8
+ height: 1.4em;
9
+ }
10
+ .ad-signal-bars[data-weak] {
11
+ --ad-signal-tone: var(--ad-warning);
12
+ }
13
+ .ad-signal-bars > i {
14
+ flex: 1;
15
+ border-radius: 0.12em;
16
+ background: rgb(from var(--ad-neutral-200) r g b / 0.16);
17
+ transition: background 0.4s, box-shadow 0.4s;
18
+ }
19
+ .ad-signal-bars > i[data-lit] {
20
+ background: linear-gradient(var(--ad-secondary-100), var(--ad-signal-tone));
21
+ box-shadow: 0 0 0.45em rgb(from var(--ad-signal-tone) r g b / 0.55);
22
+ }
23
+ .ad-signal-bars > i[data-lit]:has(+ i:not([data-lit])),
24
+ .ad-signal-bars > i[data-lit]:last-child {
25
+ animation: ad-signal-breathe 2.4s ease-in-out infinite;
26
+ }
27
+ @keyframes ad-signal-breathe {
28
+ 50% {
29
+ opacity: 0.6;
30
+ }
31
+ }
@@ -0,0 +1,2 @@
1
+ import type { StatusIndicatorProps } from "../shared";
2
+ export declare const StatusIndicator: ({ status, ...p }: StatusIndicatorProps) => import("react").JSX.Element;
@@ -0,0 +1,88 @@
1
+ /* Styles owned by StatusIndicator: a live LED whose motion tells the state at a glance. */
2
+ .ad-status-indicator {
3
+ display: inline-flex;
4
+ align-items: center;
5
+ gap: 0.55rem;
6
+ font-size: var(--ad-font-size-body-sm);
7
+ min-width: 0;
8
+ color: var(--ad-neutral-300);
9
+ /* Short labels stay on one line; a long one wraps instead of pushing its container wider. */
10
+ overflow-wrap: anywhere;
11
+ }
12
+ .ad-status-dot {
13
+ position: relative;
14
+ display: grid;
15
+ place-items: center;
16
+ flex: none;
17
+ width: 1rem;
18
+ height: 1rem;
19
+ }
20
+ /* The LED itself. */
21
+ .ad-status-dot > i {
22
+ width: 0.5rem;
23
+ height: 0.5rem;
24
+ border-radius: 50%;
25
+ background: radial-gradient(circle at 35% 30%, #fff, var(--ad-tone) 55%);
26
+ box-shadow: 0 0 0.5rem var(--ad-tone);
27
+ }
28
+ /* Rings around it: radar for success, a spinning arc for processing. */
29
+ .ad-status-dot::before,
30
+ .ad-status-dot::after {
31
+ content: "";
32
+ position: absolute;
33
+ inset: 0;
34
+ border-radius: 50%;
35
+ }
36
+ [data-ad-tone="success"] > .ad-status-dot::before,
37
+ [data-ad-tone="success"] > .ad-status-dot::after {
38
+ border: 0.0625rem solid var(--ad-tone);
39
+ animation: ad-status-radar 2.4s ease-out infinite;
40
+ }
41
+ [data-ad-tone="success"] > .ad-status-dot::after {
42
+ animation-delay: 1.2s;
43
+ }
44
+ [data-ad-tone="processing"] > .ad-status-dot::before {
45
+ inset: -0.125rem;
46
+ background: conic-gradient(from 0deg, transparent 0 55%, var(--ad-tone));
47
+ mask: radial-gradient(closest-side, transparent 72%, #000 75%);
48
+ animation: ad-status-spin 0.9s linear infinite;
49
+ }
50
+ :is([data-ad-tone="error"], [data-ad-tone="warning"]) > .ad-status-dot > i {
51
+ animation: ad-status-blink 1.1s steps(2, jump-none) infinite;
52
+ }
53
+ [data-ad-tone="pending"] > .ad-status-dot > i {
54
+ animation: ad-status-breathe 2.4s ease-in-out infinite;
55
+ }
56
+ [data-ad-tone="offline"] > .ad-status-dot > i {
57
+ background: var(--ad-neutral-600);
58
+ box-shadow: none;
59
+ }
60
+ .ad-status-indicator[data-ad-tone="offline"] {
61
+ color: var(--ad-muted);
62
+ }
63
+ @keyframes ad-status-radar {
64
+ from {
65
+ opacity: 0.9;
66
+ scale: 0.4;
67
+ }
68
+ to {
69
+ opacity: 0;
70
+ scale: 1.8;
71
+ }
72
+ }
73
+ @keyframes ad-status-spin {
74
+ to {
75
+ rotate: 1turn;
76
+ }
77
+ }
78
+ @keyframes ad-status-blink {
79
+ 50% {
80
+ opacity: 0.3;
81
+ }
82
+ }
83
+ @keyframes ad-status-breathe {
84
+ 50% {
85
+ scale: 0.7;
86
+ opacity: 0.55;
87
+ }
88
+ }
@@ -0,0 +1,2 @@
1
+ import { type StepsProps } from "../shared";
2
+ export declare const Steps: (p: StepsProps) => import("react").JSX.Element;