@orioncactuscorp/ui 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 (454) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +273 -0
  3. package/dist/components/Accordion/Accordion.css +1 -0
  4. package/dist/components/Accordion/Accordion.js +320 -0
  5. package/dist/components/Accordion/Accordion.module.scss.js +31 -0
  6. package/dist/components/Accordion.d.ts +6 -0
  7. package/dist/components/Accordion.js +9 -0
  8. package/dist/components/ActionArea/ActionArea.css +1 -0
  9. package/dist/components/ActionArea/ActionArea.js +158 -0
  10. package/dist/components/ActionArea/ActionArea.module.scss.js +9 -0
  11. package/dist/components/ActionArea.d.ts +6 -0
  12. package/dist/components/ActionArea.js +6 -0
  13. package/dist/components/Alert/Alert.css +1 -0
  14. package/dist/components/Alert/Alert.js +293 -0
  15. package/dist/components/Alert/Alert.module.scss.js +21 -0
  16. package/dist/components/Alert.d.ts +6 -0
  17. package/dist/components/Alert.js +10 -0
  18. package/dist/components/Background/Background.css +1 -0
  19. package/dist/components/Background/Background.js +45 -0
  20. package/dist/components/Background/Background.module.scss.js +21 -0
  21. package/dist/components/Background.d.ts +6 -0
  22. package/dist/components/Background.js +4 -0
  23. package/dist/components/BackgroundIconButton/BackgroundIconButton.css +1 -0
  24. package/dist/components/BackgroundIconButton/BackgroundIconButton.js +61 -0
  25. package/dist/components/BackgroundIconButton/BackgroundIconButton.module.scss.js +13 -0
  26. package/dist/components/BackgroundIconButton.d.ts +6 -0
  27. package/dist/components/BackgroundIconButton.js +4 -0
  28. package/dist/components/Badge/Badge.css +1 -0
  29. package/dist/components/Badge/Badge.js +34 -0
  30. package/dist/components/Badge/Badge.module.scss.js +17 -0
  31. package/dist/components/Badge.d.ts +6 -0
  32. package/dist/components/Badge.js +4 -0
  33. package/dist/components/Button/Button.css +1 -0
  34. package/dist/components/Button/Button.js +151 -0
  35. package/dist/components/Button/Button.module.scss.js +29 -0
  36. package/dist/components/Button.d.ts +6 -0
  37. package/dist/components/Button.js +4 -0
  38. package/dist/components/Cell/Cell.css +1 -0
  39. package/dist/components/Cell/Cell.js +129 -0
  40. package/dist/components/Cell/Cell.module.scss.js +17 -0
  41. package/dist/components/Cell.d.ts +6 -0
  42. package/dist/components/Cell.js +5 -0
  43. package/dist/components/CheckMark/CheckMark.css +1 -0
  44. package/dist/components/CheckMark/CheckMark.js +44 -0
  45. package/dist/components/CheckMark/CheckMark.module.scss.js +7 -0
  46. package/dist/components/CheckMark.d.ts +6 -0
  47. package/dist/components/CheckMark.js +4 -0
  48. package/dist/components/Checkbox/Checkbox.css +1 -0
  49. package/dist/components/Checkbox/Checkbox.js +82 -0
  50. package/dist/components/Checkbox/Checkbox.module.scss.js +11 -0
  51. package/dist/components/Checkbox.d.ts +6 -0
  52. package/dist/components/Checkbox.js +4 -0
  53. package/dist/components/Divider/Divider.css +1 -0
  54. package/dist/components/Divider/Divider.js +41 -0
  55. package/dist/components/Divider/Divider.module.scss.js +17 -0
  56. package/dist/components/Divider.d.ts +6 -0
  57. package/dist/components/Divider.js +4 -0
  58. package/dist/components/Field/Field.css +1 -0
  59. package/dist/components/Field/Field.js +179 -0
  60. package/dist/components/Field/Field.module.scss.js +17 -0
  61. package/dist/components/Field/useFieldControlOverlayMetrics.js +44 -0
  62. package/dist/components/Field.d.ts +6 -0
  63. package/dist/components/Field.js +10 -0
  64. package/dist/components/Fieldset/Fieldset.css +1 -0
  65. package/dist/components/Fieldset/Fieldset.js +97 -0
  66. package/dist/components/Fieldset/Fieldset.module.scss.js +11 -0
  67. package/dist/components/Fieldset.d.ts +6 -0
  68. package/dist/components/Fieldset.js +8 -0
  69. package/dist/components/IconButton/IconButton.css +1 -0
  70. package/dist/components/IconButton/IconButton.js +49 -0
  71. package/dist/components/IconButton/IconButton.module.scss.js +11 -0
  72. package/dist/components/IconButton.d.ts +6 -0
  73. package/dist/components/IconButton.js +4 -0
  74. package/dist/components/Interaction/Interaction.css +1 -0
  75. package/dist/components/Interaction/Interaction.js +23 -0
  76. package/dist/components/Interaction/Interaction.module.scss.js +11 -0
  77. package/dist/components/Interaction.d.ts +6 -0
  78. package/dist/components/Interaction.js +4 -0
  79. package/dist/components/Loading/Loading.css +1 -0
  80. package/dist/components/Loading/Loading.js +47 -0
  81. package/dist/components/Loading/Loading.module.scss.js +21 -0
  82. package/dist/components/Loading.d.ts +6 -0
  83. package/dist/components/Loading.js +4 -0
  84. package/dist/components/Menu/Menu.css +1 -0
  85. package/dist/components/Menu/Menu.js +238 -0
  86. package/dist/components/Menu/Menu.module.scss.js +31 -0
  87. package/dist/components/Menu.d.ts +6 -0
  88. package/dist/components/Menu.js +9 -0
  89. package/dist/components/Modal/Modal.css +1 -0
  90. package/dist/components/Modal/Modal.js +628 -0
  91. package/dist/components/Modal/Modal.module.scss.js +48 -0
  92. package/dist/components/Modal/contexts.js +14 -0
  93. package/dist/components/Modal/modalScrollArbitration.js +134 -0
  94. package/dist/components/Modal/snapPoints.js +79 -0
  95. package/dist/components/Modal/useControllableState.js +17 -0
  96. package/dist/components/Modal/useElementSize.js +23 -0
  97. package/dist/components/Modal/useModalDrag.js +1498 -0
  98. package/dist/components/Modal/useModalPlacement.js +26 -0
  99. package/dist/components/Modal/useModalStackDepth.js +41 -0
  100. package/dist/components/Modal.d.ts +6 -0
  101. package/dist/components/Modal.js +11 -0
  102. package/dist/components/Radio/Radio.css +1 -0
  103. package/dist/components/Radio/Radio.js +68 -0
  104. package/dist/components/Radio/Radio.module.scss.js +11 -0
  105. package/dist/components/Radio.d.ts +6 -0
  106. package/dist/components/Radio.js +4 -0
  107. package/dist/components/ScrollArea/ScrollArea.css +1 -0
  108. package/dist/components/ScrollArea/ScrollArea.js +541 -0
  109. package/dist/components/ScrollArea/ScrollArea.module.scss.js +17 -0
  110. package/dist/components/ScrollArea/contexts.js +7 -0
  111. package/dist/components/ScrollArea.d.ts +6 -0
  112. package/dist/components/ScrollArea.js +8 -0
  113. package/dist/components/SectionHeader/SectionHeader.css +1 -0
  114. package/dist/components/SectionHeader/SectionHeader.js +48 -0
  115. package/dist/components/SectionHeader/SectionHeader.module.scss.js +7 -0
  116. package/dist/components/SectionHeader.d.ts +6 -0
  117. package/dist/components/SectionHeader.js +4 -0
  118. package/dist/components/Select/Select.css +1 -0
  119. package/dist/components/Select/Select.js +67 -0
  120. package/dist/components/Select/Select.module.scss.js +9 -0
  121. package/dist/components/Select/SelectContent.css +1 -0
  122. package/dist/components/Select/SelectContent.js +26 -0
  123. package/dist/components/Select/SelectContent.module.scss.js +15 -0
  124. package/dist/components/Select.d.ts +6 -0
  125. package/dist/components/Select.js +6 -0
  126. package/dist/components/SvgIcon.d.ts +6 -0
  127. package/dist/components/SvgIcon.js +4 -0
  128. package/dist/components/Switch/Switch.css +1 -0
  129. package/dist/components/Switch/Switch.js +46 -0
  130. package/dist/components/Switch/Switch.module.scss.js +8 -0
  131. package/dist/components/Switch.d.ts +6 -0
  132. package/dist/components/Switch.js +4 -0
  133. package/dist/components/TextArea/TextArea.css +1 -0
  134. package/dist/components/TextArea/TextArea.js +105 -0
  135. package/dist/components/TextArea/TextArea.module.scss.js +9 -0
  136. package/dist/components/TextArea/TextAreaContent.css +1 -0
  137. package/dist/components/TextArea/TextAreaContent.js +26 -0
  138. package/dist/components/TextArea/TextAreaContent.module.scss.js +15 -0
  139. package/dist/components/TextArea.d.ts +6 -0
  140. package/dist/components/TextArea.js +6 -0
  141. package/dist/components/TextButton/TextButton.css +1 -0
  142. package/dist/components/TextButton/TextButton.js +74 -0
  143. package/dist/components/TextButton/TextButton.module.scss.js +15 -0
  144. package/dist/components/TextButton.d.ts +6 -0
  145. package/dist/components/TextButton.js +4 -0
  146. package/dist/components/TextInput/TextInput.css +1 -0
  147. package/dist/components/TextInput/TextInput.js +69 -0
  148. package/dist/components/TextInput/TextInput.module.scss.js +9 -0
  149. package/dist/components/TextInput/TextInputContent.css +1 -0
  150. package/dist/components/TextInput/TextInputContent.js +26 -0
  151. package/dist/components/TextInput/TextInputContent.module.scss.js +15 -0
  152. package/dist/components/TextInput.d.ts +6 -0
  153. package/dist/components/TextInput.js +6 -0
  154. package/dist/components/Tooltip/Tooltip.css +1 -0
  155. package/dist/components/Tooltip/Tooltip.js +123 -0
  156. package/dist/components/Tooltip/Tooltip.module.scss.js +9 -0
  157. package/dist/components/Tooltip.d.ts +6 -0
  158. package/dist/components/Tooltip.js +8 -0
  159. package/dist/components/internal/slot.js +10 -0
  160. package/dist/foundations/atomic.css +1 -0
  161. package/dist/foundations/breakpoint.css +1 -0
  162. package/dist/foundations/color.global.css +1 -0
  163. package/dist/foundations/color.theme.dark.css +1 -0
  164. package/dist/foundations/color.theme.light.css +1 -0
  165. package/dist/foundations/motion.css +1 -0
  166. package/dist/foundations/reset.css +1 -0
  167. package/dist/foundations/space.css +1 -0
  168. package/dist/foundations/typo.css +1 -0
  169. package/dist/foundations/zindex.css +1 -0
  170. package/dist/foundations.css +11 -0
  171. package/dist/index.d.ts +2 -0
  172. package/dist/index.js +102 -0
  173. package/dist/react/motion.d.ts +6 -0
  174. package/dist/react/motion.js +176 -0
  175. package/dist/react/spring.d.ts +2 -0
  176. package/dist/react/spring.js +87 -0
  177. package/dist/reset.css +2 -0
  178. package/dist/styles.css +41 -0
  179. package/dist/ui/src/components/Accordion/Accordion.d.ts +9 -0
  180. package/dist/ui/src/components/Accordion/Accordion.d.ts.map +1 -0
  181. package/dist/ui/src/components/Accordion/index.d.ts +3 -0
  182. package/dist/ui/src/components/Accordion/index.d.ts.map +1 -0
  183. package/dist/ui/src/components/Accordion/types.d.ts +39 -0
  184. package/dist/ui/src/components/Accordion/types.d.ts.map +1 -0
  185. package/dist/ui/src/components/ActionArea/ActionArea.d.ts +8 -0
  186. package/dist/ui/src/components/ActionArea/ActionArea.d.ts.map +1 -0
  187. package/dist/ui/src/components/ActionArea/index.d.ts +3 -0
  188. package/dist/ui/src/components/ActionArea/index.d.ts.map +1 -0
  189. package/dist/ui/src/components/ActionArea/types.d.ts +34 -0
  190. package/dist/ui/src/components/ActionArea/types.d.ts.map +1 -0
  191. package/dist/ui/src/components/Alert/Alert.d.ts +17 -0
  192. package/dist/ui/src/components/Alert/Alert.d.ts.map +1 -0
  193. package/dist/ui/src/components/Alert/index.d.ts +3 -0
  194. package/dist/ui/src/components/Alert/index.d.ts.map +1 -0
  195. package/dist/ui/src/components/Alert/types.d.ts +43 -0
  196. package/dist/ui/src/components/Alert/types.d.ts.map +1 -0
  197. package/dist/ui/src/components/Background/Background.d.ts +4 -0
  198. package/dist/ui/src/components/Background/Background.d.ts.map +1 -0
  199. package/dist/ui/src/components/Background/index.d.ts +3 -0
  200. package/dist/ui/src/components/Background/index.d.ts.map +1 -0
  201. package/dist/ui/src/components/Background/types.d.ts +17 -0
  202. package/dist/ui/src/components/Background/types.d.ts.map +1 -0
  203. package/dist/ui/src/components/BackgroundIconButton/BackgroundIconButton.d.ts +4 -0
  204. package/dist/ui/src/components/BackgroundIconButton/BackgroundIconButton.d.ts.map +1 -0
  205. package/dist/ui/src/components/BackgroundIconButton/index.d.ts +3 -0
  206. package/dist/ui/src/components/BackgroundIconButton/index.d.ts.map +1 -0
  207. package/dist/ui/src/components/BackgroundIconButton/types.d.ts +16 -0
  208. package/dist/ui/src/components/BackgroundIconButton/types.d.ts.map +1 -0
  209. package/dist/ui/src/components/Badge/Badge.d.ts +4 -0
  210. package/dist/ui/src/components/Badge/Badge.d.ts.map +1 -0
  211. package/dist/ui/src/components/Badge/index.d.ts +3 -0
  212. package/dist/ui/src/components/Badge/index.d.ts.map +1 -0
  213. package/dist/ui/src/components/Badge/types.d.ts +9 -0
  214. package/dist/ui/src/components/Badge/types.d.ts.map +1 -0
  215. package/dist/ui/src/components/Button/Button.d.ts +4 -0
  216. package/dist/ui/src/components/Button/Button.d.ts.map +1 -0
  217. package/dist/ui/src/components/Button/index.d.ts +3 -0
  218. package/dist/ui/src/components/Button/index.d.ts.map +1 -0
  219. package/dist/ui/src/components/Button/types.d.ts +30 -0
  220. package/dist/ui/src/components/Button/types.d.ts.map +1 -0
  221. package/dist/ui/src/components/Cell/Cell.d.ts +5 -0
  222. package/dist/ui/src/components/Cell/Cell.d.ts.map +1 -0
  223. package/dist/ui/src/components/Cell/index.d.ts +3 -0
  224. package/dist/ui/src/components/Cell/index.d.ts.map +1 -0
  225. package/dist/ui/src/components/Cell/types.d.ts +23 -0
  226. package/dist/ui/src/components/Cell/types.d.ts.map +1 -0
  227. package/dist/ui/src/components/CheckMark/CheckMark.d.ts +4 -0
  228. package/dist/ui/src/components/CheckMark/CheckMark.d.ts.map +1 -0
  229. package/dist/ui/src/components/CheckMark/index.d.ts +3 -0
  230. package/dist/ui/src/components/CheckMark/index.d.ts.map +1 -0
  231. package/dist/ui/src/components/CheckMark/types.d.ts +6 -0
  232. package/dist/ui/src/components/CheckMark/types.d.ts.map +1 -0
  233. package/dist/ui/src/components/Checkbox/Checkbox.d.ts +4 -0
  234. package/dist/ui/src/components/Checkbox/Checkbox.d.ts.map +1 -0
  235. package/dist/ui/src/components/Checkbox/index.d.ts +3 -0
  236. package/dist/ui/src/components/Checkbox/index.d.ts.map +1 -0
  237. package/dist/ui/src/components/Checkbox/types.d.ts +11 -0
  238. package/dist/ui/src/components/Checkbox/types.d.ts.map +1 -0
  239. package/dist/ui/src/components/Divider/Divider.d.ts +4 -0
  240. package/dist/ui/src/components/Divider/Divider.d.ts.map +1 -0
  241. package/dist/ui/src/components/Divider/index.d.ts +3 -0
  242. package/dist/ui/src/components/Divider/index.d.ts.map +1 -0
  243. package/dist/ui/src/components/Divider/types.d.ts +10 -0
  244. package/dist/ui/src/components/Divider/types.d.ts.map +1 -0
  245. package/dist/ui/src/components/Field/Field.d.ts +9 -0
  246. package/dist/ui/src/components/Field/Field.d.ts.map +1 -0
  247. package/dist/ui/src/components/Field/index.d.ts +3 -0
  248. package/dist/ui/src/components/Field/index.d.ts.map +1 -0
  249. package/dist/ui/src/components/Field/types.d.ts +30 -0
  250. package/dist/ui/src/components/Field/types.d.ts.map +1 -0
  251. package/dist/ui/src/components/Field/useFieldControlOverlayMetrics.d.ts +14 -0
  252. package/dist/ui/src/components/Field/useFieldControlOverlayMetrics.d.ts.map +1 -0
  253. package/dist/ui/src/components/Fieldset/Fieldset.d.ts +9 -0
  254. package/dist/ui/src/components/Fieldset/Fieldset.d.ts.map +1 -0
  255. package/dist/ui/src/components/Fieldset/index.d.ts +3 -0
  256. package/dist/ui/src/components/Fieldset/index.d.ts.map +1 -0
  257. package/dist/ui/src/components/Fieldset/types.d.ts +7 -0
  258. package/dist/ui/src/components/Fieldset/types.d.ts.map +1 -0
  259. package/dist/ui/src/components/IconButton/IconButton.d.ts +4 -0
  260. package/dist/ui/src/components/IconButton/IconButton.d.ts.map +1 -0
  261. package/dist/ui/src/components/IconButton/index.d.ts +3 -0
  262. package/dist/ui/src/components/IconButton/index.d.ts.map +1 -0
  263. package/dist/ui/src/components/IconButton/types.d.ts +16 -0
  264. package/dist/ui/src/components/IconButton/types.d.ts.map +1 -0
  265. package/dist/ui/src/components/Interaction/Interaction.d.ts +4 -0
  266. package/dist/ui/src/components/Interaction/Interaction.d.ts.map +1 -0
  267. package/dist/ui/src/components/Interaction/index.d.ts +3 -0
  268. package/dist/ui/src/components/Interaction/index.d.ts.map +1 -0
  269. package/dist/ui/src/components/Interaction/types.d.ts +6 -0
  270. package/dist/ui/src/components/Interaction/types.d.ts.map +1 -0
  271. package/dist/ui/src/components/Loading/Loading.d.ts +4 -0
  272. package/dist/ui/src/components/Loading/Loading.d.ts.map +1 -0
  273. package/dist/ui/src/components/Loading/index.d.ts +3 -0
  274. package/dist/ui/src/components/Loading/index.d.ts.map +1 -0
  275. package/dist/ui/src/components/Loading/types.d.ts +8 -0
  276. package/dist/ui/src/components/Loading/types.d.ts.map +1 -0
  277. package/dist/ui/src/components/Menu/Menu.d.ts +12 -0
  278. package/dist/ui/src/components/Menu/Menu.d.ts.map +1 -0
  279. package/dist/ui/src/components/Menu/index.d.ts +3 -0
  280. package/dist/ui/src/components/Menu/index.d.ts.map +1 -0
  281. package/dist/ui/src/components/Menu/types.d.ts +52 -0
  282. package/dist/ui/src/components/Menu/types.d.ts.map +1 -0
  283. package/dist/ui/src/components/Modal/Modal.d.ts +19 -0
  284. package/dist/ui/src/components/Modal/Modal.d.ts.map +1 -0
  285. package/dist/ui/src/components/Modal/contexts.d.ts +33 -0
  286. package/dist/ui/src/components/Modal/contexts.d.ts.map +1 -0
  287. package/dist/ui/src/components/Modal/index.d.ts +3 -0
  288. package/dist/ui/src/components/Modal/index.d.ts.map +1 -0
  289. package/dist/ui/src/components/Modal/modalScrollArbitration.d.ts +33 -0
  290. package/dist/ui/src/components/Modal/modalScrollArbitration.d.ts.map +1 -0
  291. package/dist/ui/src/components/Modal/snapPoints.d.ts +38 -0
  292. package/dist/ui/src/components/Modal/snapPoints.d.ts.map +1 -0
  293. package/dist/ui/src/components/Modal/types.d.ts +117 -0
  294. package/dist/ui/src/components/Modal/types.d.ts.map +1 -0
  295. package/dist/ui/src/components/Modal/useControllableState.d.ts +6 -0
  296. package/dist/ui/src/components/Modal/useControllableState.d.ts.map +1 -0
  297. package/dist/ui/src/components/Modal/useElementSize.d.ts +6 -0
  298. package/dist/ui/src/components/Modal/useElementSize.d.ts.map +1 -0
  299. package/dist/ui/src/components/Modal/useModalDrag.d.ts +37 -0
  300. package/dist/ui/src/components/Modal/useModalDrag.d.ts.map +1 -0
  301. package/dist/ui/src/components/Modal/useModalPlacement.d.ts +3 -0
  302. package/dist/ui/src/components/Modal/useModalPlacement.d.ts.map +1 -0
  303. package/dist/ui/src/components/Modal/useModalStackDepth.d.ts +2 -0
  304. package/dist/ui/src/components/Modal/useModalStackDepth.d.ts.map +1 -0
  305. package/dist/ui/src/components/Radio/Radio.d.ts +4 -0
  306. package/dist/ui/src/components/Radio/Radio.d.ts.map +1 -0
  307. package/dist/ui/src/components/Radio/index.d.ts +3 -0
  308. package/dist/ui/src/components/Radio/index.d.ts.map +1 -0
  309. package/dist/ui/src/components/Radio/types.d.ts +10 -0
  310. package/dist/ui/src/components/Radio/types.d.ts.map +1 -0
  311. package/dist/ui/src/components/ScrollArea/ScrollArea.d.ts +6 -0
  312. package/dist/ui/src/components/ScrollArea/ScrollArea.d.ts.map +1 -0
  313. package/dist/ui/src/components/ScrollArea/contexts.d.ts +3 -0
  314. package/dist/ui/src/components/ScrollArea/contexts.d.ts.map +1 -0
  315. package/dist/ui/src/components/ScrollArea/index.d.ts +4 -0
  316. package/dist/ui/src/components/ScrollArea/index.d.ts.map +1 -0
  317. package/dist/ui/src/components/ScrollArea/types.d.ts +21 -0
  318. package/dist/ui/src/components/ScrollArea/types.d.ts.map +1 -0
  319. package/dist/ui/src/components/SectionHeader/SectionHeader.d.ts +4 -0
  320. package/dist/ui/src/components/SectionHeader/SectionHeader.d.ts.map +1 -0
  321. package/dist/ui/src/components/SectionHeader/index.d.ts +3 -0
  322. package/dist/ui/src/components/SectionHeader/index.d.ts.map +1 -0
  323. package/dist/ui/src/components/SectionHeader/types.d.ts +13 -0
  324. package/dist/ui/src/components/SectionHeader/types.d.ts.map +1 -0
  325. package/dist/ui/src/components/Select/Select.d.ts +4 -0
  326. package/dist/ui/src/components/Select/Select.d.ts.map +1 -0
  327. package/dist/ui/src/components/Select/SelectContent.d.ts +4 -0
  328. package/dist/ui/src/components/Select/SelectContent.d.ts.map +1 -0
  329. package/dist/ui/src/components/Select/index.d.ts +4 -0
  330. package/dist/ui/src/components/Select/index.d.ts.map +1 -0
  331. package/dist/ui/src/components/Select/types.d.ts +12 -0
  332. package/dist/ui/src/components/Select/types.d.ts.map +1 -0
  333. package/dist/ui/src/components/SvgIcon/SvgIcon.d.ts +2 -0
  334. package/dist/ui/src/components/SvgIcon/SvgIcon.d.ts.map +1 -0
  335. package/dist/ui/src/components/SvgIcon/index.d.ts +3 -0
  336. package/dist/ui/src/components/SvgIcon/index.d.ts.map +1 -0
  337. package/dist/ui/src/components/SvgIcon/types.d.ts +2 -0
  338. package/dist/ui/src/components/SvgIcon/types.d.ts.map +1 -0
  339. package/dist/ui/src/components/Switch/Switch.d.ts +4 -0
  340. package/dist/ui/src/components/Switch/Switch.d.ts.map +1 -0
  341. package/dist/ui/src/components/Switch/index.d.ts +3 -0
  342. package/dist/ui/src/components/Switch/index.d.ts.map +1 -0
  343. package/dist/ui/src/components/Switch/types.d.ts +8 -0
  344. package/dist/ui/src/components/Switch/types.d.ts.map +1 -0
  345. package/dist/ui/src/components/TextArea/TextArea.d.ts +4 -0
  346. package/dist/ui/src/components/TextArea/TextArea.d.ts.map +1 -0
  347. package/dist/ui/src/components/TextArea/TextAreaContent.d.ts +4 -0
  348. package/dist/ui/src/components/TextArea/TextAreaContent.d.ts.map +1 -0
  349. package/dist/ui/src/components/TextArea/index.d.ts +4 -0
  350. package/dist/ui/src/components/TextArea/index.d.ts.map +1 -0
  351. package/dist/ui/src/components/TextArea/types.d.ts +15 -0
  352. package/dist/ui/src/components/TextArea/types.d.ts.map +1 -0
  353. package/dist/ui/src/components/TextButton/TextButton.d.ts +4 -0
  354. package/dist/ui/src/components/TextButton/TextButton.d.ts.map +1 -0
  355. package/dist/ui/src/components/TextButton/index.d.ts +3 -0
  356. package/dist/ui/src/components/TextButton/index.d.ts.map +1 -0
  357. package/dist/ui/src/components/TextButton/types.d.ts +25 -0
  358. package/dist/ui/src/components/TextButton/types.d.ts.map +1 -0
  359. package/dist/ui/src/components/TextInput/TextInput.d.ts +4 -0
  360. package/dist/ui/src/components/TextInput/TextInput.d.ts.map +1 -0
  361. package/dist/ui/src/components/TextInput/TextInputContent.d.ts +4 -0
  362. package/dist/ui/src/components/TextInput/TextInputContent.d.ts.map +1 -0
  363. package/dist/ui/src/components/TextInput/index.d.ts +4 -0
  364. package/dist/ui/src/components/TextInput/index.d.ts.map +1 -0
  365. package/dist/ui/src/components/TextInput/types.d.ts +12 -0
  366. package/dist/ui/src/components/TextInput/types.d.ts.map +1 -0
  367. package/dist/ui/src/components/Tooltip/Tooltip.d.ts +8 -0
  368. package/dist/ui/src/components/Tooltip/Tooltip.d.ts.map +1 -0
  369. package/dist/ui/src/components/Tooltip/index.d.ts +3 -0
  370. package/dist/ui/src/components/Tooltip/index.d.ts.map +1 -0
  371. package/dist/ui/src/components/Tooltip/types.d.ts +21 -0
  372. package/dist/ui/src/components/Tooltip/types.d.ts.map +1 -0
  373. package/dist/ui/src/components/internal/slot.d.ts +3 -0
  374. package/dist/ui/src/components/internal/slot.d.ts.map +1 -0
  375. package/dist/ui/src/components/types.d.ts +2 -0
  376. package/dist/ui/src/components/types.d.ts.map +1 -0
  377. package/dist/ui/src/index.d.ts +59 -0
  378. package/dist/ui/src/index.d.ts.map +1 -0
  379. package/dist/ui/src/react/motion/index.d.ts +27 -0
  380. package/dist/ui/src/react/motion/index.d.ts.map +1 -0
  381. package/dist/ui/src/react/spring/index.d.ts +33 -0
  382. package/dist/ui/src/react/spring/index.d.ts.map +1 -0
  383. package/dist/ui/src/utils/breakpoints.d.ts +6 -0
  384. package/dist/ui/src/utils/breakpoints.d.ts.map +1 -0
  385. package/dist/ui/src/utils/css.d.ts +3 -0
  386. package/dist/ui/src/utils/css.d.ts.map +1 -0
  387. package/dist/ui/src/utils/motion.d.ts +80 -0
  388. package/dist/ui/src/utils/motion.d.ts.map +1 -0
  389. package/dist/ui/src/utils/spring/animator.d.ts +3 -0
  390. package/dist/ui/src/utils/spring/animator.d.ts.map +1 -0
  391. package/dist/ui/src/utils/spring/constants.d.ts +13 -0
  392. package/dist/ui/src/utils/spring/constants.d.ts.map +1 -0
  393. package/dist/ui/src/utils/spring/format.d.ts +5 -0
  394. package/dist/ui/src/utils/spring/format.d.ts.map +1 -0
  395. package/dist/ui/src/utils/spring/model.d.ts +18 -0
  396. package/dist/ui/src/utils/spring/model.d.ts.map +1 -0
  397. package/dist/ui/src/utils/spring/solver.d.ts +6 -0
  398. package/dist/ui/src/utils/spring/solver.d.ts.map +1 -0
  399. package/dist/ui/src/utils/spring/static.d.ts +5 -0
  400. package/dist/ui/src/utils/spring/static.d.ts.map +1 -0
  401. package/dist/ui/src/utils/spring/types.d.ts +141 -0
  402. package/dist/ui/src/utils/spring/types.d.ts.map +1 -0
  403. package/dist/ui/src/utils/spring/validation.d.ts +5 -0
  404. package/dist/ui/src/utils/spring/validation.d.ts.map +1 -0
  405. package/dist/ui/src/utils/spring/value.d.ts +5 -0
  406. package/dist/ui/src/utils/spring/value.d.ts.map +1 -0
  407. package/dist/ui/src/utils/spring.d.ts +12 -0
  408. package/dist/ui/src/utils/spring.d.ts.map +1 -0
  409. package/dist/utils/breakpoints.d.ts +2 -0
  410. package/dist/utils/breakpoints.js +26 -0
  411. package/dist/utils/css.js +7 -0
  412. package/dist/utils/motion.d.ts +2 -0
  413. package/dist/utils/motion.js +343 -0
  414. package/dist/utils/spring/animator.js +179 -0
  415. package/dist/utils/spring/constants.js +15 -0
  416. package/dist/utils/spring/format.js +10 -0
  417. package/dist/utils/spring/model.js +120 -0
  418. package/dist/utils/spring/solver.js +78 -0
  419. package/dist/utils/spring/static.js +76 -0
  420. package/dist/utils/spring/validation.js +19 -0
  421. package/dist/utils/spring/value.js +65 -0
  422. package/dist/utils/spring.d.ts +2 -0
  423. package/dist/utils/spring.js +14 -0
  424. package/dist/vscode/oc-ui-vars.css +468 -0
  425. package/package.json +128 -0
  426. package/src/scss/foundations/_color.config.scss +14 -0
  427. package/src/scss/foundations/_responsive.config.scss +6 -0
  428. package/src/scss/foundations/atomic.scss +24 -0
  429. package/src/scss/foundations/breakpoint.scss +3 -0
  430. package/src/scss/foundations/color-theme.test.ts +99 -0
  431. package/src/scss/foundations/color.global.scss +210 -0
  432. package/src/scss/foundations/color.theme.dark.scss +80 -0
  433. package/src/scss/foundations/color.theme.light.scss +72 -0
  434. package/src/scss/foundations/motion.scss +46 -0
  435. package/src/scss/foundations/reset.scss +129 -0
  436. package/src/scss/foundations/responsive.test.ts +294 -0
  437. package/src/scss/foundations/space.scss +206 -0
  438. package/src/scss/foundations/typo.scss +381 -0
  439. package/src/scss/foundations/zindex.scss +12 -0
  440. package/src/scss/index.scss +18 -0
  441. package/src/scss/mixins/_breakpoint.scss +115 -0
  442. package/src/scss/mixins/_color.scss +29 -0
  443. package/src/scss/mixins/_color.test.ts +35 -0
  444. package/src/scss/mixins/_element.scss +52 -0
  445. package/src/scss/mixins/_element.test.ts +44 -0
  446. package/src/scss/mixins/_motion.scss +450 -0
  447. package/src/scss/mixins/_motion.test.ts +336 -0
  448. package/src/scss/mixins/_responsive.scss +366 -0
  449. package/src/scss/mixins/_spring.scss +396 -0
  450. package/src/scss/mixins/_spring.test.ts +128 -0
  451. package/src/scss/mixins/_typo.scss +67 -0
  452. package/src/scss/mixins/_typo.test.ts +28 -0
  453. package/src/scss/mixins/_utils.scss +26 -0
  454. package/src/scss/spring.scss +1 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 orioncactus Corp.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,273 @@
