@neo-ui-kit/react 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 (270) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +203 -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,166 @@
1
+ /* Styles owned by Avatar: a slowly turning neon ring; it speeds up and the face lifts on hover. */
2
+ .ad-avatar {
3
+ --ad-avatar: 3rem;
4
+ position: relative;
5
+ isolation: isolate;
6
+ width: var(--ad-avatar);
7
+ height: var(--ad-avatar);
8
+ display: grid;
9
+ place-items: center;
10
+ flex: none;
11
+ border-radius: 50%;
12
+ font-size: calc(var(--ad-avatar) * 0.42);
13
+ font-weight: 700;
14
+ color: #fff;
15
+ text-shadow: 0 0 0.5em var(--ad-primary);
16
+ background:
17
+ radial-gradient(circle at 35% 25%, #ffffff22, transparent 55%),
18
+ linear-gradient(160deg, var(--ad-primary-800), var(--ad-primary-900));
19
+ transition:
20
+ transform 0.4s cubic-bezier(0.34, 1.56, 0.5, 1),
21
+ box-shadow 0.4s,
22
+ filter 0.4s;
23
+ }
24
+ .ad-avatar[data-ad-size="xs"] {
25
+ --ad-avatar: 1.75rem;
26
+ }
27
+ .ad-avatar[data-ad-size="sm"] {
28
+ --ad-avatar: 2.25rem;
29
+ }
30
+ .ad-avatar[data-ad-size="lg"] {
31
+ --ad-avatar: 4rem;
32
+ }
33
+ /* Turning ring of light around the face. */
34
+ .ad-avatar::before {
35
+ content: "";
36
+ position: absolute;
37
+ z-index: -1;
38
+ inset: -0.125rem;
39
+ border-radius: 50%;
40
+ background: conic-gradient(
41
+ from 0deg,
42
+ var(--ad-primary),
43
+ var(--ad-secondary-100),
44
+ var(--ad-primary),
45
+ rgb(from var(--ad-primary) r g b / 0) 60%,
46
+ var(--ad-primary)
47
+ );
48
+ mask: radial-gradient(
49
+ closest-side,
50
+ transparent calc(100% - 0.125rem),
51
+ #000 calc(100% - 0.1rem)
52
+ );
53
+ animation: ad-avatar-ring 6s linear infinite;
54
+ }
55
+ .ad-avatar:hover {
56
+ transform: translateY(-0.15rem) scale(1.06);
57
+ box-shadow: 0 0.6rem 1.2rem rgb(from var(--ad-primary) r g b / 0.27);
58
+ }
59
+ .ad-avatar:hover::before {
60
+ animation-duration: 1.6s;
61
+ }
62
+ @keyframes ad-avatar-ring {
63
+ to {
64
+ rotate: 1turn;
65
+ }
66
+ }
67
+ /* Host variant: the neon seal replaces the face and its ring; it lifts and glows brighter on hover. */
68
+ /* The seal carries a label, so it starts larger than the initials at every size. */
69
+ .ad-avatar[data-variant="host"] {
70
+ --ad-avatar: 5.5rem;
71
+ background: none;
72
+ text-shadow: none;
73
+ }
74
+ .ad-avatar[data-variant="host"][data-ad-size="xs"] {
75
+ --ad-avatar: 3rem;
76
+ }
77
+ .ad-avatar[data-variant="host"][data-ad-size="sm"] {
78
+ --ad-avatar: 4.25rem;
79
+ }
80
+ .ad-avatar[data-variant="host"][data-ad-size="lg"] {
81
+ --ad-avatar: 8rem;
82
+ }
83
+ .ad-avatar[data-variant="host"]::before {
84
+ content: none;
85
+ }
86
+ .ad-avatar[data-variant="host"]:hover {
87
+ box-shadow: none;
88
+ filter: brightness(1.18) drop-shadow(0 0 0.6rem rgb(from var(--ad-primary) r g b / 0.4));
89
+ }
90
+ .ad-host-seal {
91
+ position: relative;
92
+ display: block;
93
+ width: 100%;
94
+ height: 100%;
95
+ }
96
+ /* The seal is a stack of drawings in paint order: the static ones are painted once, and each
97
+ ring is a layer of its own that only turns (around the ring's centre, 65 of 128). */
98
+ .ad-host-seal > svg {
99
+ position: absolute;
100
+ inset: 0;
101
+ display: block;
102
+ width: 100%;
103
+ height: 100%;
104
+ overflow: visible;
105
+ }
106
+ .ad-host-seal > svg[data-host-spin] {
107
+ transform-origin: 50.78125% 50.78125%;
108
+ will-change: transform;
109
+ animation: ad-host-spin linear infinite;
110
+ }
111
+ @keyframes ad-host-spin {
112
+ to {
113
+ transform: rotate(1turn);
114
+ }
115
+ }
116
+ @media (prefers-reduced-motion: reduce) {
117
+ :root:not([data-ad-motion="on"]) .ad-host-seal > svg[data-host-spin] {
118
+ animation: none;
119
+ }
120
+ }
121
+ /* A photo fills the face; inside the host seal it takes the crown's place. */
122
+ .ad-avatar-photo {
123
+ width: 100%;
124
+ height: 100%;
125
+ border-radius: 50%;
126
+ object-fit: cover;
127
+ }
128
+ /* The tag sits on the ring's lower edge like a name plate. */
129
+ .ad-avatar-badge {
130
+ position: absolute;
131
+ bottom: -0.35em;
132
+ left: 50%;
133
+ translate: -50% 0;
134
+ padding: 0.15em 0.6em;
135
+ border: 0.0625rem solid rgb(from var(--ad-secondary) r g b / 0.6);
136
+ border-radius: 999px;
137
+ background: var(--ad-neutral-950);
138
+ color: var(--ad-secondary-100);
139
+ font-size: max(0.5625rem, calc(var(--ad-avatar) * 0.12));
140
+ font-weight: 700;
141
+ letter-spacing: 0.12em;
142
+ line-height: 1.3;
143
+ text-shadow: none;
144
+ text-transform: uppercase;
145
+ white-space: nowrap;
146
+ }
147
+ /* Presence: a lit dot on the lower right of the ring. */
148
+ .ad-avatar-presence {
149
+ position: absolute;
150
+ right: 4%;
151
+ bottom: 4%;
152
+ width: max(0.55rem, calc(var(--ad-avatar) * 0.24));
153
+ aspect-ratio: 1;
154
+ border: 0.125rem solid var(--ad-neutral-950);
155
+ border-radius: 50%;
156
+ background: var(--ad-success);
157
+ box-shadow: 0 0 0.4rem var(--ad-success);
158
+ }
159
+ .ad-avatar-presence[data-presence="busy"] {
160
+ background: var(--ad-primary);
161
+ box-shadow: 0 0 0.4rem var(--ad-primary);
162
+ }
163
+ .ad-avatar-presence[data-presence="offline"] {
164
+ background: var(--ad-neutral-600, #555);
165
+ box-shadow: none;
166
+ }
@@ -0,0 +1,2 @@
1
+ import { type CommonProps } from "../../../core/base";
2
+ export declare const BrandMark: (p: CommonProps) => import("react").JSX.Element;
@@ -0,0 +1,39 @@
1
+ /* Styles owned by BrandMark: the logo breathes in neon and its strokes shift from ruby to white. */
2
+ .ad-brand-mark {
3
+ position: relative;
4
+ display: inline-grid;
5
+ justify-items: center;
6
+ gap: 0.25rem;
7
+ max-width: 100%;
8
+ color: var(--ad-secondary);
9
+ }
10
+ .ad-brand-mark > svg {
11
+ width: min(15rem, 100%);
12
+ height: auto;
13
+ filter: hue-rotate(var(--ad-hue-shift, 0deg)) drop-shadow(0 0 0.6rem rgb(from var(--ad-primary) r g b / 0.45));
14
+ animation: ad-brand-breathe 4s ease-in-out infinite;
15
+ }
16
+ .ad-brand-mark > small {
17
+ display: block;
18
+ opacity: 0.8;
19
+ font-size: 0.5rem;
20
+ letter-spacing: 0.28rem;
21
+ color: var(--ad-secondary-200);
22
+ animation: ad-brand-spacing 4s ease-in-out infinite;
23
+ will-change: transform, opacity;
24
+ }
25
+ @keyframes ad-brand-breathe {
26
+ 0%,
27
+ 100% {
28
+ opacity: 0.82;
29
+ }
30
+ 50% {
31
+ opacity: 1;
32
+ }
33
+ }
34
+ @keyframes ad-brand-spacing {
35
+ 50% {
36
+ transform: scaleX(1.12);
37
+ opacity: 1;
38
+ }
39
+ }
@@ -0,0 +1,12 @@
1
+ export declare const ButtonGroup: {
2
+ (p: import("../../..").CommonProps): import("react").DetailedReactHTMLElement<{
3
+ id: string | undefined;
4
+ className: string;
5
+ style: import("../../..").TokenStyle | undefined;
6
+ "data-ad-component": string;
7
+ "data-ad-material": import("../../..").Material | undefined;
8
+ "data-ad-size": import("../../..").ControlSize | undefined;
9
+ "data-ad-tone": import("../../..").Tone | undefined;
10
+ }, HTMLElement>;
11
+ displayName: string;
12
+ };
@@ -0,0 +1,36 @@
1
+ /* ButtonGroup is a premium action tray: one shared surface with distinct full buttons. */
2
+ .ad-button-group {
3
+ display: inline-flex;
4
+ align-items: center;
5
+ gap: 0.42rem;
6
+ min-width: 0;
7
+ max-width: 100%;
8
+ padding: 0.4rem;
9
+ border: 0.0625rem solid transparent;
10
+ border-radius: calc(var(--ad-radius) + 0.32rem);
11
+ background:
12
+ linear-gradient(180deg, var(--ad-neutral-850), var(--ad-neutral-900) 70%, var(--ad-neutral-900)) padding-box,
13
+ linear-gradient(135deg, rgb(from var(--ad-secondary) r g b / 0.33), rgb(from var(--ad-primary-700) r g b / 0.21) 52%, rgb(from var(--ad-secondary) r g b / 0.17)) border-box;
14
+ box-shadow:
15
+ inset 0 0.075rem 0.15rem #ffffff20,
16
+ inset 0 -0.42rem 0.9rem #0008,
17
+ 0 0.38rem 0.9rem #0008,
18
+ 0 0 1rem rgb(from var(--ad-primary) r g b / 0.08);
19
+ isolation: isolate;
20
+ }
21
+ .ad-button-group > .ad {
22
+ flex: none;
23
+ margin: 0;
24
+ }
25
+ .ad-button-group > .ad-button {
26
+ min-inline-size: max-content;
27
+ }
28
+ .ad-button-group > .ad-icon-button,
29
+ .ad-button-group > .ad-toggle-button {
30
+ justify-self: center;
31
+ }
32
+ @media (max-width: 30rem) {
33
+ .ad-button-group {
34
+ flex-wrap: wrap;
35
+ }
36
+ }
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ import type { CardProps } from "../shared";
3
+ export declare const Card: ({ as, border, shell, padding, title, description, eyebrow, icon, actions, level, children, ...p }: CardProps) => React.DetailedReactHTMLElement<{
4
+ ref: React.RefObject<HTMLElement | null>;
5
+ "data-ad-padding": "sm" | "md" | "lg" | "none";
6
+ onPointerMove: (event: React.PointerEvent<HTMLElement>) => void;
7
+ id: string | undefined;
8
+ className: string;
9
+ style: import("../../..").TokenStyle | undefined;
10
+ "data-ad-component": string;
11
+ "data-ad-material": import("../../..").Material | undefined;
12
+ "data-ad-size": import("../../..").ControlSize | undefined;
13
+ "data-ad-tone": import("../../..").Tone | undefined;
14
+ }, HTMLElement>;
@@ -0,0 +1,37 @@
1
+ .ad-card {
2
+ min-width: 0;
3
+ position: relative;
4
+ }
5
+ .ad-card[data-ad-padding="none"] {
6
+ padding: 0;
7
+ }
8
+ .ad-card[data-ad-padding="sm"] {
9
+ padding: var(--ad-space-2);
10
+ }
11
+ .ad-card[data-ad-padding="md"] {
12
+ padding: var(--ad-space-4);
13
+ }
14
+ .ad-card[data-ad-padding="lg"] {
15
+ padding: var(--ad-space-6);
16
+ }
17
+ .ad-card > .ad-header {
18
+ margin-bottom: var(--ad-space-3);
19
+ }
20
+ /* Pointer spotlight: a soft ruby light under the cursor, faded in on hover. */
21
+ .ad-card::after {
22
+ content: "";
23
+ position: absolute;
24
+ inset: 0;
25
+ border-radius: inherit;
26
+ background: radial-gradient(
27
+ 22rem circle at var(--ad-spot-x, 50%) var(--ad-spot-y, 0%),
28
+ rgb(from var(--ad-primary) r g b / 0.08),
29
+ transparent 60%
30
+ );
31
+ opacity: 0;
32
+ transition: opacity 0.35s;
33
+ pointer-events: none;
34
+ }
35
+ .ad-card:hover::after {
36
+ opacity: 1;
37
+ }
@@ -0,0 +1,12 @@
1
+ export declare const DialogActions: {
2
+ (p: import("../../..").CommonProps): import("react").DetailedReactHTMLElement<{
3
+ id: string | undefined;
4
+ className: string;
5
+ style: import("../../..").TokenStyle | undefined;
6
+ "data-ad-component": string;
7
+ "data-ad-material": import("../../..").Material | undefined;
8
+ "data-ad-size": import("../../..").ControlSize | undefined;
9
+ "data-ad-tone": import("../../..").Tone | undefined;
10
+ }, HTMLElement>;
11
+ displayName: string;
12
+ };
@@ -0,0 +1,31 @@
1
+ /* Styles owned by DialogActions. */
2
+ .ad-dialog-actions {
3
+ display: flex;
4
+ flex-wrap: wrap;
5
+ justify-content: flex-end;
6
+ gap: 0.625rem;
7
+ align-items: center;
8
+ }
9
+ .ad-dialog-actions > .ad-button {
10
+ height: auto;
11
+ min-height: var(--ad-size-h);
12
+ padding-block: 0.6rem;
13
+ }
14
+ .ad-dialog-actions .ad-button-label {
15
+ white-space: normal;
16
+ overflow-wrap: anywhere;
17
+ }
18
+ /* Actions arrive last, one after another. */
19
+ .ad-dialog[open] .ad-dialog-actions > * {
20
+ animation: ad-dialog-action 0.45s cubic-bezier(0.34, 1.4, 0.5, 1) both;
21
+ animation-delay: 0.22s;
22
+ }
23
+ .ad-dialog[open] .ad-dialog-actions > :nth-child(2) {
24
+ animation-delay: 0.3s;
25
+ }
26
+ @keyframes ad-dialog-action {
27
+ from {
28
+ opacity: 0;
29
+ transform: translateY(0.6rem) scale(0.95);
30
+ }
31
+ }
@@ -0,0 +1,12 @@
1
+ export declare const DialogBody: {
2
+ (p: import("../../..").CommonProps): import("react").DetailedReactHTMLElement<{
3
+ id: string | undefined;
4
+ className: string;
5
+ style: import("../../..").TokenStyle | undefined;
6
+ "data-ad-component": string;
7
+ "data-ad-material": import("../../..").Material | undefined;
8
+ "data-ad-size": import("../../..").ControlSize | undefined;
9
+ "data-ad-tone": import("../../..").Tone | undefined;
10
+ }, HTMLElement>;
11
+ displayName: string;
12
+ };
@@ -0,0 +1,28 @@
1
+ /* Styles owned by DialogBody. */
2
+ .ad-dialog-body {
3
+ min-height: 0;
4
+ max-height: calc(100dvh - 10rem);
5
+ overflow-y: auto;
6
+ overflow-x: clip;
7
+ overscroll-behavior: contain;
8
+ scrollbar-width: thin;
9
+ scrollbar-color: var(--ad-primary) transparent;
10
+ padding: 1.125rem 0;
11
+ padding-inline-end: var(--ad-space-2);
12
+ }
13
+ .ad-dialog-body p {
14
+ font-size: 0.875rem;
15
+ line-height: 1.65;
16
+ color: var(--ad-muted);
17
+ margin: 0 0 0.875rem;
18
+ }
19
+ /* Inside an opening dialog the body fades in right after the window. */
20
+ .ad-dialog[open] .ad-dialog-body {
21
+ animation: ad-dialog-part 0.45s 0.12s cubic-bezier(0.2, 0.8, 0.2, 1) both;
22
+ }
23
+ @keyframes ad-dialog-part {
24
+ from {
25
+ opacity: 0;
26
+ transform: translateY(0.5rem);
27
+ }
28
+ }
@@ -0,0 +1,2 @@
1
+ import { type DividerProps } from "../shared";
2
+ export declare const Divider: (p: DividerProps) => import("react").JSX.Element;
@@ -0,0 +1,58 @@
1
+ /* Styles owned by Divider. */
2
+ .ad-divider {
3
+ height: 0.0625rem;
4
+ width: 100%;
5
+ margin: 0.9375rem 0;
6
+ background: linear-gradient(
7
+ 90deg,
8
+ transparent,
9
+ rgb(from var(--ad-primary-600) r g b / 0.34) 15%,
10
+ rgb(from var(--ad-primary-600) r g b / 0.34) 85%,
11
+ transparent
12
+ );
13
+ }
14
+ .ad-divider[aria-orientation="vertical"] {
15
+ width: 0.0625rem;
16
+ height: 1.875rem;
17
+ margin: 0 0.5rem;
18
+ }
19
+ /* A pulse of light travels along the line now and then. */
20
+ .ad-divider {
21
+ position: relative;
22
+ overflow: hidden;
23
+ }
24
+ .ad-divider::after {
25
+ content: "";
26
+ position: absolute;
27
+ inset: 0 auto 0 0;
28
+ width: 40%;
29
+ background: linear-gradient(90deg, transparent, var(--ad-secondary-100), var(--ad-primary), transparent);
30
+ transform: translateX(-100%);
31
+ animation: ad-divider-pulse 6s ease-in-out infinite;
32
+ }
33
+ .ad-divider[aria-orientation="vertical"]::after {
34
+ inset: 0 0 auto;
35
+ width: auto;
36
+ height: 40%;
37
+ background: linear-gradient(180deg, transparent, var(--ad-secondary-100), var(--ad-primary), transparent);
38
+ transform: translateY(-100%);
39
+ animation-name: ad-divider-pulse-y;
40
+ }
41
+ @keyframes ad-divider-pulse {
42
+ 0%,
43
+ 55% {
44
+ transform: translateX(-100%);
45
+ }
46
+ 100% {
47
+ transform: translateX(250%);
48
+ }
49
+ }
50
+ @keyframes ad-divider-pulse-y {
51
+ 0%,
52
+ 55% {
53
+ transform: translateY(-100%);
54
+ }
55
+ 100% {
56
+ transform: translateY(250%);
57
+ }
58
+ }
@@ -0,0 +1,15 @@
1
+ import { type ReactNode } from "react";
2
+ import { type CommonProps } from "../../../core/base";
3
+ import { type FloatingPanelOptions } from "./useFloatingPanel";
4
+ export interface FloatingPanelProps extends CommonProps, FloatingPanelOptions {
5
+ /** Resize handles on every edge and corner while the panel is selected. */
6
+ resizable?: boolean;
7
+ label?: string;
8
+ children?: ReactNode;
9
+ }
10
+ /**
11
+ * A panel that floats over the page: drag it by its surface, select it with a click to resize it
12
+ * from any edge or corner. Focus the panel and use arrow keys to move; Shift+arrow resizes.
13
+ * Where it starts is up to its class; once moved, it keeps its place.
14
+ */
15
+ export declare const FloatingPanel: ({ layout: saved, onLayoutChange, defaultSize, limits, onDragOutside, ignore, resizable, label, children, ...p }: FloatingPanelProps) => import("react").JSX.Element;
@@ -0,0 +1,47 @@
1
+ /* Styles owned by FloatingPanel: grab to move; selected, it shows a glowing edge and resize zones. */
2
+ .ad-floating-panel {
3
+ position: fixed;
4
+ z-index: var(--ad-z-floating, 40);
5
+ touch-action: none;
6
+ cursor: grab;
7
+ border-radius: var(--ad-radius-lg, 1rem);
8
+ transition: box-shadow 0.25s;
9
+ }
10
+ .ad-floating-panel:active {
11
+ cursor: grabbing;
12
+ }
13
+ .ad-floating-panel[data-active] {
14
+ box-shadow:
15
+ 0 0 0 0.0625rem rgb(from var(--ad-primary) r g b / 0.55),
16
+ 0 0 1.5rem rgb(from var(--ad-primary) r g b / 0.25);
17
+ }
18
+ /* Invisible grab zones overlapping each edge and corner. */
19
+ .ad-floating-panel-handle {
20
+ position: absolute;
21
+ z-index: 5;
22
+ touch-action: none;
23
+ }
24
+ .ad-floating-panel-handle:is([data-edge="n"], [data-edge="s"]) {
25
+ left: 0.9rem;
26
+ right: 0.9rem;
27
+ height: 0.65rem;
28
+ cursor: ns-resize;
29
+ }
30
+ .ad-floating-panel-handle:is([data-edge="e"], [data-edge="w"]) {
31
+ top: 0.9rem;
32
+ bottom: 0.9rem;
33
+ width: 0.65rem;
34
+ cursor: ew-resize;
35
+ }
36
+ .ad-floating-panel-handle[data-edge="n"] { top: -0.3rem; }
37
+ .ad-floating-panel-handle[data-edge="s"] { bottom: -0.3rem; }
38
+ .ad-floating-panel-handle[data-edge="e"] { right: -0.3rem; }
39
+ .ad-floating-panel-handle[data-edge="w"] { left: -0.3rem; }
40
+ .ad-floating-panel-handle:is([data-edge="ne"], [data-edge="nw"], [data-edge="se"], [data-edge="sw"]) {
41
+ width: 1rem;
42
+ height: 1rem;
43
+ }
44
+ .ad-floating-panel-handle[data-edge="nw"] { top: -0.3rem; left: -0.3rem; cursor: nwse-resize; }
45
+ .ad-floating-panel-handle[data-edge="se"] { bottom: -0.3rem; right: -0.3rem; cursor: nwse-resize; }
46
+ .ad-floating-panel-handle[data-edge="ne"] { top: -0.3rem; right: -0.3rem; cursor: nesw-resize; }
47
+ .ad-floating-panel-handle[data-edge="sw"] { bottom: -0.3rem; left: -0.3rem; cursor: nesw-resize; }
@@ -0,0 +1,54 @@
1
+ import { type KeyboardEvent, type PointerEvent as ReactPointerEvent, type RefObject } from "react";
2
+ /** Where a floating panel sits, in window pixels. */
3
+ export interface PanelLayout {
4
+ left: number;
5
+ top: number;
6
+ width: number;
7
+ height: number;
8
+ }
9
+ /** A point on the screen, in screen pixels. */
10
+ export interface ScreenPoint {
11
+ screenX: number;
12
+ screenY: number;
13
+ }
14
+ /** Which edges a resize handle moves; a corner combines its two edges. */
15
+ export type ResizeEdge = "n" | "s" | "e" | "w" | "ne" | "nw" | "se" | "sw";
16
+ export declare const resizeEdges: readonly ResizeEdge[];
17
+ export interface FloatingPanelOptions {
18
+ /** The saved placement, or null for the panel's own default place. */
19
+ layout?: PanelLayout | null;
20
+ /** Called once a move or resize ends, with the new placement to keep. */
21
+ onLayoutChange?(layout: PanelLayout): void;
22
+ /** Size to start from before the panel can be measured (it has not been laid out yet). */
23
+ defaultSize?: {
24
+ width: number;
25
+ height: number;
26
+ };
27
+ /** Size limits while resizing. */
28
+ limits?: {
29
+ minWidth?: number;
30
+ minHeight?: number;
31
+ maxWidth?: number;
32
+ maxHeight?: number;
33
+ };
34
+ /** The panel was dragged out of the window (e.g. to become a window of its own). */
35
+ onDragOutside?(screenBounds: PanelLayout, pointer: ScreenPoint): void;
36
+ /** More elements that keep their own pointer gestures instead of moving the panel. */
37
+ ignore?: string;
38
+ }
39
+ export declare const panelControls = "button, a, input, select, textarea, [role=slider], [role=button], [role=switch], [role=listbox], [contenteditable=true], .ad-rotary-knob";
40
+ /**
41
+ * Click a panel to select it, drag it anywhere in the window, resize it from any edge or corner,
42
+ * drag it past the window's edge to hand it over. The placement stays on screen when the window
43
+ * shrinks; the caller keeps it (storage, preferences) through `onLayoutChange`.
44
+ */
45
+ export declare const useFloatingPanel: (frameRef: RefObject<HTMLElement | null>, options?: FloatingPanelOptions) => {
46
+ layout: PanelLayout | null;
47
+ active: boolean;
48
+ beginMove: (event: ReactPointerEvent<HTMLElement>) => void;
49
+ beginResize: (edge: ResizeEdge) => (event: ReactPointerEvent<HTMLElement>) => void;
50
+ handleMove: (event: ReactPointerEvent<HTMLElement>) => void;
51
+ handleUp: () => void;
52
+ handleCancel: () => void;
53
+ handleKeyDown: (event: KeyboardEvent<HTMLElement>, resizable?: boolean) => void;
54
+ };
@@ -0,0 +1,24 @@
1
+ import type { ElementType, HTMLAttributes } from "react";
2
+ import { type Breakpoint, type Responsive, type Spacing } from "../../../core/responsive";
3
+ export type GridBreakpoint = Breakpoint;
4
+ export type GridResponsive<T> = Responsive<T>;
5
+ export type GridSpacing = Spacing;
6
+ export type GridAlign = "start" | "center" | "end" | "stretch" | "baseline";
7
+ export type GridJustify = "start" | "center" | "end" | "stretch" | "between" | "around" | "evenly";
8
+ export interface GridProps extends Omit<HTMLAttributes<HTMLElement>, "color"> {
9
+ as?: ElementType;
10
+ columns?: GridResponsive<number | string>;
11
+ gap?: GridResponsive<GridSpacing>;
12
+ rowGap?: GridResponsive<GridSpacing>;
13
+ columnGap?: GridResponsive<GridSpacing>;
14
+ minChildWidth?: string;
15
+ dense?: boolean;
16
+ align?: GridResponsive<GridAlign>;
17
+ justify?: GridResponsive<GridJustify>;
18
+ span?: GridResponsive<number | "full">;
19
+ rowSpan?: GridResponsive<number>;
20
+ columnStart?: GridResponsive<number>;
21
+ rowStart?: GridResponsive<number>;
22
+ }
23
+ /** A Grid with placement props and no columns renders as a grid item, not a container. */
24
+ export declare function Grid({ as: Component, columns, gap, rowGap, columnGap, minChildWidth, dense, align, justify, span, rowSpan, columnStart, rowStart, className, style, ...props }: GridProps): import("react").JSX.Element;