1
+ # @orioncactuscorp/ui
2
+
3
+ orioncactus 디자인 시스템의 React 19+ UI package입니다.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ bun add @orioncactuscorp/ui @orioncactuscorp/icons
9
+ ```
10
+
11
+ 앱 코드에서 아이콘을 직접 import한다면 `@orioncactuscorp/icons`를 consumer repository의 direct dependency로 함께 설치하세요. `@orioncactuscorp/ui` 컴포넌트 내부 indicator만 사용한다면 별도 작업은 필요 없습니다.
12
+
13
+ ## Usage
14
+
15
+ ```tsx
16
+ import '@orioncactuscorp/ui/foundations.css';
17
+ import '@orioncactuscorp/ui/styles.css';
18
+ import { IconDefault } from '@orioncactuscorp/icons';
19
+ import { Button, IconButton } from '@orioncactuscorp/ui';
20
+
21
+ export default function Example() {
22
+ return (
23
+ <>
24
+ <Button>확인</Button>
25
+ <IconButton aria-label='기본 아이콘'>
26
+ <IconDefault />
27
+ </IconButton>
28
+ </>
29
+ );
30
+ }
31
+ ```
32
+
33
+ ## Components
34
+
35
+ - `SectionHeader`
36
+ - `Button`, `TextButton`, `IconButton`, `BackgroundIconButton`
37
+ - `ActionArea`, `ActionAreaButton`
38
+ - `Badge`, `Background`, `Divider`, `Loading`, `Cell`, `CellItem`
39
+ - `CheckMark`
40
+ - `Field`, `FieldLabel`, `FieldControl`, `FieldMessage`, `FieldErrorMessage` (`vertical`/`horizontal` orientation)
41
+ - `Fieldset`, `FieldLegend`, `FieldsetContent`, `FieldGroup`
42
+ - `Checkbox`, `Radio`, `Switch`
43
+ - `TextInput`, `TextInputContent`
44
+ - `TextArea`, `TextAreaContent`
45
+ - `Select`, `SelectContent`
46
+ - `MenuRoot`, `MenuTrigger`, `MenuContent`, `MenuItem`, `MenuSeparator`
47
+ - `Alert`, `AlertRoot`, `AlertContent`, `AlertHeading`, `AlertDescription`, `AlertActionArea`, `AlertAction`
48
+ - `Accordion`, `AccordionItem`, `AccordionSummary`, `AccordionDetails`, `AccordionDescription`, `AccordionContent`
49
+ - `Modal`, `ModalRoot`, `ModalTrigger`, `ModalContent`, `ModalHeader`, `ModalBody`, `ModalFooter`, `ModalClose`
50
+ - `TooltipProvider`, `TooltipRoot`, `TooltipTrigger`, `TooltipContent`
51
+ - `ScrollArea`, `ScrollAreaContainer`
52
+ - `SvgIcon`, `Interaction`
53
+
54
+ ## Exports
55
+
56
+ - `@orioncactuscorp/ui`
57
+ - `@orioncactuscorp/ui/foundations.css`
58
+ - `@orioncactuscorp/ui/reset.css`
59
+ - `@orioncactuscorp/ui/styles.css`
60
+ - `@orioncactuscorp/ui/scss/*`
61
+ - `@orioncactuscorp/ui/scss/foundations/responsive.config`
62
+ - `@orioncactuscorp/ui/utils/spring`
63
+ - `@orioncactuscorp/ui/utils/motion`
64
+ - `@orioncactuscorp/ui/react/spring`
65
+ - `@orioncactuscorp/ui/react/motion`
66
+
67
+ ## Icons
68
+
69
+ `@orioncactuscorp/ui`는 `@orioncactuscorp/icons`를 dependency로 사용합니다. `Checkbox`, `Radio`, `Select`, `Accordion`, `ModalClose` 같은 컴포넌트 내부 indicator를 별도 설정 없이 렌더링합니다.
70
+
71
+ 앱 코드에서 아이콘을 직접 사용할 때는 `@orioncactuscorp/icons`에서 import합니다.
72
+
73
+ ```tsx
74
+ import { IconClose, IconDefault } from '@orioncactuscorp/icons';
75
+ ```
76
+
77
+ `@orioncactuscorp/ui`는 앱 코드용 icon export를 제공하지 않습니다.
78
+
79
+ 아이콘 세트를 나중에 교체할 계획이 있으면, 컴포넌트마다 직접 import하지 말고 앱 내부 icon registry를 거쳐 import하세요.
80
+
81
+ ## Semantic Motion
82
+
83
+ SCSS consumer는 `oc-motion`으로 transition을 intent 기준으로 작성합니다. `feedback`, `reveal`, `move` 같은 의미를 선택하면 `oc-motion`이 duration token, spring profile, reduced-motion 정책을 함께 적용합니다.
84
+
85
+ ```scss
86
+ @use '@orioncactuscorp/ui/scss/mixins/motion' as *;
87
+
88
+ .button {
89
+ @include oc-motion((background-color, color), feedback);
90
+ }
91
+
92
+ .popover {
93
+ @include oc-motion((opacity, transform), reveal);
94
+ }
95
+ ```
96
+
97
+ 일반 컴포넌트와 consumer SCSS에서는 `oc-motion`을 우선 사용하고, 직접 spring parameter를 설계해야 하는 고급 케이스에서만 `oc-spring`을 사용합니다. intent, phase, pace, reduced-motion policy, token override 기준은 [docs/oc-motion.md](https://github.com/orioncactuscorp/orioncactus-ui/blob/main/docs/oc-motion.md)를 참고하세요.
98
+
99
+ ## Spring Motion
100
+
101
+ SCSS에서는 iOS spring의 perceptual duration 기준으로 low-level transition을 작성할 수 있습니다. helper는 실제 CSS duration을 감쇠 settling duration으로 출력합니다.
102
+
103
+ ```scss
104
+ @use '@orioncactuscorp/ui/scss/spring' as *;
105
+
106
+ .box {
107
+ transition: oc-spring(transform, 0.5s, snappy);
108
+ }
109
+
110
+ .custom {
111
+ transition: oc-spring(transform, 0.5s, snappy, 0.1);
112
+ }
113
+
114
+ .menu {
115
+ transition: oc-spring(
116
+ (
117
+ opacity: (
118
+ 0.3s,
119
+ snappy,
120
+ ),
121
+ transform: (
122
+ 0.3s,
123
+ snappy,
124
+ 0.1,
125
+ ),
126
+ )
127
+ );
128
+ }
129
+ ```
130
+
131
+ property별 tuple은 `(duration, preset, extra-bounce, delay, samples)` 순서입니다. physical spring과 고급 옵션은 named map을 사용합니다. 자세한 사용법과 Sass named argument 주의점은 [docs/spring.md](https://github.com/orioncactuscorp/orioncactus-ui/blob/main/docs/spring.md)를 참고하세요.
132
+
133
+ TS 런타임에서는 subpath util을 사용합니다.
134
+
135
+ ```ts
136
+ import {
137
+ createSpringAnimator,
138
+ ocSpring,
139
+ } from '@orioncactuscorp/ui/utils/spring';
140
+
141
+ const spring = ocSpring.snappy({ duration: 0.5, extraBounce: 0.1 });
142
+
143
+ spring.settlingDuration; // 실제 CSS transition duration
144
+ spring.timingFunction; // linear(...) easing
145
+
146
+ const animator = createSpringAnimator({
147
+ value: { x: 0, y: 0 },
148
+ target: { x: 120, y: 80 },
149
+ spring,
150
+ onUpdate: value => {
151
+ element.style.transform = `translate(${value.x}px, ${value.y}px)`;
152
+ },
153
+ });
154
+
155
+ animator.setTarget({ x: 240, y: 120 }); // 현재 velocity를 이어받아 retarget
156
+ ```
157
+
158
+ React component에서 spring 값을 렌더링해야 하면 hook subpath를 사용합니다. 일반적인 controlled target UI는 `useSpringTarget`으로 시작하고, 직접 retarget setter가 필요하면 `useSpringValue`를 사용합니다.
159
+
160
+ ```tsx
161
+ import { useState } from 'react';
162
+ import { useSpringTarget } from '@orioncactuscorp/ui/react/spring';
163
+ import { ocSpring } from '@orioncactuscorp/ui/utils/spring';
164
+
165
+ export function Follower() {
166
+ const [target, setTarget] = useState({ x: 120, y: 80 });
167
+ const position = useSpringTarget(target, {
168
+ value: { x: 0, y: 0 },
169
+ spring: ocSpring.snappy({ duration: 0.5 }),
170
+ });
171
+
172
+ return (
173
+ <button
174
+ type='button'
175
+ style={{
176
+ transform: `translate3d(${position.value.x}px, ${position.value.y}px, 0)`,
177
+ }}
178
+ onClick={() => setTarget({ x: 240, y: 120 })}
179
+ >
180
+ 이동
181
+ </button>
182
+ );
183
+ }
184
+ ```
185
+
186
+ runtime reveal이나 height motion이 필요한 React component에서는 `react/motion` subpath를 사용합니다. 이 layer는 `utils/motion`의 intent/phase/pace/reduced-motion 정책을 해석한 뒤 low-level `ocSpring` animator에 연결합니다.
187
+
188
+ ```tsx
189
+ import { MotionReveal } from '@orioncactuscorp/ui/react/motion';
190
+ import { ocMotion } from '@orioncactuscorp/ui/utils/motion';
191
+
192
+ const motion = ocMotion.resolve({
193
+ intent: 'reveal',
194
+ phase: 'enter',
195
+ pace: 'normal',
196
+ });
197
+
198
+ export function Panel({ open, children }) {
199
+ return (
200
+ <MotionReveal open={open} forceMount>
201
+ {children}
202
+ </MotionReveal>
203
+ );
204
+ }
205
+ ```
206
+
207
+ ## Responsive Foundation Profile
208
+
209
+ `@orioncactuscorp/ui/scss/foundations/responsive.config`는 SCSS consumer가 `typo`와 `space` responsive token 출력 방식을 선택할 때 사용합니다. mode는 공통으로 적용하고, `$oc-responsive-typo-stops`와 `$oc-responsive-space-stops`로 foundation별 active stop range를 따로 지정할 수 있습니다. `space`는 `$oc-responsive-space-profile`로 stepped 출력 profile도 바꿀 수 있습니다.
210
+
211
+ - `fluid`: 기본 `fluidClamp()` 출력
212
+ - `stepped`: active stop별 고정 token 값 출력
213
+ - `static`: 명시 stop 또는 각 foundation의 첫 active stop으로 고정
214
+ - `space profile`: `$oc-responsive-mode: stepped`에서 `stepped-points`로 base/media point별 target stop 출력
215
+
216
+ 이 설정은 compile-time SCSS profile입니다. Prebuilt `foundations.css` 또는 `styles.css` import에는 적용되지 않습니다. 예시는 [docs/responsive-foundation-profile.md](../../docs/responsive-foundation-profile.md)를 참고하세요.
217
+
218
+ ## VS Code CSS Variable Autocomplete
219
+
220
+ package는 VS Code CSS variable autocomplete 확장이 읽을 수 있는 foundation token index를 함께 배포합니다.
221
+
222
+ ```text
223
+ node_modules/@orioncactuscorp/ui/dist/vscode/oc-ui-vars.css
224
+ ```
225
+
226
+ consumer repository에서 `phoenisx.cssvar` 확장을 사용할 경우 `.vscode/settings.json`에 아래 설정을 추가합니다.
227
+
228
+ ```json
229
+ {
230
+ "cssvar.files": [
231
+ "./node_modules/@orioncactuscorp/ui/dist/vscode/oc-ui-vars.css"
232
+ ]
233
+ }
234
+ ```
235
+
236
+ 이 파일은 `foundations.css`에서 생성되므로 설치된 `@orioncactuscorp/ui` package 버전의 `--oc-*` foundation token과 자동완성 목록이 함께 움직입니다. 자동완성 전용 index이므로 runtime stylesheet로 import하지 않습니다.
237
+
238
+ ## Agent Setup
239
+
240
+ package에는 내부 Agent instruction artifact를 포함하지 않습니다. consumer repository에서 oc-ui 사용 지침을 세팅할 때는 아래 public-safe prompt를 Agent에게 붙여넣으세요.
241
+
242
+ ```text
243
+ This repository uses @orioncactuscorp/ui.
244
+
245
+ Set up or update this repository's agent instructions for oc-ui usage.
246
+
247
+ Use the installed package and public package docs as the source of truth:
248
+ - package.json
249
+ - node_modules/@orioncactuscorp/ui/package.json
250
+ - node_modules/@orioncactuscorp/ui/README.md
251
+ - node_modules/@orioncactuscorp/icons/package.json
252
+ - node_modules/@orioncactuscorp/icons/README.md
253
+
254
+ Inspect this repository's AGENTS.md and CLAUDE.md files if they exist.
255
+ Preserve repository-local rules.
256
+ Do not overwrite existing project conventions.
257
+ Report conflicts before editing instructions.
258
+
259
+ Document:
260
+ - where @orioncactuscorp/ui/foundations.css and @orioncactuscorp/ui/styles.css are imported
261
+ - whether this repository uses prebuilt CSS or SCSS source customization
262
+ - whether icons are imported directly from @orioncactuscorp/icons
263
+ - which local components should prefer oc-ui primitives
264
+
265
+ Do not assume access to private orioncactus agent documents.
266
+ Do not use the latest upstream main branch as the convention source unless I explicitly ask for that comparison.
267
+ ```
268
+
269
+ 긴 초기 세팅 가이드는 repository 문서의 `docs/agent-setup.md`를 기준으로 관리합니다.
270
+
271
+ ## License
272
+
273
+ MIT
@@ -0,0 +1 @@
1
+ .oc-Accordion-module__accordion__wD27Q{font-size:calc(var(--oc-typo-size-body1) * var(--oc-typo-scale, 1));line-height:calc(var(--oc-typo-height-body1) * var(--oc-typo-scale, 1));letter-spacing:var(--oc-typo-spacing-body1);display:flex;flex-direction:column;margin-top:calc(-1 * var(--oc-cell-padding));margin-bottom:calc(-1 * var(--oc-cell-padding));color:var(--oc-color-theme-label-normal);--oc-cell-padding: var(--oc-space-item-padding-small);--oc-cell-padding-inline: var(--oc-space-item-padding-medium);--oc-cell-gap: .5em;--oc-cell-icon-size: 1.375rem;--oc-cell-disabled-opacity: .28;--oc-cell-interaction-margin-inline: var(--oc-space-item-padding-xsmall);--oc-cell-interaction-radius: var(--oc-atomic-radius-small);--oc-cell-divider-color: var(--oc-color-theme-line-normal-normal);--oc-accordion-current-divider-color: var(--oc-cell-divider-color)}.oc-Accordion-module__item__YNNr-[data-oc-divider=normal]{--oc-accordion-current-divider-color: var(--oc-color-theme-line-normal-normal)}.oc-Accordion-module__item__YNNr-[data-oc-divider=neutral]{--oc-accordion-current-divider-color: var(--oc-color-theme-line-normal-neutral)}.oc-Accordion-module__item__YNNr-[data-oc-divider=alternative]{--oc-accordion-current-divider-color: var(--oc-color-theme-line-normal-alternative)}.oc-Accordion-module__item__YNNr-[data-oc-divider=none]{--oc-accordion-current-divider-color: transparent}.oc-Accordion-module__item__YNNr-+.oc-Accordion-module__item__YNNr-{border-block-start:1px solid var(--oc-accordion-current-divider-color)}.oc-Accordion-module__item__YNNr-[data-oc-disabled=true] .oc-Accordion-module__summary__ORyIA>:where([data-oc-part=leading],[data-oc-part=content],[data-oc-part=trailing]),.oc-Accordion-module__item__YNNr-[data-oc-disabled=true] [data-oc-part=panel-inner]{opacity:var(--oc-cell-disabled-opacity)}.oc-Accordion-module__header__AYOT5{margin:0;font:inherit}.oc-Accordion-module__summary__ORyIA{position:relative;display:flex;align-items:flex-start;gap:var(--oc-cell-gap);inline-size:100%;min-inline-size:0;padding:var(--oc-cell-padding) 0;border:0;color:inherit;font:inherit;text-align:start;background:transparent;cursor:pointer;transform:scale(var(--oc-accordion-summary-press-scale, 1));-webkit-user-select:none;user-select:none;transition:border-color calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-scale) * var(--oc-motion-pace-normal) * .5) var(--oc-motion-timing-feedback),transform calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-scale) * var(--oc-motion-pace-normal) * .5) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-Accordion-module__summary__ORyIA{transition-property:border-color;transition-duration:calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-scale-reduced) * var(--oc-motion-pace-normal) * .5);transition-timing-function:var(--oc-motion-timing-feedback);transform:none}}.oc-Accordion-module__summary__ORyIA{--oc-cell-content-min-block-size: var(--oc-typo-height-body1)}.oc-Accordion-module__summary__ORyIA[data-oc-vertical-align=center]{align-items:center}.oc-Accordion-module__summary__ORyIA[data-oc-fill-width=true]{padding-inline:var(--oc-cell-padding-inline)}.oc-Accordion-module__summary__ORyIA[data-oc-fill-width=true]>[data-oc-component=interaction]{--oc-interaction-inset-x: 0;--oc-interaction-radius: 0}.oc-Accordion-module__summary__ORyIA[data-oc-fill-width=false]>[data-oc-component=interaction]{--oc-interaction-inset-x: calc(-1 * var(--oc-cell-interaction-margin-inline));--oc-interaction-radius: var(--oc-cell-interaction-radius)}.oc-Accordion-module__summary__ORyIA:focus-visible{outline:none}.oc-Accordion-module__summary__ORyIA:focus-visible>[data-oc-component=interaction]{opacity:var(--oc-interaction-opacity-focus);transform:scale(1)}@media(hover:hover){.oc-Accordion-module__summary__ORyIA:hover:not(:disabled)>[data-oc-component=interaction]{opacity:var(--oc-interaction-opacity-hover);transform:scale(1)}}.oc-Accordion-module__summary__ORyIA:active:not(:disabled){--oc-accordion-summary-press-scale: .9875}.oc-Accordion-module__summary__ORyIA:active:not(:disabled)>[data-oc-component=interaction]{opacity:var(--oc-interaction-opacity-active);transform:scale(1)}.oc-Accordion-module__summary__ORyIA:disabled{cursor:not-allowed}.oc-Accordion-module__summary__ORyIA[data-oc-disabled=true]>:where([data-oc-part=leading],[data-oc-part=content],[data-oc-part=trailing]){opacity:var(--oc-cell-disabled-opacity)}.oc-Accordion-module__summary__ORyIA>[data-oc-component=interaction]{border-radius:var(--oc-interaction-radius)}.oc-Accordion-module__summary__ORyIA>[data-oc-part=leading],.oc-Accordion-module__summary__ORyIA>[data-oc-part=trailing]{position:relative;z-index:2;display:inline-flex;flex:none;align-items:center;min-block-size:var(--oc-cell-content-min-block-size);color:var(--oc-color-theme-label-alternative)}.oc-Accordion-module__summary__ORyIA>[data-oc-part=leading]>[data-oc-component=svg-icon],.oc-Accordion-module__summary__ORyIA>[data-oc-part=trailing]>[data-oc-component=svg-icon]{block-size:var(--oc-cell-icon-size)}.oc-Accordion-module__summary__ORyIA>[data-oc-part=content]{position:relative;z-index:2;display:flex;align-items:center;flex:1;min-block-size:var(--oc-cell-content-min-block-size);min-inline-size:0}.oc-Accordion-module__summary__ORyIA [data-oc-part=text]{display:flex;flex-direction:column;gap:var(--oc-space-item-gap-atom);min-inline-size:0}.oc-Accordion-module__summary__ORyIA [data-oc-part=label],.oc-Accordion-module__summary__ORyIA [data-oc-part=description]{min-inline-size:0}.oc-Accordion-module__summary__ORyIA [data-oc-part=description]{font-size:calc(var(--oc-typo-size-label1) * var(--oc-typo-scale, 1));line-height:calc(var(--oc-typo-height-label1) * var(--oc-typo-scale, 1));letter-spacing:var(--oc-typo-spacing-label1);color:var(--oc-color-theme-label-alternative)}.oc-Accordion-module__trailing__Gnf84{justify-content:flex-end}.oc-Accordion-module__trailing__Gnf84[data-oc-rotate=true]{transform:rotate(var(--oc-accordion-chevron-rotation, 0deg));transition:transform calc(.326s * var(--oc-motion-duration-scale) * var(--oc-motion-pace-normal) * 1.5) linear(0 0%,.0045 .95%,.017 1.9%,.0363 2.86%,.061 3.81%,.0902 4.76%,.1229 5.71%,.1582 6.67%,.1956 7.62%,.2343 8.57%,.2738 9.52%,.3136 10.48%,.3533 11.43%,.3927 12.38%,.4313 13.33%,.469 14.29%,.5056 15.24%,.541 16.19%,.5749 17.14%,.6074 18.1%,.6384 19.05%,.6678 20%,.6956 20.95%,.7219 21.9%,.7466 22.86%,.7697 23.81%,.7913 24.76%,.8114 25.71%,.8301 26.67%,.8474 27.62%,.8635 28.57%,.8782 29.52%,.8918 30.48%,.9043 31.43%,.9157 32.38%,.9261 33.33%,.9355 34.29%,.9441 35.24%,.9518 36.19%,.9588 37.14%,.9651 38.1%,.9707 39.05%,.9757 40%,.9802 40.95%,.9842 41.9%,.9877 42.86%,.9907 43.81%,.9934 44.76%,.9957 45.71%,.9977 46.67%,.9995 47.62%,1.0009 48.57%,1.0022 49.52%,1.0032 50.48%,1.004 51.43%,1.0047 52.38%,1.0052 53.33%,1.0056 54.29%,1.0059 55.24%,1.0061 56.19%,1.0062 57.14%,1.0063 58.1%,1.0063 59.05%,1.0062 60%,1.0061 60.95%,1.0059 61.9%,1.0057 62.86%,1.0055 63.81%,1.0053 64.76%,1.0051 65.71%,1.0048 66.67%,1.0046 67.62%,1.0044 68.57%,1.0041 69.52%,1.0039 70.48%,1.0036 71.43%,1.0034 72.38%,1.0031 73.33%,1.0029 74.29%,1.0027 75.24%,1.0025 76.19%,1.0023 77.14%,1.0021 78.1%,1.0019 79.05%,1.0018 80%,1.0016 80.95%,1.0015 81.9%,1.0013 82.86%,1.0012 83.81%,1.0011 84.76%,1.001 85.71%,1.0009 86.67%,1.0008 87.62%,1.0007 88.57%,1.0006 89.52%,1.0005 90.48%,1.0005 91.43%,1.0004 92.38%,1.0004 93.33%,1.0003 94.29%,1.0003 95.24%,1.0002 96.19%,1.0002 97.14%,1.0002 98.1%,1.0001 99.05%,1 100%)}@media(prefers-reduced-motion:reduce){.oc-Accordion-module__trailing__Gnf84[data-oc-rotate=true]{transition:none;transform:none}}.oc-Accordion-module__details__x7mjA{min-block-size:0}.oc-Accordion-module__accordion__wD27Q[data-oc-animation=disabled] .oc-Accordion-module__summary__ORyIA,.oc-Accordion-module__accordion__wD27Q[data-oc-animation=disabled] .oc-Accordion-module__trailing__Gnf84{transition:none}.oc-Accordion-module__panelInner__YQXzI{display:flex;flex-direction:column;gap:var(--oc-space-item-gap-small);min-block-size:0;padding-block:0 var(--oc-cell-padding);padding-inline:0}.oc-Accordion-module__item__YNNr-:has([data-oc-component=accordion-summary][data-oc-fill-width=true]) [data-oc-part=panel-inner]{padding-inline:var(--oc-cell-padding-inline)}.oc-Accordion-module__description__bKdPX{font-size:calc(var(--oc-typo-size-label1) * var(--oc-typo-scale, 1));line-height:calc(var(--oc-typo-height-label1) * var(--oc-typo-scale, 1));letter-spacing:var(--oc-typo-spacing-label1);margin:0;color:var(--oc-color-theme-label-alternative)}.oc-Accordion-module__content__RyBzl{display:flex;flex-direction:column;gap:var(--oc-space-item-gap-small);min-inline-size:0}.oc-Accordion-module__normal__Fz83W{--oc-cell-divider-color: var(--oc-color-theme-line-normal-normal)}.oc-Accordion-module__neutral__eEyvY{--oc-cell-divider-color: var(--oc-color-theme-line-normal-neutral)}.oc-Accordion-module__alternative__HdOit{--oc-cell-divider-color: var(--oc-color-theme-line-normal-alternative)}.oc-Accordion-module__none__EiLem{--oc-cell-divider-color: transparent}
@@ -0,0 +1,320 @@
1
+ 'use client';
2
+ import { jsx as u, jsxs as k } from "react/jsx-runtime";
3
+ import { useRef as $, useState as E, useCallback as z, useId as J, useEffect as L, createContext as H, useContext as q } from "react";
4
+ import Q from "@orioncactuscorp/icons/orioncactus/ChevronDownTight";
5
+ import { MotionReveal as W } from "../../react/motion.js";
6
+ import X from "../Interaction/Interaction.js";
7
+ import { normalizeSlotIcon as V } from "../internal/slot.js";
8
+ import p from "./Accordion.module.scss.js";
9
+ const B = H(null), _ = H(
10
+ null
11
+ ), Y = 180;
12
+ function P(o) {
13
+ const t = q(B);
14
+ if (!t)
15
+ throw new Error(`${o} must be used within Accordion.`);
16
+ return t;
17
+ }
18
+ function j(o) {
19
+ const t = q(_);
20
+ if (!t)
21
+ throw new Error(`${o} must be used within AccordionItem.`);
22
+ return t;
23
+ }
24
+ function S(o, t) {
25
+ const e = Array.from(new Set(o.filter(Boolean)));
26
+ return t ? e : e.slice(0, 1);
27
+ }
28
+ function C(...o) {
29
+ return o.filter(Boolean).join(" ");
30
+ }
31
+ function O(o, t) {
32
+ typeof o == "function" ? o(t) : o && (o.current = t);
33
+ }
34
+ function Z(o) {
35
+ return o ? Array.from(
36
+ o.querySelectorAll(
37
+ '[data-oc-component="accordion-summary"]:not(:disabled)'
38
+ )
39
+ ).filter((t) => t.getAttribute("aria-hidden") !== "true") : [];
40
+ }
41
+ function oo({
42
+ root: o,
43
+ currentTarget: t,
44
+ key: e,
45
+ loopFocus: a
46
+ }) {
47
+ const m = Z(o), c = m.indexOf(t);
48
+ if (c < 0) return;
49
+ const d = m.length - 1;
50
+ let l = c;
51
+ e === "Home" ? l = 0 : e === "End" ? l = d : e === "ArrowDown" ? l = c === d ? a ? 0 : d : c + 1 : e === "ArrowUp" && (l = c === 0 ? a ? d : 0 : c - 1), m[l]?.focus();
52
+ }
53
+ function to(o) {
54
+ return o >= 2 && o <= 6;
55
+ }
56
+ function lo({
57
+ children: o,
58
+ className: t = "",
59
+ collapsible: e = !0,
60
+ defaultValue: a = [],
61
+ disabled: m = !1,
62
+ disableAnimation: c = !1,
63
+ divider: d = "alternative",
64
+ loopFocus: l = !0,
65
+ multiple: r = !0,
66
+ onValueChange: A,
67
+ ref: y,
68
+ value: f,
69
+ ...h
70
+ }) {
71
+ const I = $(null), x = f !== void 0, [b, v] = E(
72
+ () => S(a, r)
73
+ ), n = S(
74
+ x ? f : b,
75
+ r
76
+ ), D = (i) => {
77
+ I.current = i, O(y, i);
78
+ }, R = (i) => {
79
+ const g = S(i, r);
80
+ x || v(g), A?.(g);
81
+ }, w = (i) => {
82
+ if (m) return;
83
+ if (n.includes(i)) {
84
+ if (!e) return;
85
+ R(n.filter((N) => N !== i));
86
+ return;
87
+ }
88
+ R(r ? [...n, i] : [i]);
89
+ };
90
+ return /* @__PURE__ */ u(
91
+ B.Provider,
92
+ {
93
+ value: {
94
+ value: n,
95
+ collapsible: e,
96
+ disabled: m,
97
+ divider: d,
98
+ disableAnimation: c,
99
+ loopFocus: l,
100
+ rootRef: I,
101
+ toggleItem: w
102
+ },
103
+ children: /* @__PURE__ */ u(
104
+ "div",
105
+ {
106
+ ref: D,
107
+ className: C(p.accordion, p[d], t),
108
+ ...h,
109
+ "data-oc-component": "accordion",
110
+ "data-oc-disabled": m ? "true" : void 0,
111
+ "data-oc-divider": d,
112
+ "data-oc-animation": c ? "disabled" : void 0,
113
+ children: o
114
+ }
115
+ )
116
+ }
117
+ );
118
+ }
119
+ function uo({
120
+ children: o,
121
+ className: t = "",
122
+ disabled: e = !1,
123
+ divider: a,
124
+ ref: m,
125
+ value: c,
126
+ ...d
127
+ }) {
128
+ const l = P("AccordionItem"), r = J(), A = l.disabled || e, y = l.value.includes(c), f = a ?? l.divider, [h, I] = E(y), x = z((b) => {
129
+ I(
130
+ (v) => v === b ? v : b
131
+ );
132
+ }, []);
133
+ return /* @__PURE__ */ u(
134
+ _.Provider,
135
+ {
136
+ value: {
137
+ value: c,
138
+ open: y,
139
+ disabled: A,
140
+ divider: f,
141
+ summaryId: `${r}-summary`,
142
+ detailsId: `${r}-details`,
143
+ detailsPresent: h,
144
+ setDetailsPresent: x
145
+ },
146
+ children: /* @__PURE__ */ u(
147
+ "div",
148
+ {
149
+ ref: m,
150
+ className: C(p.item, t),
151
+ ...d,
152
+ "data-oc-component": "accordion-item",
153
+ "data-oc-disabled": A ? "true" : void 0,
154
+ "data-oc-divider": f,
155
+ "data-oc-state": y ? "open" : "closed",
156
+ children: o
157
+ }
158
+ )
159
+ }
160
+ );
161
+ }
162
+ function mo({
163
+ children: o,
164
+ className: t = "",
165
+ content: e,
166
+ description: a,
167
+ disabled: m = !1,
168
+ fillWidth: c = !1,
169
+ headingLevel: d = 3,
170
+ interactionVariant: l = "light",
171
+ leading: r,
172
+ onClick: A,
173
+ onKeyDown: y,
174
+ ref: f,
175
+ trailing: h,
176
+ type: I = "button",
177
+ verticalAlign: x = "top",
178
+ ...b
179
+ }) {
180
+ const v = P("AccordionSummary"), n = j("AccordionSummary"), D = $(n.open), [R, w] = E(
181
+ () => n.open ? 180 : 0
182
+ ), i = n.disabled || m, g = n.open && !v.collapsible, N = `h${to(d) ? d : 3}`, U = e ?? (a ? /* @__PURE__ */ k("span", { "data-oc-part": "text", children: [
183
+ /* @__PURE__ */ u("span", { "data-oc-part": "label", children: o }),
184
+ /* @__PURE__ */ u("span", { "data-oc-part": "description", children: a })
185
+ ] }) : o), K = V(r), T = h === void 0 ? /* @__PURE__ */ u(Q, { size: "custom" }) : h, F = V(T), G = h === void 0 ? {
186
+ "--oc-accordion-chevron-rotation": `${R}deg`
187
+ } : void 0, M = (s) => {
188
+ O(f, s);
189
+ };
190
+ return L(() => {
191
+ D.current !== n.open && (D.current = n.open, w(
192
+ (s) => s + Y
193
+ ));
194
+ }, [n.open]), /* @__PURE__ */ u(N, { className: p.header, "data-oc-part": "header", children: /* @__PURE__ */ k(
195
+ "button",
196
+ {
197
+ ref: M,
198
+ className: C(p.summary, t),
199
+ ...b,
200
+ type: I,
201
+ disabled: i,
202
+ "aria-disabled": i || g ? "true" : b["aria-disabled"],
203
+ "aria-expanded": n.open,
204
+ "aria-controls": n.open || n.detailsPresent ? n.detailsId : void 0,
205
+ id: n.summaryId,
206
+ onClick: (s) => {
207
+ A?.(s), !(s.defaultPrevented || i || g) && v.toggleItem(n.value);
208
+ },
209
+ onKeyDown: (s) => {
210
+ y?.(s), !(s.defaultPrevented || i) && (s.key === "ArrowDown" || s.key === "ArrowUp" || s.key === "Home" || s.key === "End") && (s.preventDefault(), oo({
211
+ root: v.rootRef.current,
212
+ currentTarget: s.currentTarget,
213
+ key: s.key,
214
+ loopFocus: v.loopFocus
215
+ }));
216
+ },
217
+ "data-oc-component": "accordion-summary",
218
+ "data-oc-disabled": i ? "true" : void 0,
219
+ "data-oc-fill-width": c ? "true" : "false",
220
+ "data-oc-state": n.open ? "open" : "closed",
221
+ "data-oc-vertical-align": x,
222
+ children: [
223
+ r ? /* @__PURE__ */ u("span", { "data-oc-part": "leading", children: K }) : null,
224
+ /* @__PURE__ */ u("span", { "data-oc-part": "content", children: U }),
225
+ T ? /* @__PURE__ */ u(
226
+ "span",
227
+ {
228
+ className: p.trailing,
229
+ "data-oc-part": "trailing",
230
+ "data-oc-rotate": h === void 0 ? "true" : void 0,
231
+ style: G,
232
+ children: F
233
+ }
234
+ ) : null,
235
+ i ? null : /* @__PURE__ */ u(X, { variant: l })
236
+ ]
237
+ }
238
+ ) });
239
+ }
240
+ function fo({
241
+ children: o,
242
+ className: t = "",
243
+ forceMount: e = !1,
244
+ ref: a,
245
+ region: m = !1,
246
+ role: c,
247
+ ...d
248
+ }) {
249
+ const l = P("AccordionDetails"), r = j("AccordionDetails"), { setDetailsPresent: A } = r, y = z(
250
+ (f) => {
251
+ O(a, f), A(f !== null);
252
+ },
253
+ [a, A]
254
+ );
255
+ return /* @__PURE__ */ u(
256
+ W,
257
+ {
258
+ ref: y,
259
+ className: C(p.details, t),
260
+ open: r.open,
261
+ forceMount: e,
262
+ disableAnimation: l.disableAnimation,
263
+ contentProps: {
264
+ className: p.panelInner,
265
+ "data-oc-part": "panel-inner"
266
+ },
267
+ ...d,
268
+ "aria-hidden": r.open ? void 0 : !0,
269
+ "aria-labelledby": r.summaryId,
270
+ id: r.detailsId,
271
+ inert: r.open ? void 0 : !0,
272
+ role: m ? "region" : c,
273
+ "data-oc-component": "accordion-details",
274
+ "data-oc-state": r.open ? "open" : "closed",
275
+ children: o
276
+ }
277
+ );
278
+ }
279
+ function po({
280
+ children: o,
281
+ className: t = "",
282
+ ref: e,
283
+ ...a
284
+ }) {
285
+ return /* @__PURE__ */ u(
286
+ "p",
287
+ {
288
+ ref: e,
289
+ className: C(p.description, t),
290
+ ...a,
291
+ "data-oc-component": "accordion-description",
292
+ children: o
293
+ }
294
+ );
295
+ }
296
+ function Ao({
297
+ children: o,
298
+ className: t = "",
299
+ ref: e,
300
+ ...a
301
+ }) {
302
+ return /* @__PURE__ */ u(
303
+ "div",
304
+ {
305
+ ref: e,
306
+ className: C(p.content, t),
307
+ ...a,
308
+ "data-oc-component": "accordion-content",
309
+ children: o
310
+ }
311
+ );
312
+ }
313
+ export {
314
+ Ao as AccordionContent,
315
+ po as AccordionDescription,
316
+ fo as AccordionDetails,
317
+ uo as AccordionItem,
318
+ mo as AccordionSummary,
319
+ lo as default
320
+ };
@@ -0,0 +1,31 @@
1
+ import './Accordion.css';const o = "oc-Accordion-module__accordion__wD27Q", n = "oc-Accordion-module__item__YNNr-", c = "oc-Accordion-module__summary__ORyIA", e = "oc-Accordion-module__header__AYOT5", _ = "oc-Accordion-module__trailing__Gnf84", t = "oc-Accordion-module__details__x7mjA", r = "oc-Accordion-module__panelInner__YQXzI", d = "oc-Accordion-module__description__bKdPX", i = "oc-Accordion-module__content__RyBzl", l = "oc-Accordion-module__normal__Fz83W", a = "oc-Accordion-module__neutral__eEyvY", m = "oc-Accordion-module__alternative__HdOit", s = "oc-Accordion-module__none__EiLem", u = {
2
+ accordion: o,
3
+ item: n,
4
+ summary: c,
5
+ header: e,
6
+ trailing: _,
7
+ details: t,
8
+ panelInner: r,
9
+ description: d,
10
+ content: i,
11
+ normal: l,
12
+ neutral: a,
13
+ alternative: m,
14
+ none: s
15
+ };
16
+ export {
17
+ o as accordion,
18
+ m as alternative,
19
+ i as content,
20
+ u as default,
21
+ d as description,
22
+ t as details,
23
+ e as header,
24
+ n as item,
25
+ a as neutral,
26
+ s as none,
27
+ l as normal,
28
+ r as panelInner,
29
+ c as summary,
30
+ _ as trailing
31
+ };
@@ -0,0 +1,6 @@
1
+ export * from '../ui/src/components/Accordion/index'
2
+ export {}
3
+ import _default from '../ui/src/components/Accordion/index'
4
+ export default _default
5
+ export * from '../ui/src/components/Accordion/index'
6
+ export {}
@@ -0,0 +1,9 @@
1
+ import { AccordionContent as r, AccordionDescription as i, AccordionDetails as n, AccordionItem as t, AccordionSummary as d, default as e } from "./Accordion/Accordion.js";
2
+ export {
3
+ r as AccordionContent,
4
+ i as AccordionDescription,
5
+ n as AccordionDetails,
6
+ t as AccordionItem,
7
+ d as AccordionSummary,
8
+ e as default
9
+ };
@@ -0,0 +1 @@
1
+ .oc-ActionArea-module__actionArea__jnxep{position:relative;display:flex;flex-direction:column;inline-size:100%;padding:var(--oc-action-area-padding-y) var(--oc-action-area-padding-x) var(--oc-action-area-padding-bottom);--oc-action-area-padding-x: var(--oc-space-section-padding-viewport-x);--oc-action-area-padding-y: var(--oc-space-section-padding-viewport-y);--oc-action-area-padding-bottom: var(--oc-action-area-padding-y);--oc-action-area-gap: var(--oc-space-item-gap-small);--oc-action-area-actions-gap: var(--oc-space-item-gap-small);--oc-action-area-background-color: var(--oc-color-theme-background-elevated-normal)}.oc-ActionArea-module__actionArea__jnxep:before{position:absolute;inset:0;z-index:0;background:linear-gradient(to bottom,transparent,var(--oc-action-area-background-color) 45%);opacity:0;content:"";pointer-events:none}.oc-ActionArea-module__actionArea__jnxep>*{position:relative;z-index:1}.oc-ActionArea-module__actionArea__jnxep[data-oc-background=true]:before{opacity:1}.oc-ActionArea-module__actionArea__jnxep[data-oc-has-extra=true]{border-block-start:1px solid var(--oc-color-theme-line-normal-neutral);background-color:var(--oc-action-area-background-color)}.oc-ActionArea-module__actionArea__jnxep [data-oc-part=extra-slot]{display:flex;flex-direction:column;align-items:center;margin-block-end:calc(var(--oc-action-area-gap) + var(--oc-action-area-padding-y))}.oc-ActionArea-module__actionArea__jnxep [data-oc-part=caption]{font-size:calc(var(--oc-typo-size-label2) * var(--oc-typo-scale, 1));line-height:calc(var(--oc-typo-height-label2) * var(--oc-typo-scale, 1));letter-spacing:var(--oc-typo-spacing-label2);font-weight:var(--oc-typo-weight-label2-normal);margin:0 0 var(--oc-space-item-gap-medium);color:var(--oc-color-theme-label-alternative);text-align:center}.oc-ActionArea-module__actionArea__jnxep [data-oc-part=actions]{display:flex;gap:var(--oc-action-area-actions-gap);min-width:0}.oc-ActionArea-module__actionArea__jnxep[data-oc-variant=strong] [data-oc-part=actions],.oc-ActionArea-module__actionArea__jnxep[data-oc-variant=cancel] [data-oc-part=actions]{flex-direction:column}.oc-ActionArea-module__actionArea__jnxep[data-oc-variant=neutral] [data-oc-part=actions]{flex-direction:row}.oc-ActionArea-module__actionArea__jnxep[data-oc-variant=neutral] [data-oc-part=actions]>[data-oc-action-area-button=true]{flex:1 1 0}.oc-ActionArea-module__actionArea__jnxep[data-oc-variant=neutral] [data-oc-part=actions]>[data-oc-action-area-button-variant=sub][data-oc-icon-only=true]{flex:0 0 auto}.oc-ActionArea-module__actionArea__jnxep[data-oc-variant=compact] [data-oc-part=actions]{flex-direction:row;justify-content:flex-end}.oc-ActionArea-module__actionArea__jnxep[data-oc-variant=compact] [data-oc-part=actions]:has(>[data-oc-action-area-button-variant=sub][data-oc-icon-only=true]){justify-content:space-between;inline-size:100%}.oc-ActionArea-module__actionArea__jnxep[data-oc-variant=compact] [data-oc-part=compact-row]{display:flex;align-items:center;justify-content:space-between;gap:var(--oc-space-item-gap-medium);min-width:0}.oc-ActionArea-module__actionArea__jnxep[data-oc-variant=compact] [data-oc-part=compact-slot]{display:flex;align-items:center;flex:1 1 auto;min-width:0}.oc-ActionArea-module__actionButton__fKHJQ{min-width:0}.oc-ActionArea-module__actionButton__fKHJQ[data-oc-component=text-button]{flex:0 0 auto;inline-size:fit-content;align-self:center}