@orioncactuscorp/ui 1.13.0 → 1.15.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 (158) hide show
  1. package/CHANGELOG.md +155 -0
  2. package/README.md +133 -36
  3. package/dist/components/BackgroundIconButton/BackgroundIconButton.css +1 -1
  4. package/dist/components/Button/Button.css +1 -1
  5. package/dist/components/CheckMark/CheckMark.js +19 -17
  6. package/dist/components/Checkbox/Checkbox.css +1 -1
  7. package/dist/components/Checkbox/Checkbox.js +38 -36
  8. package/dist/components/FloatingWindow/FloatingWindow.css +1 -0
  9. package/dist/components/FloatingWindow/FloatingWindow.js +693 -0
  10. package/dist/components/FloatingWindow/FloatingWindow.module.scss.js +17 -0
  11. package/dist/components/FloatingWindow/FloatingWindowManager.js +36 -0
  12. package/dist/components/FloatingWindow/contexts.js +25 -0
  13. package/dist/components/FloatingWindow/geometry.js +222 -0
  14. package/dist/components/FloatingWindow/stack.js +31 -0
  15. package/dist/components/FloatingWindow.d.ts +6 -0
  16. package/dist/components/FloatingWindow.js +18 -0
  17. package/dist/components/Interaction/Interaction.css +1 -1
  18. package/dist/components/Menu/Menu.css +1 -1
  19. package/dist/components/Menu/Menu.js +95 -87
  20. package/dist/components/Modal/Modal.css +1 -1
  21. package/dist/components/Modal/Modal.js +558 -723
  22. package/dist/components/Modal/Modal.module.scss.js +69 -60
  23. package/dist/components/Modal/initialFocus.js +11 -0
  24. package/dist/components/Modal/keyboardSession.js +104 -0
  25. package/dist/components/Modal/snapPoints.js +95 -82
  26. package/dist/components/Modal/useModalDrag.js +730 -762
  27. package/dist/components/Modal/useModalKeyboardAvoidance.js +159 -0
  28. package/dist/components/Modal/useModalViewportGeometry.js +36 -0
  29. package/dist/components/PositionSnap/PositionSnap.css +1 -0
  30. package/dist/components/PositionSnap/PositionSnap.js +330 -0
  31. package/dist/components/PositionSnap/PositionSnap.module.scss.js +9 -0
  32. package/dist/components/PositionSnap/contexts.js +12 -0
  33. package/dist/components/PositionSnap/geometry.js +75 -0
  34. package/dist/components/PositionSnap/gesture.js +7 -0
  35. package/dist/components/PositionSnap/policy.js +60 -0
  36. package/dist/components/PositionSnap.d.ts +6 -0
  37. package/dist/components/PositionSnap.js +7 -0
  38. package/dist/components/ProgressIndicator/ProgressIndicator.css +1 -0
  39. package/dist/components/ProgressIndicator/ProgressIndicator.js +45 -0
  40. package/dist/components/ProgressIndicator/ProgressIndicator.module.scss.js +13 -0
  41. package/dist/components/ProgressIndicator.d.ts +6 -0
  42. package/dist/components/ProgressIndicator.js +4 -0
  43. package/dist/components/Radio/Radio.css +1 -1
  44. package/dist/components/Radio/Radio.js +26 -24
  45. package/dist/components/Switch/Switch.css +1 -1
  46. package/dist/components/Switch/Switch.js +18 -16
  47. package/dist/components/Tabs/Tabs.css +1 -1
  48. package/dist/components/Tooltip/Tooltip.css +1 -1
  49. package/dist/components/Tooltip/Tooltip.js +59 -56
  50. package/dist/components/Tooltip/Tooltip.module.scss.js +6 -4
  51. package/dist/components/internal/ModalPresentation.js +361 -0
  52. package/dist/components/internal/OverlayPortalContext.js +20 -0
  53. package/dist/index.js +135 -112
  54. package/dist/styles.css +13 -10
  55. package/dist/ui/src/components/CheckMark/CheckMark.d.ts +1 -1
  56. package/dist/ui/src/components/CheckMark/CheckMark.d.ts.map +1 -1
  57. package/dist/ui/src/components/CheckMark/types.d.ts +2 -1
  58. package/dist/ui/src/components/CheckMark/types.d.ts.map +1 -1
  59. package/dist/ui/src/components/Checkbox/Checkbox.d.ts +1 -1
  60. package/dist/ui/src/components/Checkbox/Checkbox.d.ts.map +1 -1
  61. package/dist/ui/src/components/Checkbox/types.d.ts +2 -1
  62. package/dist/ui/src/components/Checkbox/types.d.ts.map +1 -1
  63. package/dist/ui/src/components/FloatingWindow/FloatingWindow.d.ts +32 -0
  64. package/dist/ui/src/components/FloatingWindow/FloatingWindow.d.ts.map +1 -0
  65. package/dist/ui/src/components/FloatingWindow/FloatingWindowManager.d.ts +4 -0
  66. package/dist/ui/src/components/FloatingWindow/FloatingWindowManager.d.ts.map +1 -0
  67. package/dist/ui/src/components/FloatingWindow/contexts.d.ts +36 -0
  68. package/dist/ui/src/components/FloatingWindow/contexts.d.ts.map +1 -0
  69. package/dist/ui/src/components/FloatingWindow/geometry.d.ts +31 -0
  70. package/dist/ui/src/components/FloatingWindow/geometry.d.ts.map +1 -0
  71. package/dist/ui/src/components/FloatingWindow/index.d.ts +4 -0
  72. package/dist/ui/src/components/FloatingWindow/index.d.ts.map +1 -0
  73. package/dist/ui/src/components/FloatingWindow/stack.d.ts +9 -0
  74. package/dist/ui/src/components/FloatingWindow/stack.d.ts.map +1 -0
  75. package/dist/ui/src/components/FloatingWindow/types.d.ts +121 -0
  76. package/dist/ui/src/components/FloatingWindow/types.d.ts.map +1 -0
  77. package/dist/ui/src/components/Interaction/index.d.ts +1 -1
  78. package/dist/ui/src/components/Interaction/index.d.ts.map +1 -1
  79. package/dist/ui/src/components/Interaction/types.d.ts +9 -1
  80. package/dist/ui/src/components/Interaction/types.d.ts.map +1 -1
  81. package/dist/ui/src/components/Menu/Menu.d.ts +2 -2
  82. package/dist/ui/src/components/Menu/Menu.d.ts.map +1 -1
  83. package/dist/ui/src/components/Menu/types.d.ts +9 -2
  84. package/dist/ui/src/components/Menu/types.d.ts.map +1 -1
  85. package/dist/ui/src/components/Modal/Modal.d.ts +2 -2
  86. package/dist/ui/src/components/Modal/Modal.d.ts.map +1 -1
  87. package/dist/ui/src/components/Modal/contexts.d.ts +3 -0
  88. package/dist/ui/src/components/Modal/contexts.d.ts.map +1 -1
  89. package/dist/ui/src/components/Modal/initialFocus.d.ts +18 -0
  90. package/dist/ui/src/components/Modal/initialFocus.d.ts.map +1 -0
  91. package/dist/ui/src/components/Modal/keyboardSession.d.ts +46 -0
  92. package/dist/ui/src/components/Modal/keyboardSession.d.ts.map +1 -0
  93. package/dist/ui/src/components/Modal/snapPoints.d.ts.map +1 -1
  94. package/dist/ui/src/components/Modal/types.d.ts +17 -2
  95. package/dist/ui/src/components/Modal/types.d.ts.map +1 -1
  96. package/dist/ui/src/components/Modal/useModalDrag.d.ts.map +1 -1
  97. package/dist/ui/src/components/Modal/useModalKeyboardAvoidance.d.ts +17 -0
  98. package/dist/ui/src/components/Modal/useModalKeyboardAvoidance.d.ts.map +1 -0
  99. package/dist/ui/src/components/Modal/useModalViewportGeometry.d.ts +9 -0
  100. package/dist/ui/src/components/Modal/useModalViewportGeometry.d.ts.map +1 -0
  101. package/dist/ui/src/components/PositionSnap/PositionSnap.d.ts +11 -0
  102. package/dist/ui/src/components/PositionSnap/PositionSnap.d.ts.map +1 -0
  103. package/dist/ui/src/components/PositionSnap/contexts.d.ts +17 -0
  104. package/dist/ui/src/components/PositionSnap/contexts.d.ts.map +1 -0
  105. package/dist/ui/src/components/PositionSnap/geometry.d.ts +31 -0
  106. package/dist/ui/src/components/PositionSnap/geometry.d.ts.map +1 -0
  107. package/dist/ui/src/components/PositionSnap/gesture.d.ts +2 -0
  108. package/dist/ui/src/components/PositionSnap/gesture.d.ts.map +1 -0
  109. package/dist/ui/src/components/PositionSnap/index.d.ts +3 -0
  110. package/dist/ui/src/components/PositionSnap/index.d.ts.map +1 -0
  111. package/dist/ui/src/components/PositionSnap/policy.d.ts +24 -0
  112. package/dist/ui/src/components/PositionSnap/policy.d.ts.map +1 -0
  113. package/dist/ui/src/components/PositionSnap/types.d.ts +31 -0
  114. package/dist/ui/src/components/PositionSnap/types.d.ts.map +1 -0
  115. package/dist/ui/src/components/ProgressIndicator/ProgressIndicator.d.ts +4 -0
  116. package/dist/ui/src/components/ProgressIndicator/ProgressIndicator.d.ts.map +1 -0
  117. package/dist/ui/src/components/ProgressIndicator/index.d.ts +3 -0
  118. package/dist/ui/src/components/ProgressIndicator/index.d.ts.map +1 -0
  119. package/dist/ui/src/components/ProgressIndicator/types.d.ts +17 -0
  120. package/dist/ui/src/components/ProgressIndicator/types.d.ts.map +1 -0
  121. package/dist/ui/src/components/Radio/Radio.d.ts +1 -1
  122. package/dist/ui/src/components/Radio/Radio.d.ts.map +1 -1
  123. package/dist/ui/src/components/Radio/types.d.ts +2 -1
  124. package/dist/ui/src/components/Radio/types.d.ts.map +1 -1
  125. package/dist/ui/src/components/Switch/Switch.d.ts +1 -1
  126. package/dist/ui/src/components/Switch/Switch.d.ts.map +1 -1
  127. package/dist/ui/src/components/Switch/types.d.ts +2 -1
  128. package/dist/ui/src/components/Switch/types.d.ts.map +1 -1
  129. package/dist/ui/src/components/Tooltip/Tooltip.d.ts +1 -1
  130. package/dist/ui/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  131. package/dist/ui/src/components/Tooltip/types.d.ts +6 -0
  132. package/dist/ui/src/components/Tooltip/types.d.ts.map +1 -1
  133. package/dist/ui/src/components/internal/ModalPresentation.d.ts +62 -0
  134. package/dist/ui/src/components/internal/ModalPresentation.d.ts.map +1 -0
  135. package/dist/ui/src/components/internal/OverlayPortalContext.d.ts +10 -0
  136. package/dist/ui/src/components/internal/OverlayPortalContext.d.ts.map +1 -0
  137. package/dist/ui/src/index.d.ts +7 -1
  138. package/dist/ui/src/index.d.ts.map +1 -1
  139. package/dist/ui/src/utils/motion.d.ts.map +1 -1
  140. package/dist/utils/motion.js +194 -135
  141. package/docs/api-conventions.md +4 -0
  142. package/docs/motion.md +4 -0
  143. package/docs/overlay-stacking.md +48 -0
  144. package/docs/responsive-foundation-profile.md +1 -1
  145. package/docs/scss-helpers.md +110 -5
  146. package/docs/selector-contract.md +126 -2
  147. package/docs/tokens.md +2 -0
  148. package/package.json +1 -1
  149. package/src/scss/foundations/atomic.scss +9 -8
  150. package/src/scss/index.scss +2 -0
  151. package/src/scss/mixins/_fluid.scss +57 -0
  152. package/src/scss/mixins/_fluid.test.ts +87 -0
  153. package/src/scss/mixins/_gradient.scss +99 -0
  154. package/src/scss/mixins/_gradient.test.ts +111 -0
  155. package/src/scss/mixins/_responsive.scss +2 -1
  156. package/src/scss/mixins/_typo.scss +2 -1
  157. package/src/scss/mixins/_units.scss +14 -0
  158. package/src/scss/mixins/_utils.scss +3 -22
package/CHANGELOG.md CHANGED
@@ -1,5 +1,160 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.15.0
4
+
5
+ ### Changes
6
+
7
+ <!-- generated:start -->
8
+
9
+ _Commit range: `@orioncactuscorp/ui@1.14.0..HEAD`_
10
+
11
+ #### Documentation
12
+
13
+ - `c368e6e` docs(storybook): add scrollable anchor window example
14
+
15
+ #### Maintenance
16
+
17
+ - `4153d0c` chore(deps): bump actions/checkout from 7.0.0 to 7.0.1 (#233)
18
+
19
+ #### Other
20
+
21
+ - `908a248` 채워진 컨트롤 색상 계약 추가 (#250)
22
+ - `58ee8ed` Interaction 강도 커스터마이즈 개선 (#249)
23
+ - `b27a713` 중첩 오버레이 스태킹 개선 (#251)
24
+ - `5ffc130` Changesets v3 릴리스 파이프라인 마이그레이션 (#247)
25
+ - `479ef83` iOS Safari Modal 키보드 viewport 보정 (#248)
26
+ - `38834bb` Interaction 상태 레이어 색 계약 정리 (#253)
27
+ - `227bb35` Modal 키보드 회피 내부 구조 정리 (#252)
28
+ - `f5087ae` Progress Indicator 컴포넌트 추가 (#254)
29
+ - `ac7c17a` Easing gradient·mask 공용 유틸 추가 (#255)
30
+ - `5afca2d` oc-fluid SCSS helper 추가 (#257)
31
+ - `f4395d5` PositionSnap 공용 스냅 프리미티브 추가 (#256)
32
+ - `5e2ad3e` Safari BackgroundIconButton 원형 렌더링 보정 (#260)
33
+ - `f65d9c2` Alert 반복 거부 피드백 재생 보완 (#261)
34
+ <!-- generated:end -->
35
+
36
+ ### Minor Changes
37
+
38
+ - f5087ae: 알려진 범위의 작업 및 단계 진행률을 표시하는 `ProgressIndicator`를 추가합니다. `value`/`max`, 세 가지 선 두께, 접근 가능한 이름, semantic color와 oc-motion 기반 길이 전환을 지원합니다. `ModalHeader bottomContent`로 진행률이나 navigation chrome을 배치하면 Modal이 측정된 header 높이와 size별 body 시작 간격을 자동으로 예약하며, 직계 `ProgressIndicator`는 header edge에 맞춰 radius를 제거합니다.
39
+
40
+ Migration Notes: 없음
41
+
42
+ - f4395d5: Button 같은 임의의 콘텐츠를 viewport 또는 element 경계의 논리 방향 위치로 드래그하고 안착시킬 수 있는 `PositionSnap` compound component를 추가합니다. controlled/uncontrolled position, content/handle drag, spring release, RTL 방향을 지원하며 Modal popup은 같은 geometry와 release 정책을 재사용합니다.
43
+
44
+ Migration Notes:
45
+ - 기존 Modal `snapPositions`, `snapPosition`, `defaultSnapPosition`, `onSnapPositionChange` API와 물리 방향 position 이름은 변경되지 않습니다.
46
+ - Modal이 아닌 콘텐츠에는 `PositionSnap.Root`, `PositionSnap.Positioner`, 선택적인 `PositionSnap.Handle`을 조합하고 논리 방향 position 이름을 사용하세요.
47
+
48
+ - ac7c17a: 색 변화율에 smoothstep easing을 적용하는 `oc-easing-gradient` 함수와 시작·끝 fade 길이 및 전체 content 길이를 CSS 변수로 조정할 수 있는 `oc-gradient-mask` mixin을 추가합니다. 2D scroll content는 `oc-gradient-mask-edges`로 상하좌우 fade를 독립적으로 조정하고 block·inline mask를 교차 합성할 수 있습니다. Tabs overflow mask는 동일한 scroll·RTL·`oc-motion` 동작을 유지하면서 새 easing gradient를 사용합니다.
49
+
50
+ Migration Notes: 기존 Tabs 사용 코드는 변경할 필요가 없습니다. 새 helper는 `@orioncactuscorp/ui/scss/mixins/gradient`에서 import합니다.
51
+
52
+ - 58ee8ed: Interaction 강도를 host 범위에서 선택할 수 있는 `data-oc-interaction-variant="light|normal|strong"` selector와 `--oc-interaction-opacity-factor` CSS 변수 계약을 추가합니다. 커스텀 host 타입에는 공개된 `InteractionHostProps`를 재사용할 수 있고, Button, ActionArea, Alert, form control, Menu portal을 포함한 합성 경로에서도 같은 계약이 적용되며 기존 `Interaction variant`와 `--oc-interaction-opacity-*` 출력값은 유지됩니다.
53
+
54
+ Migration Notes:
55
+ - 기존 사용 변경 없음
56
+ - 색을 커스텀한 컴포넌트 또는 합성 영역의 Interaction 강도를 함께 바꾸려면 host에 `data-oc-interaction-variant`를 설정하세요.
57
+
58
+ - 5afca2d: `oc-fluid()` SCSS helper를 추가해 최소값, 최대값, 기준 viewport, anchor를 조합한 fluid length 값을 생성할 수 있도록 합니다.
59
+ - `anchor` 기본값은 `to`이며 `$breakpoint-md` 같은 Sass breakpoint 변수와 `375px` 같은 직접 viewport 값을 지원합니다.
60
+ - 기존 `fluidClamp()` 호출은 호환성을 위해 유지합니다.
61
+ - Migration Notes: 신규 커스텀 fluid 값은 `scss/mixins/fluid`의 `oc-fluid()`를 사용합니다.
62
+
63
+ ### Patch Changes
64
+
65
+ - 908a248: Checkbox, Radio, Switch, BackgroundIconButton의 채워진 배경색과 전경색을 component contract CSS 변수로 노출합니다. 기본 색상은 유지하면서 consumer가 내부 상태 selector를 복제하지 않고 두 색을 함께 재정의할 수 있습니다.
66
+ - b27a713: Modal과 FloatingWindow 안의 Menu·Tooltip이 가장 가까운 surface를 portal boundary로 사용하도록 overlay stacking을 개선합니다. MenuContent와 TooltipContent에 명시적 container override를 추가하고 z-index 의미 단계와 중첩 규칙을 문서화합니다.
67
+
68
+ Migration Notes:
69
+ - Modal 또는 FloatingWindow 안의 Menu·Tooltip portal DOM이 document body가 아니라 owner surface 아래에 배치됩니다. body 직계 자식 selector에 의존한 consumer CSS는 `data-oc-*` selector 또는 명시적 `container` prop으로 전환해야 합니다.
70
+
71
+ - 227bb35: Modal 키보드 회피 세션 해제를 고정 지연 대신 실행 중인 transform transition 감지 기반으로 전환합니다. `--oc-motion-*` 토큰으로 chase 모션이 느려져도 키보드 정리 시점에 스냅이 생기지 않으며, `getAnimations` 미지원 환경은 기존 fallback 지연으로 동작합니다. 내부적으로 키보드 세션 상태 전이가 순수 reducer 모듈로 정리되었고 공개 API 변경은 없습니다.
72
+
73
+ Migration Notes:
74
+ - 없음 — Modal 공개 API와 selector 계약 변경 없이 키보드 세션 해제 타이밍을 개선합니다.
75
+
76
+ - 38834bb: `--oc-interaction-color`를 host와 하위 Interaction의 공개 상태 레이어 색 계약으로 문서화합니다. 전역 theme token이 아닌 host-scoped override 경계를 명시하고, Button의 기본 fallback을 `label-normal`로 정리하면서 solid/outlined와 variant별 기존 렌더링 결과는 유지합니다.
77
+ - f65d9c2: Alert의 바깥 배경 닫기 거부 피드백이 반복 입력에서도 다시 재생되도록 보완합니다.
78
+ - 479ef83: 모바일(iOS Safari/Chrome, Android Chrome)에서 소프트 키보드가 열리고 닫힐 때 Modal bottom sheet의 키보드 대응을 개선합니다. 키보드 geometry를 sheet motion으로 추격해 footer와 컨테이너가 끊김 없이 이동하고, footer 배경이 키보드 위 브라우저 chrome 영역까지 채워지며, 직전 실측 키보드 높이로 포커스 필드를 선제 노출해 배경 페이지 스크롤/pan과 흔들림을 방지합니다. blur 없이 키보드만 닫는 경우(Android back 제스처 등)에도 하단 예약 공간이 해제됩니다. viewport 레이어에 내부 지향 상태 attribute `data-oc-modal-keyboard-avoiding="true"`가 추가됩니다.
79
+
80
+ Migration Notes:
81
+ - 없음 — 기존 Modal API 변경 없이 키보드가 표시된 모바일 viewport 배치와 전환 품질을 개선합니다.
82
+
83
+ - 5e2ad3e: Safari에서 `BackgroundIconButton` 배경 레이어가 네모로 렌더링될 수 있는 경우에도 원형 반지름 fallback을 유지합니다.
84
+
85
+ Migration Notes:
86
+ - 없음
87
+
88
+ ### Migration Notes
89
+
90
+ - Modal 또는 FloatingWindow 안의 Menu·Tooltip portal DOM이 document body가 아니라 owner surface 아래에 배치됩니다. body 직계 자식 selector에 의존한 consumer CSS는 `data-oc-*` selector 또는 명시적 `container` prop으로 전환해야 합니다.
91
+ - Modal이 아닌 콘텐츠에는 `PositionSnap.Root`, `PositionSnap.Positioner`, 선택적인 `PositionSnap.Handle`을 조합하고 논리 방향 position 이름을 사용하세요. 기존 Modal snap API와 물리 방향 position 이름은 변경되지 않습니다.
92
+ - 새 fluid/gradient helper를 사용하는 consumer는 `@orioncactuscorp/ui/scss/mixins/fluid`의 `oc-fluid()`와 `@orioncactuscorp/ui/scss/mixins/gradient`를 import하세요. 기존 `fluidClamp()`와 Tabs 사용 코드는 변경할 필요가 없습니다.
93
+ - 색을 커스텀한 컴포넌트 또는 합성 영역의 Interaction 강도를 함께 바꾸려면 host에 `data-oc-interaction-variant`를 설정하세요. 기존 사용에는 변경이 없습니다.
94
+
95
+ ## 1.14.0
96
+
97
+ ### Changes
98
+
99
+ <!-- generated:start -->
100
+
101
+ _Commit range: `@orioncactuscorp/ui@1.13.0..HEAD`_
102
+
103
+ #### Other
104
+
105
+ - `0f92eea` FloatingWindow 컴포넌트 추가 (#235)
106
+ - `e44c0e4` 모달 초기 포커스 정책 개선 (#236)
107
+ - `95cca4e` 0 duration 모션 즉시 완료 처리 (#234)
108
+ - `a94819d` FloatingWindow 다중 창 관리자 추가 (#237)
109
+ - `3582939` Modal·FloatingWindow 프레젠테이션 일원화 (#238)
110
+ <!-- generated:end -->
111
+
112
+ ### Minor Changes
113
+
114
+ - e44c0e4: Modal과 ModalWindow가 DOM상 첫 control 대신 등록된 title을 기본 초기 focus로 사용하도록 개선하고, `auto`, `title`, `first-interactive` focus preset을 추가합니다. modeless FloatingWindow는 열릴 때 현재 focus를 유지합니다.
115
+
116
+ Migration Notes:
117
+ - 기본 Modal/ModalWindow 초기 focus가 Header close button에서 title로 변경됩니다. 첫 tabbable 요소가 필요한 경우 `initialFocus="first-interactive"`를 지정하세요.
118
+ - `initialFocus="content"`는 호환용으로 유지되지만 신규 구현은 `title` 또는 구체적인 ref/function을 우선하세요.
119
+
120
+ - 0f92eea: trigger/명시적 anchor 기준 collision-aware 배치, 자유 drag 전환, viewport 경계 보정을 지원하는 `FloatingWindow`와 동일 geometry에 Modal 기본 presentation, popup scale/fade motion 및 focus trap을 연결하는 `ModalWindowRoot`를 추가합니다. ModalWindow backdrop은 기본적으로 표시하지 않으며 명시적으로 활성화할 수 있습니다.
121
+
122
+ Migration Notes:
123
+ - 없음
124
+
125
+ - a94819d: 다중 FloatingWindow의 등록, 활성화 순서, modality 우선순위, 최상단 dismissal과 modal focus handoff를 조정하는 `FloatingWindowManager`를 추가합니다.
126
+
127
+ FloatingWindow의 modeless와 modal Root가 동일한 Modal popup surface 진입·종료 모션을 사용하도록 motion ownership을 surface로 일원화하고, Header와 NavigationSection을 대체형 top chrome 계약으로 명확히 합니다.
128
+
129
+ `ModalWindowRoot`는 Modal과 동일하게 backdrop을 기본 표시해 배경 pointer 입력을 차단합니다.
130
+
131
+ 비활성 modeless window의 Close는 창을 최상단으로 올리지 않고 기존 stack 위치에서 종료 모션을 실행합니다.
132
+
133
+ FloatingWindowContent에 Modal과 동일한 `resize="fixed"` surface와 body scroll state 연동을 추가하고, Footer의 ActionArea 조합이 scroll 경계에 맞춰 동작하도록 개선합니다.
134
+
135
+ Migration Notes:
136
+ - 다중 창을 사용할 때 `FloatingWindowManager`로 root들을 감싸고 각 root에 고유한 `windowId`를 지정합니다.
137
+ - `FloatingWindowHeader`와 `FloatingWindowNavigationSection`은 함께 사용하지 않고 필요한 top chrome 하나를 선택합니다.
138
+ - 단일 창과 Manager 밖의 기존 사용법은 변경되지 않습니다.
139
+
140
+ ### Patch Changes
141
+
142
+ - 95cca4e: motion duration 또는 duration factor가 `0`일 때 Accordion과 Modal의 런타임 spring을 시작하지 않고 최종 상태로 즉시 완료하도록 수정합니다. 음수, 비유한 값, 잘못된 CSS multiplier 형식은 runtime 설정 오류로 명확히 거부합니다.
143
+ - 3582939: Modal surface가 header의 overlay positioning과 stacking을 명시적으로 소유하도록 우선순위를 보강해, CSS Module 주입 순서와 무관하게 FloatingWindow의 header, body, footer가 같은 열에 정렬되고 header drag가 유지되도록 수정합니다.
144
+
145
+ FloatingWindowClose에 custom render 구성을 추가해 ActionArea 같은 임의의 버튼도 Root의 기본 dismiss 및 exit lifecycle을 유지하며 창을 닫을 수 있습니다.
146
+
147
+ Migration Notes:
148
+ - 없음
149
+
150
+ ### Migration Notes
151
+
152
+ - 기본 Modal/ModalWindow 초기 focus가 Header close button에서 title로 변경됩니다. 첫 tabbable 요소가 필요한 경우 `initialFocus="first-interactive"`를 지정하세요.
153
+ - `initialFocus="content"`는 호환용으로 유지되지만 신규 구현은 `title` 또는 구체적인 ref/function을 우선하세요.
154
+ - 다중 창을 사용할 때 `FloatingWindowManager`로 root들을 감싸고 각 root에 고유한 `windowId`를 지정합니다.
155
+ - `FloatingWindowHeader`와 `FloatingWindowNavigationSection`은 함께 사용하지 않고 필요한 top chrome 하나를 선택합니다.
156
+ - 단일 창과 Manager 밖의 기존 사용법은 변경되지 않습니다.
157
+
3
158
  ## 1.13.0
4
159
 
5
160
  ### Changes
package/README.md CHANGED
@@ -72,28 +72,30 @@ export default function Example() {
72
72
 
73
73
  ## Documentation
74
74
 
75
- 이 패키지는 상세 가이드를 `docs/`로 함께 배포합니다. 설치 후 `node_modules/@orioncactuscorp/ui/docs/`에서 설치 버전과 일치하는 문서를 바로 읽을 수 있고, 웹에서는 `https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.13.0/docs/<파일명>`으로 볼 수 있습니다.
76
-
77
- | 문서 | 내용 |
78
- | -------------------------------------------------------------- | ------------------------------------------------------------------------ |
79
- | [API Naming Conventions][api-conventions] | `variant`, `appearance`, `size` prop의 역할과 명명 규칙 |
80
- | [Selector Contract][selector-contract] | `data-oc-*` 기반 커스터마이즈 계약 — 컴포넌트별 selector/slot/state 표 |
81
- | [Semantic Colors][colors] | 57개 semantic color의 역할, light/dark 기본값, pairing 규칙 |
82
- | [Typography][typography] | 19개 variant의 용도, responsive stop, line-height, weight |
83
- | [SCSS Helpers][scss-helpers] | `oc-border`, `oc-radius`, `oc-alpha`, `typo`, `respond-to`, `fluidClamp` |
84
- | [Semantic Motion][motion] | intent/phase/pace 기반 motion 계약과 reduced-motion 정책 |
85
- | [Spring Motion][spring] | iOS perceptual duration 기반 spring transition |
86
- | [Responsive Foundation Profile][responsive-foundation-profile] | typo/space responsive 출력 mode 컴파일 설정 |
87
- | [Token Reference][tokens] | `--oc-*` foundation 토큰 전체 목록 |
88
- | [Stability Policy][stability] | 공개 계약 범위, SemVer 기준, deprecation 절차 |
89
- | [Editor Setup][editor-setup] | VS Code CSS 변수 자동완성 설정 |
75
+ 이 패키지는 상세 가이드를 `docs/`로 함께 배포합니다. 설치 후 `node_modules/@orioncactuscorp/ui/docs/`에서 설치 버전과 일치하는 문서를 바로 읽을 수 있고, 웹에서는 `https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.15.0/docs/<파일명>`으로 볼 수 있습니다.
76
+
77
+ | 문서 | 내용 |
78
+ | -------------------------------------------------------------- | ---------------------------------------------------------------------- |
79
+ | [API Naming Conventions][api-conventions] | `variant`, `appearance`, `size` prop의 역할과 명명 규칙 |
80
+ | [Selector Contract][selector-contract] | `data-oc-*` 기반 커스터마이즈 계약 — 컴포넌트별 selector/slot/state 표 |
81
+ | [Semantic Colors][colors] | 57개 semantic color의 역할, light/dark 기본값, pairing 규칙 |
82
+ | [Typography][typography] | 19개 variant의 용도, responsive stop, line-height, weight |
83
+ | [SCSS Helpers][scss-helpers] | `oc-border`, `oc-radius`, `oc-alpha`, `oc-fluid`, `typo`, `respond-to` |
84
+ | [Semantic Motion][motion] | intent/phase/pace 기반 motion 계약과 reduced-motion 정책 |
85
+ | [Spring Motion][spring] | iOS perceptual duration 기반 spring transition |
86
+ | [Responsive Foundation Profile][responsive-foundation-profile] | typo/space responsive 출력 mode 컴파일 설정 |
87
+ | [Overlay Stacking][overlay-stacking] | z-index 의미 단계와 중첩 portal boundary 규칙 |
88
+ | [Token Reference][tokens] | `--oc-*` foundation 토큰 전체 목록 |
89
+ | [Stability Policy][stability] | 공개 계약 범위, SemVer 기준, deprecation 절차 |
90
+ | [Editor Setup][editor-setup] | VS Code CSS 변수 자동완성 설정 |
90
91
 
91
92
  ## Components
92
93
 
93
94
  - `SectionHeader`
94
95
  - `Button`, `TextButton`, `IconButton`, `BackgroundIconButton`
96
+ - `PositionSnap`, `PositionSnapRoot`, `PositionSnapPositioner`, `PositionSnapHandle`
95
97
  - `ActionArea`, `ActionAreaButton`, `ActionAreaLayout`
96
- - `Badge`, `Background`, `Divider`, `Loading`, `Skeleton`, `Cell`, `CellItem`
98
+ - `Badge`, `Background`, `Divider`, `Loading`, `ProgressIndicator`, `Skeleton`, `Cell`, `CellItem`
97
99
  - `CheckMark`
98
100
  - `Field`, `FieldLabel`, `FieldControl`, `FieldMessage`, `FieldErrorMessage` (`vertical`/`horizontal` orientation)
99
101
  - `Fieldset`, `FieldLegend`, `FieldsetContent`, `FieldGroup`
@@ -107,10 +109,100 @@ export default function Example() {
107
109
  - `Accordion`, `AccordionItem`, `AccordionSummary`, `AccordionDetails`, `AccordionDescription`, `AccordionContent`
108
110
  - `TabsRoot`, `TabsList`, `TabsTab`, `TabsPanel`
109
111
  - `Modal`, `ModalRoot`, `ModalTrigger`, `ModalContent`, `ModalHeader`, `ModalNavigationSection`, `ModalBody`, `ModalFooter`, `ModalClose`
112
+ - `FloatingWindow`, `FloatingWindowManager`, `FloatingWindowRoot`, `ModalWindowRoot`, `FloatingWindowTrigger`, `FloatingWindowContent`, `FloatingWindowDragHandle`, `FloatingWindowHeader`, `FloatingWindowNavigationSection`, `FloatingWindowBody`, `FloatingWindowFooter`, `FloatingWindowTitle`, `FloatingWindowDescription`, `FloatingWindowClose`
110
113
  - `TooltipProvider`, `TooltipRoot`, `TooltipTrigger`, `TooltipContent`
111
114
  - `ScrollArea`, `ScrollAreaContainer`
112
115
  - `SvgIcon`, `Interaction`
113
116
 
117
+ ### PositionSnap
118
+
119
+ `PositionSnap`은 Button 같은 독립 control을 viewport 또는 지정한 element의 named position 사이에서 드래그해 안착시키는 compound component입니다. `Positioner`가 위치 transform을 소유하므로 내부 Button의 transform과 interaction 표현은 유지됩니다. `drag="content"`는 Positioner 전체에서, `drag="handle"`은 명시한 `PositionSnapHandle`에서만 drag를 시작합니다.
120
+
121
+ ```tsx
122
+ import { Button, PositionSnap } from '@orioncactuscorp/ui';
123
+
124
+ <PositionSnap.Root
125
+ positions={['block-end-inline-start', 'block-end-inline-end']}
126
+ defaultPosition='block-end-inline-end'
127
+ >
128
+ <PositionSnap.Positioner>
129
+ <Button>도움말</Button>
130
+ </PositionSnap.Positioner>
131
+ </PositionSnap.Root>;
132
+ ```
133
+
134
+ - `position`, `defaultPosition`, `onPositionChange`로 controlled/uncontrolled 상태를 구성합니다.
135
+ - 기본 boundary는 visual viewport이며 `boundary`에 element를 전달하면 해당 영역 안에서 안착합니다.
136
+ - `boundaryPadding`은 boundary와 control 사이의 최소 여백입니다.
137
+ - Modal의 popup `snapPositions`는 같은 position geometry와 release 정책을 사용하지만 backdrop, dismissal, scroll arbitration은 Modal이 계속 소유합니다.
138
+
139
+ ### Modal initial focus
140
+
141
+ Modal은 DOM 순서의 첫 control을 기계적으로 선택하지 않습니다. 기본 `initialFocus="auto"`는 `ModalHeader`의 title을 `tabIndex={-1}`인 정적 문맥 시작점으로 포커스하고, title이 없을 때만 첫 tabbable 요소로 fallback합니다. modeless surface는 현재 작업 포커스를 유지합니다.
142
+
143
+ - 일반 Modal과 `ModalWindowRoot`는 같은 초기 포커스 정책을 공유합니다.
144
+ - form은 ref/function으로 첫 입력을, 단순 진행 dialog는 주요 action을 명시할 수 있습니다.
145
+ - 되돌리기 어려운 확인 dialog는 취소처럼 가장 덜 파괴적인 action을 ref로 지정하세요.
146
+ - `initialFocus="first-interactive"`는 첫 tabbable 요소, `initialFocus="title"`은 등록된 title을 명시합니다.
147
+ - `initialFocus="content"`는 dialog container를 포커스하는 호환용 escape hatch입니다. 신규 사용은 title 또는 구체적인 ref/function을 우선하세요.
148
+
149
+ ### FloatingWindow
150
+
151
+ `FloatingWindowRoot`는 trigger 또는 명시적 anchor를 기준으로 collision-aware 배치되는 modeless dialog가 기본입니다. `ModalWindowRoot`는 같은 geometry에 focus trap, 배경 입력을 차단하는 backdrop, Modal popup scale/fade motion을 적용합니다. 필요한 경우에만 `FloatingWindowContent backdrop="hidden"`으로 dimmer를 숨길 수 있으며 modal focus와 배경 inert 정책은 유지됩니다. Header, Body, Footer, NavigationSection은 Modal 기본 presentation을 공유합니다.
152
+
153
+ ```tsx
154
+ import {
155
+ FloatingWindowBody,
156
+ FloatingWindowContent,
157
+ FloatingWindowFooter,
158
+ FloatingWindowHeader,
159
+ FloatingWindowManager,
160
+ FloatingWindowRoot,
161
+ FloatingWindowTrigger,
162
+ ActionArea,
163
+ ActionAreaButton,
164
+ } from '@orioncactuscorp/ui';
165
+
166
+ <FloatingWindowManager>
167
+ <FloatingWindowRoot windowId='notes'>
168
+ <FloatingWindowTrigger>메모 열기</FloatingWindowTrigger>
169
+ <FloatingWindowContent placement='rightTop' resize='fixed'>
170
+ <FloatingWindowHeader title='프로젝트 메모' />
171
+ <FloatingWindowBody>임의 콘텐츠</FloatingWindowBody>
172
+ <FloatingWindowFooter>
173
+ <ActionArea variant='neutral'>
174
+ <ActionAreaButton priority='alternative'>취소</ActionAreaButton>
175
+ <ActionAreaButton priority='main'>저장</ActionAreaButton>
176
+ </ActionArea>
177
+ </FloatingWindowFooter>
178
+ </FloatingWindowContent>
179
+ </FloatingWindowRoot>
180
+ </FloatingWindowManager>;
181
+ ```
182
+
183
+ - modeless 창은 외부 pointer 작업으로 닫히지 않으며 Escape와 명시적 close로 닫습니다.
184
+ - `placement` 또는 `side` + `alignment`는 trigger 기준 배치를 정합니다. `placement`를 지정하면 `side`와 `alignment`보다 우선합니다.
185
+ - 기본 collision 정책은 주축 `flip`, 정렬축 `shift`입니다. 따라서 오른쪽 공간이 부족한 `right` 창은 왼쪽으로 전환되고, 아래 공간이 부족한 `bottom` 창은 위쪽으로 전환됩니다.
186
+ - `anchor`로 trigger 대신 element, ref, resolver 함수를 기준점으로 사용할 수 있습니다. 열려 있는 anchored window는 anchor가 크기 변화 없이 layout에서 이동해도 좌표를 다시 맞춥니다.
187
+ - 창을 drag하면 anchor에서 분리되어 free window가 됩니다. `position`은 controlled 자유 좌표, `defaultPosition`은 처음부터 분리된 초기 좌표입니다.
188
+ - `onPositionChange`는 anchor 재배치, drag, viewport 보정 중 좌표 변경을 알리고, `onPositionCommit`은 drag 종료 좌표를 저장할 때 사용합니다.
189
+ - `collisionBoundary`는 기본 viewport이며 특정 element를 전달하면 해당 element의 화면상 rect를 배치·이동 경계로 사용합니다.
190
+ - 기본 `dragHandleVisibility={48}`은 viewport 높이가 줄어도 drag handle의 48px을 남겨 창을 복구할 수 있게 합니다.
191
+ - `resize="fixed"`는 Modal popup과 같은 고정 높이 surface를 사용합니다. Body가 넘치면 내부만 스크롤되고 Header와 Footer의 경계 상태가 자동 갱신됩니다.
192
+ - Footer의 기본 action 조합은 Modal과 동일하게 `ActionArea`와 `ActionAreaButton`을 사용합니다.
193
+ - `ModalWindowRoot`는 배경을 inert 처리하고 focus를 가두는 application modal입니다. 배경 pointer 작업만 허용하고 focus는 창에 유지해야 하면 `FloatingWindowRoot modal='trap-focus'`를 사용합니다.
194
+ - modeless `FloatingWindowRoot`는 기본적으로 현재 focus를 유지하며, `ModalWindowRoot`는 Modal과 동일하게 등록된 title을 초기 focus로 사용합니다. `initialFocus`를 명시하면 두 root 모두 해당 정책을 우선합니다.
195
+ - `FloatingWindowClose`의 접근성 이름은 명시한 `aria-label`을 우선하고, 없으면 `label`(기본값 `닫기`)을 사용합니다.
196
+ - `FloatingWindowHeader`와 `FloatingWindowNavigationSection`은 surface 최상단을 소유하는 대체형 chrome입니다. Navigation을 사용할 때는 title이 기본적으로 dialog 접근성 이름을 제공합니다.
197
+ - Header와 명시적인 `FloatingWindowDragHandle`에서 drag를 시작할 수 있습니다. 내부 interactive element는 자동 제외되며 custom interactive target은 `data-oc-window-no-drag`를 선언할 수 있습니다.
198
+ - `FloatingWindowManager`는 열린 창을 등록하고 open, pointer, focus 활성화 순서에 따라 stack level을 정규화합니다. Manager 안의 각 root에는 고유한 `windowId`가 필요합니다.
199
+ - Escape와 outside dismissal은 활성 창 하나에만 적용됩니다. 활성 창의 종료 모션이 끝나면 바로 아래 창이 활성화되며, 개별 창의 geometry나 position 저장은 Manager가 소유하지 않습니다.
200
+ - 비활성 modeless 창의 명시적 Close는 창을 활성화하거나 최상단으로 올리지 않고 현재 stack 위치에서 종료합니다.
201
+ - modeless 창의 활성화는 stacking만 변경하며 포커스를 강제로 이동하지 않습니다. 닫힐 때의 포커스 복원은 각 Dialog trigger 계약을 따릅니다.
202
+ - modal과 `trap-focus` 창은 focus isolation을 보호하기 위해 modeless 창보다 위에 유지됩니다. 같은 modality tier 안에서는 최근 활성화한 창이 위로 이동합니다.
203
+ - focus-owning 창이 여러 개 열리면 활성 창 하나만 실제 modal/inert owner가 됩니다. 아래 modal은 요청한 modality와 stack tier를 유지한 채 대기하고, 위 창 종료 후 focus isolation을 승계합니다.
204
+ - Manager 밖에서는 기존 단일 창 동작을 유지합니다. `onActivate`, `stackLevel`은 외부 coordinator를 위한 unmanaged escape hatch이며 Manager 안에서는 자동 stack level이 우선합니다.
205
+
114
206
  ## Customization
115
207
 
116
208
  컴포넌트 커스터마이즈는 CSS Module 해시가 아니라 안정 data attribute와 component contract 변수를 사용합니다.
@@ -308,14 +400,18 @@ SCSS foundation profile은 compile-time 설정입니다. Prebuilt `foundations.c
308
400
 
309
401
  SCSS mixin/function 전체 시그니처와 예시는 [SCSS Helpers 가이드][scss-helpers]를 참조하세요. 아래는 대표 helper 요약입니다.
310
402
 
311
- | Helper | 모듈 | 용도 |
312
- | ---------------------------------- | ------------------------ | ----------------------------------------------------------------------- |
313
- | `oc-border(...)` | `scss/mixins/element` | layout에 영향 없는 box-shadow surface stroke (side/placement 지정 가능) |
314
- | `oc-radius($radius)` | `scss/mixins/radius` | 컴포넌트 로컬 radius를 전역 radius factor에 연결 |
315
- | `oc-alpha($color, $opacity)` | `scss/mixins/color` | CSS 변수 색상에도 동작하는 `color-mix` 기반 알파 |
316
- | `@include typo($variant, $weight)` | `scss/mixins/typo` | typo 토큰 조합 출력 (`--oc-typo-size-factor` 반영) |
317
- | `@include respond-to(...)` | `scss/mixins/breakpoint` | breakpoint media query (named/직접 값/구간) |
318
- | `fluidClamp(...)`, `toRem($px)` | `scss/mixins/utils` | 커스텀 fluid 생성 |
403
+ | Helper | 모듈 | 용도 |
404
+ | -------------------------------------- | ------------------------ | ----------------------------------------------------------------------- |
405
+ | `oc-border(...)` | `scss/mixins/element` | layout에 영향 없는 box-shadow surface stroke (side/placement 지정 가능) |
406
+ | `oc-radius($radius)` | `scss/mixins/radius` | 컴포넌트 로컬 radius를 전역 radius factor에 연결 |
407
+ | `oc-alpha($color, $opacity)` | `scss/mixins/color` | CSS 변수 색상에도 동작하는 `color-mix` 기반 알파 |
408
+ | `oc-easing-gradient(...)` | `scss/mixins/gradient` | smoothstep 변화율을 적용한 4방향 linear gradient |
409
+ | `@include oc-gradient-mask(...)` | `scss/mixins/gradient` | fade 길이와 content 길이를 조정하는 양끝 gradient mask |
410
+ | `@include oc-gradient-mask-edges(...)` | `scss/mixins/gradient` | 2D scroll content의 네 edge를 교차 합성하는 gradient mask |
411
+ | `@include typo($variant, $weight)` | `scss/mixins/typo` | typo 토큰 조합 출력 (`--oc-typo-size-factor` 반영) |
412
+ | `@include respond-to(...)` | `scss/mixins/breakpoint` | breakpoint media query (named/직접 값/구간) |
413
+ | `oc-fluid(...)` | `scss/mixins/fluid` | 커스텀 fluid 값 생성 |
414
+ | `fluidClamp(...)`, `toRem($px)` | `scss/mixins/utils` | 기존 fluid 호출 호환 및 px→rem 변환 |
319
415
 
320
416
  `@orioncactuscorp/ui/scss/mixins/element`는 요소 표면을 구성할 때 쓰는 SCSS helper를 제공합니다.
321
417
 
@@ -552,15 +648,16 @@ GitHub 리포지터리 공개를 준비하고 있습니다. 그동안 의견이
552
648
  <!-- 버전은 `bun run agent:sync-version`이 릴리스마다 stamp합니다. 직접 수정하지 마세요. -->
553
649
 
554
650
  [storybook]: https://oc-ui-storybook.pages.dev
555
- [changelog]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.13.0/CHANGELOG.md
556
- [api-conventions]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.13.0/docs/api-conventions.md
557
- [selector-contract]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.13.0/docs/selector-contract.md
558
- [colors]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.13.0/docs/colors.md
559
- [typography]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.13.0/docs/typography.md
560
- [scss-helpers]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.13.0/docs/scss-helpers.md
561
- [motion]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.13.0/docs/motion.md
562
- [spring]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.13.0/docs/spring.md
563
- [responsive-foundation-profile]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.13.0/docs/responsive-foundation-profile.md
564
- [tokens]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.13.0/docs/tokens.md
565
- [stability]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.13.0/docs/stability.md
566
- [editor-setup]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.13.0/docs/editor-setup.md
651
+ [changelog]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.15.0/CHANGELOG.md
652
+ [api-conventions]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.15.0/docs/api-conventions.md
653
+ [selector-contract]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.15.0/docs/selector-contract.md
654
+ [colors]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.15.0/docs/colors.md
655
+ [typography]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.15.0/docs/typography.md
656
+ [scss-helpers]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.15.0/docs/scss-helpers.md
657
+ [motion]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.15.0/docs/motion.md
658
+ [spring]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.15.0/docs/spring.md
659
+ [responsive-foundation-profile]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.15.0/docs/responsive-foundation-profile.md
660
+ [overlay-stacking]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.15.0/docs/overlay-stacking.md
661
+ [tokens]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.15.0/docs/tokens.md
662
+ [stability]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.15.0/docs/stability.md
663
+ [editor-setup]: https://cdn.jsdelivr.net/npm/@orioncactuscorp/ui@1.15.0/docs/editor-setup.md
@@ -1 +1 @@
1
- .oc-BackgroundIconButton-module__backgroundIconButton__up7D1{position:relative;display:inline-flex;align-items:center;justify-content:center;appearance:none;border:none;background-color:transparent;padding:0;cursor:pointer;text-decoration:none;color:inherit;will-change:transform;transition:transform calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1{-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;--oc-interaction-inset-x: -.25rem;--oc-interaction-inset-y: -.25rem;--oc-interaction-radius: var(--oc-atomic-radius-max);--oc-interaction-scale: 1;--oc-interaction-time: .225s;--oc-interaction-z-index: 3;--oc-background-icon-button-blend-opacity: var(--oc-color-global-opacity-8);--oc-background-icon-button-size: 1.5rem;--oc-background-icon-button-webkit-blend-opacity: .2;width:var(--oc-background-icon-button-size);height:var(--oc-background-icon-button-size);transition:transform calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1{transition:none;transform:none}}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:active:not(:disabled,[aria-disabled=true]){transform:scale(max(0,1 + (.95 - 1) * var(--oc-motion-scale-factor-feedback)))}@media(prefers-reduced-motion:reduce){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:active:not(:disabled,[aria-disabled=true]){transform:none}}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:focus-visible:not(:disabled,[aria-disabled=true])>[data-oc-component=interaction]{opacity:var(--oc-interaction-opacity-focus);transform:scale(1)}@media(hover:hover){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:hover:not(:disabled,[aria-disabled=true])>[data-oc-component=interaction]{opacity:var(--oc-interaction-opacity-hover);transform:scale(1)}}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:active:not(:disabled,[aria-disabled=true])>[data-oc-component=interaction]{opacity:var(--oc-interaction-opacity-active);transform:scale(1)}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__normal__pYVrG) [data-oc-part=icon]{color:var(--oc-color-theme-static-black);opacity:var(--oc-color-global-opacity-43)}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__normal__pYVrG) [data-oc-part=background]{background-color:transparent}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__normal__pYVrG) [data-oc-part=background]:after{background-color:var(--oc-color-theme-static-white);mix-blend-mode:plus-lighter;opacity:var(--oc-color-global-opacity-35)}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__normal__pYVrG) [data-oc-part=background]:before{background-color:rgb(0,0,0,var(--oc-background-icon-button-blend-opacity));mix-blend-mode:multiply}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__primary__n6x6u) [data-oc-part=icon]{color:var(--oc-color-theme-static-white)}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__primary__n6x6u) [data-oc-part=background]{background-color:var(--oc-color-theme-primary-normal)}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=background]{position:absolute;inset-block-start:-.25rem;inset-inline-start:-.25rem;z-index:0;width:100%;height:100%;padding:.25rem;box-sizing:content-box;-webkit-backdrop-filter:blur(var(--oc-atomic-blur-normal)) saturate(150%) brightness(150%);backdrop-filter:blur(var(--oc-atomic-blur-normal)) saturate(150%) brightness(150%);border-radius:var(--oc-atomic-radius-max);overflow:hidden;transition:background-color calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=background]{transition-property:background-color;transition-duration:calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor-reduced) * var(--oc-motion-pace-normal) * 1);transition-timing-function:var(--oc-motion-timing-feedback)}}@supports (-webkit-backdrop-filter: none){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=background]{clip-path:inset(0 round var(--oc-atomic-radius-max));overflow:auto;border-radius:0}}@supports (-moz-appearance: none){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=background]{clip-path:inset(0 round var(--oc-atomic-radius-max));overflow:auto;border-radius:0}}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=background]:before{content:"";position:absolute;inset-block-start:0;inset-inline-start:0;z-index:1;width:100%;height:100%;transition:background-color calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback),opacity calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=background]:before{transition-property:background-color,opacity;transition-duration:calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor-reduced) * var(--oc-motion-pace-normal) * 1);transition-timing-function:var(--oc-motion-timing-feedback)}}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=background]:after{content:"";position:absolute;inset-block-start:0;inset-inline-start:0;z-index:0;width:100%;height:100%;transition:background-color calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback),opacity calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=background]:after{transition-property:background-color,opacity;transition-duration:calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor-reduced) * var(--oc-motion-pace-normal) * 1);transition-timing-function:var(--oc-motion-timing-feedback)}}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=icon]{display:inline-flex;align-items:center;justify-content:center;width:var(--oc-background-icon-button-size);height:var(--oc-background-icon-button-size);z-index:1;transition:color calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback),opacity calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=icon]{transition-property:color,opacity;transition-duration:calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor-reduced) * var(--oc-motion-pace-normal) * 1);transition-timing-function:var(--oc-motion-timing-feedback)}}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=icon]>svg{padding:.125rem}@supports (-webkit-backdrop-filter: none){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__normal__pYVrG) [data-oc-part=icon]{color:var(--oc-color-global-coolNeutral-50);opacity:var(--oc-color-global-opacity-61);mix-blend-mode:plus-darker}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__normal__pYVrG) [data-oc-part=background]{-webkit-backdrop-filter:blur(var(--oc-atomic-blur-normal)) saturate(150%) brightness(200%);backdrop-filter:blur(var(--oc-atomic-blur-normal)) saturate(150%) brightness(200%)}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__normal__pYVrG) [data-oc-part=background]:before{background-color:#000;opacity:calc(var(--oc-background-icon-button-webkit-blend-opacity) + var(--oc-background-icon-button-webkit-blend-opacity-add, 0))}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__normal__pYVrG) [data-oc-part=background]:after{mix-blend-mode:normal}}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__alternative__YA8Jv) [data-oc-part=icon]{color:var(--oc-color-theme-static-white);opacity:var(--oc-color-global-opacity-88);mix-blend-mode:normal}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__alternative__YA8Jv) [data-oc-part=background]{background-color:color-mix(in srgb,var(--oc-color-global-coolNeutral-30),transparent calc(100% - (100% * var(--oc-color-global-opacity-61))));-webkit-backdrop-filter:none;backdrop-filter:none}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__alternative__YA8Jv) [data-oc-part=background]:before,.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__alternative__YA8Jv) [data-oc-part=background]:after{background-color:transparent;mix-blend-mode:normal;opacity:1}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:disabled,.oc-BackgroundIconButton-module__backgroundIconButton__up7D1[aria-disabled=true]{cursor:not-allowed}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:disabled [data-oc-part=icon],.oc-BackgroundIconButton-module__backgroundIconButton__up7D1[aria-disabled=true] [data-oc-part=icon]{color:var(--oc-color-theme-label-disable);opacity:1;mix-blend-mode:normal}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:disabled [data-oc-part=background],.oc-BackgroundIconButton-module__backgroundIconButton__up7D1[aria-disabled=true] [data-oc-part=background]{background-color:var(--oc-color-theme-interaction-disable);-webkit-backdrop-filter:none;backdrop-filter:none}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:disabled [data-oc-part=background]:before,.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:disabled [data-oc-part=background]:after,.oc-BackgroundIconButton-module__backgroundIconButton__up7D1[aria-disabled=true] [data-oc-part=background]:before,.oc-BackgroundIconButton-module__backgroundIconButton__up7D1[aria-disabled=true] [data-oc-part=background]:after{background-color:transparent;mix-blend-mode:normal;opacity:1}
1
+ .oc-BackgroundIconButton-module__backgroundIconButton__up7D1{position:relative;display:inline-flex;align-items:center;justify-content:center;appearance:none;border:none;background-color:transparent;padding:0;cursor:pointer;text-decoration:none;color:inherit;will-change:transform;transition:transform calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1{-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;--oc-interaction-inset-x: -.25rem;--oc-interaction-inset-y: -.25rem;--oc-interaction-radius: var(--oc-atomic-radius-max);--oc-interaction-scale: 1;--oc-interaction-time: .225s;--oc-interaction-z-index: 3;--oc-background-icon-button-blend-opacity: var(--oc-color-global-opacity-8);--oc-background-icon-button-background-color: transparent;--oc-background-icon-button-color: var(--oc-color-theme-static-black);--oc-background-icon-button-radius: min(50%, var(--oc-atomic-radius-max));--oc-background-icon-button-size: 1.5rem;--oc-background-icon-button-webkit-blend-opacity: .2;width:var(--oc-background-icon-button-size);height:var(--oc-background-icon-button-size);transition:transform calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1{transition:none;transform:none}}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:active:not(:disabled,[aria-disabled=true]){transform:scale(max(0,1 + (.95 - 1) * var(--oc-motion-scale-factor-feedback)))}@media(prefers-reduced-motion:reduce){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:active:not(:disabled,[aria-disabled=true]){transform:none}}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:focus-visible:not(:disabled,[aria-disabled=true])>[data-oc-component=interaction]{opacity:var(--oc-interaction-opacity-focus);transform:scale(1)}@media(hover:hover){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:hover:not(:disabled,[aria-disabled=true])>[data-oc-component=interaction]{opacity:var(--oc-interaction-opacity-hover);transform:scale(1)}}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:active:not(:disabled,[aria-disabled=true])>[data-oc-component=interaction]{opacity:var(--oc-interaction-opacity-active);transform:scale(1)}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__normal__pYVrG){--oc-background-icon-button-background-color: transparent;--oc-background-icon-button-color: var(--oc-color-theme-static-black)}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__normal__pYVrG) [data-oc-part=icon]{opacity:var(--oc-color-global-opacity-43)}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__normal__pYVrG) [data-oc-part=background]{background-color:transparent}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__normal__pYVrG) [data-oc-part=background]:after{background-color:var(--oc-color-theme-static-white);mix-blend-mode:plus-lighter;opacity:var(--oc-color-global-opacity-35)}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__normal__pYVrG) [data-oc-part=background]:before{background-color:rgb(0,0,0,var(--oc-background-icon-button-blend-opacity));mix-blend-mode:multiply}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__primary__n6x6u){--oc-background-icon-button-background-color: var(--oc-color-theme-primary-normal);--oc-background-icon-button-color: var(--oc-color-theme-static-white)}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=background]{position:absolute;inset-block-start:-.25rem;inset-inline-start:-.25rem;z-index:0;width:100%;height:100%;padding:.25rem;box-sizing:content-box;-webkit-backdrop-filter:blur(var(--oc-atomic-blur-normal)) saturate(150%) brightness(150%);backdrop-filter:blur(var(--oc-atomic-blur-normal)) saturate(150%) brightness(150%);border-radius:var(--oc-background-icon-button-radius);background-color:var(--oc-background-icon-button-background-color);overflow:hidden;transition:background-color calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=background]{transition-property:background-color;transition-duration:calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor-reduced) * var(--oc-motion-pace-normal) * 1);transition-timing-function:var(--oc-motion-timing-feedback)}}@supports (-webkit-backdrop-filter: none){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=background]{clip-path:inset(0 round var(--oc-background-icon-button-radius));overflow:auto;border-radius:var(--oc-background-icon-button-radius)}}@supports (-moz-appearance: none){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=background]{clip-path:inset(0 round var(--oc-background-icon-button-radius));overflow:auto;border-radius:var(--oc-background-icon-button-radius)}}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=background]:before{content:"";position:absolute;inset-block-start:0;inset-inline-start:0;z-index:1;width:100%;height:100%;transition:background-color calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback),opacity calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=background]:before{transition-property:background-color,opacity;transition-duration:calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor-reduced) * var(--oc-motion-pace-normal) * 1);transition-timing-function:var(--oc-motion-timing-feedback)}}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=background]:after{content:"";position:absolute;inset-block-start:0;inset-inline-start:0;z-index:0;width:100%;height:100%;transition:background-color calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback),opacity calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=background]:after{transition-property:background-color,opacity;transition-duration:calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor-reduced) * var(--oc-motion-pace-normal) * 1);transition-timing-function:var(--oc-motion-timing-feedback)}}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=icon]{display:inline-flex;align-items:center;justify-content:center;width:var(--oc-background-icon-button-size);height:var(--oc-background-icon-button-size);z-index:1;color:var(--oc-background-icon-button-color);transition:color calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback),opacity calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=icon]{transition-property:color,opacity;transition-duration:calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor-reduced) * var(--oc-motion-pace-normal) * 1);transition-timing-function:var(--oc-motion-timing-feedback)}}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1 [data-oc-part=icon]>svg{padding:.125rem}@supports (-webkit-backdrop-filter: none){.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__normal__pYVrG){--oc-background-icon-button-color: var(--oc-color-global-coolNeutral-50)}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__normal__pYVrG) [data-oc-part=icon]{opacity:var(--oc-color-global-opacity-61);mix-blend-mode:plus-darker}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__normal__pYVrG) [data-oc-part=background]{-webkit-backdrop-filter:blur(var(--oc-atomic-blur-normal)) saturate(150%) brightness(200%);backdrop-filter:blur(var(--oc-atomic-blur-normal)) saturate(150%) brightness(200%)}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__normal__pYVrG) [data-oc-part=background]:before{background-color:#000;opacity:calc(var(--oc-background-icon-button-webkit-blend-opacity) + var(--oc-background-icon-button-webkit-blend-opacity-add, 0))}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__normal__pYVrG) [data-oc-part=background]:after{mix-blend-mode:normal}}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__alternative__YA8Jv){--oc-background-icon-button-background-color: color-mix(in srgb, var(--oc-color-global-coolNeutral-30), transparent calc(100% - (100% * var(--oc-color-global-opacity-61))));--oc-background-icon-button-color: var(--oc-color-theme-static-white)}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__alternative__YA8Jv) [data-oc-part=icon]{opacity:var(--oc-color-global-opacity-88);mix-blend-mode:normal}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__alternative__YA8Jv) [data-oc-part=background]{-webkit-backdrop-filter:none;backdrop-filter:none}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__alternative__YA8Jv) [data-oc-part=background]:before,.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:where(.oc-BackgroundIconButton-module__alternative__YA8Jv) [data-oc-part=background]:after{background-color:transparent;mix-blend-mode:normal;opacity:1}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:disabled,.oc-BackgroundIconButton-module__backgroundIconButton__up7D1[aria-disabled=true]{--oc-background-icon-button-background-color: var(--oc-color-theme-interaction-disable);--oc-background-icon-button-color: var(--oc-color-theme-label-disable);cursor:not-allowed}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:disabled [data-oc-part=icon],.oc-BackgroundIconButton-module__backgroundIconButton__up7D1[aria-disabled=true] [data-oc-part=icon]{opacity:1;mix-blend-mode:normal}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:disabled [data-oc-part=background],.oc-BackgroundIconButton-module__backgroundIconButton__up7D1[aria-disabled=true] [data-oc-part=background]{-webkit-backdrop-filter:none;backdrop-filter:none}.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:disabled [data-oc-part=background]:before,.oc-BackgroundIconButton-module__backgroundIconButton__up7D1:disabled [data-oc-part=background]:after,.oc-BackgroundIconButton-module__backgroundIconButton__up7D1[aria-disabled=true] [data-oc-part=background]:before,.oc-BackgroundIconButton-module__backgroundIconButton__up7D1[aria-disabled=true] [data-oc-part=background]:after{background-color:transparent;mix-blend-mode:normal;opacity:1}
@@ -1 +1 @@
1
- .oc-Button-module__button__18Bed{position:relative;display:inline-flex;align-items:center;justify-content:center;appearance:none;border:none;background-color:transparent;padding:0;cursor:pointer;text-decoration:none;color:inherit;will-change:transform;transition:transform calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-Button-module__button__18Bed{transition:none;transform:none}}.oc-Button-module__button__18Bed{-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;font-size:calc(var(--oc-typo-size-body1) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-body1) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-body1);font-weight:var(--oc-typo-weight-body1-bold);display:inline-flex;position:relative;overflow:hidden;flex-direction:column;gap:0;box-shadow:inset 0 0 0 1px var(--oc-button-border-color, transparent);border-radius:var(--oc-button-radius);background-color:var(--oc-button-background-color);padding:var(--oc-button-padding-y) var(--oc-button-padding-x);min-block-size:calc(var(--oc-button-content-height) + var(--oc-button-padding-y) * 2);color:var(--oc-button-color);white-space:nowrap;transition:background-color calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback),box-shadow calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback),color calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback),transform calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-Button-module__button__18Bed{transition-property:background-color,box-shadow,color;transition-duration:calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor-reduced) * var(--oc-motion-pace-normal) * 1);transition-timing-function:var(--oc-motion-timing-feedback);transform:none}}.oc-Button-module__button__18Bed{--oc-button-padding-x: var(--oc-space-item-padding-medium);--oc-button-padding-y: var(--oc-space-item-padding-xsmall);--oc-button-content-height: var(--oc-typo-height-body1);--oc-button-control-size: calc(var(--oc-button-content-height) + (var(--oc-button-padding-y) * 2));--oc-button-gap: var(--oc-space-item-gap-tiny);--oc-button-label-padding-x: 0;--oc-button-radius: var(--oc-atomic-radius-small);--oc-interaction-radius: var(--oc-button-radius);--oc-button-background-color: var(--oc-color-theme-label-strong);--oc-button-color: var(--oc-color-theme-background-normal-normal);--oc-interaction-color: var(--oc-color-theme-background-normal-normal);--oc-button-border-color: var(--oc-color-theme-static-transparent);--oc-button-loading-color: var(--oc-color-theme-label-alternative);--oc-interaction-z-index: 1}.oc-Button-module__button__18Bed>[data-oc-part=content]{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;gap:var(--oc-button-gap);block-size:var(--oc-button-content-height)}.oc-Button-module__button__18Bed>[data-oc-part=loading]{position:absolute;z-index:3;inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;justify-content:center;inline-size:var(--oc-button-content-height);block-size:var(--oc-button-content-height);color:currentcolor;line-height:0;padding:.0625rem;pointer-events:none}.oc-Button-module__button__18Bed>[data-oc-part=loading]>[data-oc-component=loading]{--oc-loading-size: 100%;--oc-loading-color: var(--oc-button-loading-color)}.oc-Button-module__button__18Bed [data-oc-part=label]{display:inline-flex;align-items:center;justify-content:center;padding-inline:var(--oc-button-label-padding-x, 0)}.oc-Button-module__button__18Bed [data-oc-part=leading-icon],.oc-Button-module__button__18Bed [data-oc-part=trailing-icon],.oc-Button-module__button__18Bed [data-oc-part=icon]{display:inline-flex;align-items:center;justify-content:center;color:currentcolor}.oc-Button-module__button__18Bed [data-oc-part=leading-icon]>[data-oc-component=svg-icon],.oc-Button-module__button__18Bed [data-oc-part=trailing-icon]>[data-oc-component=svg-icon],.oc-Button-module__button__18Bed [data-oc-part=icon]>[data-oc-component=svg-icon]{inline-size:auto;block-size:var(--oc-button-icon-size, calc(1.5em - var(--oc-button-icon-padding-block, .125em) * 2))}@supports (block-size: 1lh){.oc-Button-module__button__18Bed [data-oc-part=leading-icon]>[data-oc-component=svg-icon],.oc-Button-module__button__18Bed [data-oc-part=trailing-icon]>[data-oc-component=svg-icon],.oc-Button-module__button__18Bed [data-oc-part=icon]>[data-oc-component=svg-icon]{block-size:var(--oc-button-icon-size, calc(1lh - var(--oc-button-icon-padding-block, .125em) * 2))}}.oc-Button-module__button__18Bed:focus-visible>[data-oc-component=interaction]{opacity:var(--oc-interaction-opacity-focus);transform:scale(1)}@media(hover:hover){.oc-Button-module__button__18Bed:hover:not(:disabled,[aria-disabled=true])>[data-oc-component=interaction]{opacity:var(--oc-interaction-opacity-hover);transform:scale(1)}}.oc-Button-module__button__18Bed:active:not(:disabled,[aria-disabled=true]){transform:scale(max(0,1 + (.9875 - 1) * var(--oc-motion-scale-factor-feedback)))}.oc-Button-module__button__18Bed:active:not(:disabled,[aria-disabled=true])>[data-oc-component=interaction]{opacity:var(--oc-interaction-opacity-active);transform:scale(1)}.oc-Button-module__button__18Bed:disabled,.oc-Button-module__button__18Bed[aria-disabled=true]{--oc-button-background-color: var(--oc-color-theme-interaction-disable);--oc-button-border-color: var(--oc-color-theme-static-transparent);--oc-button-color: var(--oc-color-theme-label-disable);--oc-button-loading-color: var(--oc-color-theme-label-disable);cursor:not-allowed}.oc-Button-module__button__18Bed:where(.oc-Button-module__medium__HYxwi){font-size:calc(var(--oc-typo-size-body2) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-body2) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-body2);font-weight:var(--oc-typo-weight-body2-bold);--oc-button-padding-x: var(--oc-space-item-padding-small);--oc-button-padding-y: var(--oc-space-item-padding-mini);--oc-button-icon-padding-block: .0625em}.oc-Button-module__button__18Bed:where(.oc-Button-module__small__zfmcP){font-size:calc(var(--oc-typo-size-label1) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-label1) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-label1);font-weight:var(--oc-typo-weight-label1-bold);--oc-button-padding-x: var(--oc-space-item-padding-xsmall);--oc-button-padding-y: var(--oc-space-item-padding-tiny);--oc-button-gap: var(--oc-space-item-gap-nano);--oc-button-label-padding-x: var(--oc-space-item-padding-atom);--oc-button-radius: var(--oc-atomic-radius-xsmall);--oc-button-icon-padding-block: .0625em}.oc-Button-module__button__18Bed:where(.oc-Button-module__xsmall__QS3d-){font-size:calc(var(--oc-typo-size-label1) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-label1) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-label1);font-weight:var(--oc-typo-weight-label1-bold);--oc-button-padding-x: var(--oc-space-item-padding-mini);--oc-button-padding-y: var(--oc-space-item-padding-tiny);--oc-button-content-height: var(--oc-typo-height-label1);--oc-button-gap: var(--oc-space-item-gap-atom);--oc-button-label-padding-x: var(--oc-space-item-padding-atom);--oc-button-radius: var(--oc-atomic-radius-mini)}.oc-Button-module__button__18Bed:where(.oc-Button-module__solid__yi-oB):where(.oc-Button-module__primary__st6yY){--oc-button-background-color: var(--oc-color-theme-primary-normal);--oc-button-color: var(--oc-color-theme-static-white);--oc-button-loading-color: var(--oc-color-theme-static-white);--oc-interaction-color: var(--oc-color-theme-label-normal)}.oc-Button-module__button__18Bed:where(.oc-Button-module__solid__yi-oB):where(.oc-Button-module__assistive__6KrCl){--oc-button-background-color: var(--oc-color-theme-fill-normal);--oc-button-color: var(--oc-color-theme-label-neutral);--oc-interaction-color: var(--oc-color-theme-label-neutral)}.oc-Button-module__button__18Bed:where(.oc-Button-module__solid__yi-oB):disabled,.oc-Button-module__button__18Bed:where(.oc-Button-module__solid__yi-oB)[aria-disabled=true]{--oc-button-background-color: var(--oc-color-theme-interaction-disable);--oc-button-border-color: var(--oc-color-theme-static-transparent);--oc-button-color: var(--oc-color-theme-label-disable);--oc-button-loading-color: var(--oc-color-theme-label-disable)}.oc-Button-module__button__18Bed:where(.oc-Button-module__outlined__f4ewH){--oc-button-background-color: transparent;--oc-button-border-color: var(--oc-color-theme-label-normal);--oc-button-color: var(--oc-color-theme-label-normal);--oc-interaction-color: var(--oc-color-theme-label-normal)}.oc-Button-module__button__18Bed:where(.oc-Button-module__outlined__f4ewH):where(.oc-Button-module__primary__st6yY){--oc-button-border-color: var(--oc-color-theme-primary-normal);--oc-button-color: var(--oc-color-theme-primary-normal);--oc-interaction-color: var(--oc-color-theme-primary-normal)}.oc-Button-module__button__18Bed:where(.oc-Button-module__outlined__f4ewH):where(.oc-Button-module__secondary__j-3rj){--oc-button-border-color: var(--oc-color-theme-line-normal-normal);--oc-button-color: var(--oc-color-theme-primary-normal);--oc-interaction-color: var(--oc-color-theme-label-normal)}.oc-Button-module__button__18Bed:where(.oc-Button-module__outlined__f4ewH):where(.oc-Button-module__assistive__6KrCl){--oc-button-border-color: var(--oc-color-theme-line-normal-normal);--oc-button-color: var(--oc-color-theme-label-neutral);--oc-interaction-color: var(--oc-color-theme-label-neutral);font-size:calc(var(--oc-typo-size-body1) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-body1) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-body1);font-weight:var(--oc-typo-weight-body1-medium)}.oc-Button-module__button__18Bed:where(.oc-Button-module__outlined__f4ewH):where(.oc-Button-module__assistive__6KrCl):where(.oc-Button-module__medium__HYxwi){font-size:calc(var(--oc-typo-size-body2) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-body2) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-body2);font-weight:var(--oc-typo-weight-body2-medium)}.oc-Button-module__button__18Bed:where(.oc-Button-module__outlined__f4ewH):where(.oc-Button-module__assistive__6KrCl):where(.oc-Button-module__small__zfmcP),.oc-Button-module__button__18Bed:where(.oc-Button-module__outlined__f4ewH):where(.oc-Button-module__assistive__6KrCl):where(.oc-Button-module__xsmall__QS3d-){font-size:calc(var(--oc-typo-size-label1) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-label1) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-label1);font-weight:var(--oc-typo-weight-label1-medium)}.oc-Button-module__button__18Bed:where(.oc-Button-module__outlined__f4ewH):disabled,.oc-Button-module__button__18Bed:where(.oc-Button-module__outlined__f4ewH)[aria-disabled=true]{--oc-button-background-color: var(--oc-color-theme-static-transparent);--oc-button-border-color: var(--oc-color-theme-line-normal-neutral);--oc-button-color: var(--oc-color-theme-label-disable);--oc-button-loading-color: var(--oc-color-theme-label-disable)}.oc-Button-module__button__18Bed:where(.oc-Button-module__loading__QfItr){cursor:progress}.oc-Button-module__button__18Bed:where(.oc-Button-module__loading__QfItr)>[data-oc-part=content]{visibility:hidden}.oc-Button-module__button__18Bed:where(.oc-Button-module__iconOnly__FNrSu){aspect-ratio:1;inline-size:var(--oc-button-control-size);padding-inline:var(--oc-button-padding-y)}.oc-Button-module__button__18Bed:where(.oc-Button-module__fullWidth__AHpSl){inline-size:100%}.oc-Button-module__button__18Bed:where(.oc-Button-module__iconOnly__FNrSu):where(.oc-Button-module__fullWidth__AHpSl){aspect-ratio:auto}@media(prefers-reduced-motion:reduce){.oc-Button-module__button__18Bed:active:not(:disabled,[aria-disabled=true]){transform:none}}
1
+ .oc-Button-module__button__18Bed{position:relative;display:inline-flex;align-items:center;justify-content:center;appearance:none;border:none;background-color:transparent;padding:0;cursor:pointer;text-decoration:none;color:inherit;will-change:transform;transition:transform calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-Button-module__button__18Bed{transition:none;transform:none}}.oc-Button-module__button__18Bed{-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;font-size:calc(var(--oc-typo-size-body1) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-body1) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-body1);font-weight:var(--oc-typo-weight-body1-bold);display:inline-flex;position:relative;overflow:hidden;flex-direction:column;gap:0;box-shadow:inset 0 0 0 1px var(--oc-button-border-color, transparent);border-radius:var(--oc-button-radius);background-color:var(--oc-button-background-color);padding:var(--oc-button-padding-y) var(--oc-button-padding-x);min-block-size:calc(var(--oc-button-content-height) + var(--oc-button-padding-y) * 2);color:var(--oc-button-color);white-space:nowrap;transition:background-color calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback),box-shadow calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback),color calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback),transform calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-Button-module__button__18Bed{transition-property:background-color,box-shadow,color;transition-duration:calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor-reduced) * var(--oc-motion-pace-normal) * 1);transition-timing-function:var(--oc-motion-timing-feedback);transform:none}}.oc-Button-module__button__18Bed{--oc-button-padding-x: var(--oc-space-item-padding-medium);--oc-button-padding-y: var(--oc-space-item-padding-xsmall);--oc-button-content-height: var(--oc-typo-height-body1);--oc-button-control-size: calc(var(--oc-button-content-height) + (var(--oc-button-padding-y) * 2));--oc-button-gap: var(--oc-space-item-gap-tiny);--oc-button-label-padding-x: 0;--oc-button-radius: var(--oc-atomic-radius-small);--oc-interaction-radius: var(--oc-button-radius);--oc-button-background-color: var(--oc-color-theme-label-strong);--oc-button-color: var(--oc-color-theme-background-normal-normal);--oc-interaction-color: var(--oc-color-theme-label-normal);--oc-button-border-color: var(--oc-color-theme-static-transparent);--oc-button-loading-color: var(--oc-color-theme-label-alternative);--oc-interaction-z-index: 1}.oc-Button-module__button__18Bed>[data-oc-part=content]{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;gap:var(--oc-button-gap);block-size:var(--oc-button-content-height)}.oc-Button-module__button__18Bed>[data-oc-part=loading]{position:absolute;z-index:3;inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%);display:inline-flex;align-items:center;justify-content:center;inline-size:var(--oc-button-content-height);block-size:var(--oc-button-content-height);color:currentcolor;line-height:0;padding:.0625rem;pointer-events:none}.oc-Button-module__button__18Bed>[data-oc-part=loading]>[data-oc-component=loading]{--oc-loading-size: 100%;--oc-loading-color: var(--oc-button-loading-color)}.oc-Button-module__button__18Bed [data-oc-part=label]{display:inline-flex;align-items:center;justify-content:center;padding-inline:var(--oc-button-label-padding-x, 0)}.oc-Button-module__button__18Bed [data-oc-part=leading-icon],.oc-Button-module__button__18Bed [data-oc-part=trailing-icon],.oc-Button-module__button__18Bed [data-oc-part=icon]{display:inline-flex;align-items:center;justify-content:center;color:currentcolor}.oc-Button-module__button__18Bed [data-oc-part=leading-icon]>[data-oc-component=svg-icon],.oc-Button-module__button__18Bed [data-oc-part=trailing-icon]>[data-oc-component=svg-icon],.oc-Button-module__button__18Bed [data-oc-part=icon]>[data-oc-component=svg-icon]{inline-size:auto;block-size:var(--oc-button-icon-size, calc(1.5em - var(--oc-button-icon-padding-block, .125em) * 2))}@supports (block-size: 1lh){.oc-Button-module__button__18Bed [data-oc-part=leading-icon]>[data-oc-component=svg-icon],.oc-Button-module__button__18Bed [data-oc-part=trailing-icon]>[data-oc-component=svg-icon],.oc-Button-module__button__18Bed [data-oc-part=icon]>[data-oc-component=svg-icon]{block-size:var(--oc-button-icon-size, calc(1lh - var(--oc-button-icon-padding-block, .125em) * 2))}}.oc-Button-module__button__18Bed:focus-visible>[data-oc-component=interaction]{opacity:var(--oc-interaction-opacity-focus);transform:scale(1)}@media(hover:hover){.oc-Button-module__button__18Bed:hover:not(:disabled,[aria-disabled=true])>[data-oc-component=interaction]{opacity:var(--oc-interaction-opacity-hover);transform:scale(1)}}.oc-Button-module__button__18Bed:active:not(:disabled,[aria-disabled=true]){transform:scale(max(0,1 + (.9875 - 1) * var(--oc-motion-scale-factor-feedback)))}.oc-Button-module__button__18Bed:active:not(:disabled,[aria-disabled=true])>[data-oc-component=interaction]{opacity:var(--oc-interaction-opacity-active);transform:scale(1)}.oc-Button-module__button__18Bed:disabled,.oc-Button-module__button__18Bed[aria-disabled=true]{--oc-button-background-color: var(--oc-color-theme-interaction-disable);--oc-button-border-color: var(--oc-color-theme-static-transparent);--oc-button-color: var(--oc-color-theme-label-disable);--oc-button-loading-color: var(--oc-color-theme-label-disable);cursor:not-allowed}.oc-Button-module__button__18Bed:where(.oc-Button-module__medium__HYxwi){font-size:calc(var(--oc-typo-size-body2) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-body2) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-body2);font-weight:var(--oc-typo-weight-body2-bold);--oc-button-padding-x: var(--oc-space-item-padding-small);--oc-button-padding-y: var(--oc-space-item-padding-mini);--oc-button-icon-padding-block: .0625em}.oc-Button-module__button__18Bed:where(.oc-Button-module__small__zfmcP){font-size:calc(var(--oc-typo-size-label1) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-label1) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-label1);font-weight:var(--oc-typo-weight-label1-bold);--oc-button-padding-x: var(--oc-space-item-padding-xsmall);--oc-button-padding-y: var(--oc-space-item-padding-tiny);--oc-button-gap: var(--oc-space-item-gap-nano);--oc-button-label-padding-x: var(--oc-space-item-padding-atom);--oc-button-radius: var(--oc-atomic-radius-xsmall);--oc-button-icon-padding-block: .0625em}.oc-Button-module__button__18Bed:where(.oc-Button-module__xsmall__QS3d-){font-size:calc(var(--oc-typo-size-label1) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-label1) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-label1);font-weight:var(--oc-typo-weight-label1-bold);--oc-button-padding-x: var(--oc-space-item-padding-mini);--oc-button-padding-y: var(--oc-space-item-padding-tiny);--oc-button-content-height: var(--oc-typo-height-label1);--oc-button-gap: var(--oc-space-item-gap-atom);--oc-button-label-padding-x: var(--oc-space-item-padding-atom);--oc-button-radius: var(--oc-atomic-radius-mini)}.oc-Button-module__button__18Bed:where(.oc-Button-module__solid__yi-oB){--oc-interaction-color: var(--oc-color-theme-background-normal-normal)}.oc-Button-module__button__18Bed:where(.oc-Button-module__solid__yi-oB):where(.oc-Button-module__primary__st6yY){--oc-button-background-color: var(--oc-color-theme-primary-normal);--oc-button-color: var(--oc-color-theme-static-white);--oc-button-loading-color: var(--oc-color-theme-static-white);--oc-interaction-color: var(--oc-color-theme-label-normal)}.oc-Button-module__button__18Bed:where(.oc-Button-module__solid__yi-oB):where(.oc-Button-module__assistive__6KrCl){--oc-button-background-color: var(--oc-color-theme-fill-normal);--oc-button-color: var(--oc-color-theme-label-neutral);--oc-interaction-color: var(--oc-color-theme-label-neutral)}.oc-Button-module__button__18Bed:where(.oc-Button-module__solid__yi-oB):disabled,.oc-Button-module__button__18Bed:where(.oc-Button-module__solid__yi-oB)[aria-disabled=true]{--oc-button-background-color: var(--oc-color-theme-interaction-disable);--oc-button-border-color: var(--oc-color-theme-static-transparent);--oc-button-color: var(--oc-color-theme-label-disable);--oc-button-loading-color: var(--oc-color-theme-label-disable)}.oc-Button-module__button__18Bed:where(.oc-Button-module__outlined__f4ewH){--oc-button-background-color: transparent;--oc-button-border-color: var(--oc-color-theme-label-normal);--oc-button-color: var(--oc-color-theme-label-normal);--oc-interaction-color: var(--oc-color-theme-label-normal)}.oc-Button-module__button__18Bed:where(.oc-Button-module__outlined__f4ewH):where(.oc-Button-module__primary__st6yY){--oc-button-border-color: var(--oc-color-theme-primary-normal);--oc-button-color: var(--oc-color-theme-primary-normal);--oc-interaction-color: var(--oc-color-theme-primary-normal)}.oc-Button-module__button__18Bed:where(.oc-Button-module__outlined__f4ewH):where(.oc-Button-module__secondary__j-3rj){--oc-button-border-color: var(--oc-color-theme-line-normal-normal);--oc-button-color: var(--oc-color-theme-primary-normal);--oc-interaction-color: var(--oc-color-theme-label-normal)}.oc-Button-module__button__18Bed:where(.oc-Button-module__outlined__f4ewH):where(.oc-Button-module__assistive__6KrCl){--oc-button-border-color: var(--oc-color-theme-line-normal-normal);--oc-button-color: var(--oc-color-theme-label-neutral);--oc-interaction-color: var(--oc-color-theme-label-neutral);font-size:calc(var(--oc-typo-size-body1) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-body1) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-body1);font-weight:var(--oc-typo-weight-body1-medium)}.oc-Button-module__button__18Bed:where(.oc-Button-module__outlined__f4ewH):where(.oc-Button-module__assistive__6KrCl):where(.oc-Button-module__medium__HYxwi){font-size:calc(var(--oc-typo-size-body2) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-body2) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-body2);font-weight:var(--oc-typo-weight-body2-medium)}.oc-Button-module__button__18Bed:where(.oc-Button-module__outlined__f4ewH):where(.oc-Button-module__assistive__6KrCl):where(.oc-Button-module__small__zfmcP),.oc-Button-module__button__18Bed:where(.oc-Button-module__outlined__f4ewH):where(.oc-Button-module__assistive__6KrCl):where(.oc-Button-module__xsmall__QS3d-){font-size:calc(var(--oc-typo-size-label1) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-label1) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-label1);font-weight:var(--oc-typo-weight-label1-medium)}.oc-Button-module__button__18Bed:where(.oc-Button-module__outlined__f4ewH):disabled,.oc-Button-module__button__18Bed:where(.oc-Button-module__outlined__f4ewH)[aria-disabled=true]{--oc-button-background-color: var(--oc-color-theme-static-transparent);--oc-button-border-color: var(--oc-color-theme-line-normal-neutral);--oc-button-color: var(--oc-color-theme-label-disable);--oc-button-loading-color: var(--oc-color-theme-label-disable)}.oc-Button-module__button__18Bed:where(.oc-Button-module__loading__QfItr){cursor:progress}.oc-Button-module__button__18Bed:where(.oc-Button-module__loading__QfItr)>[data-oc-part=content]{visibility:hidden}.oc-Button-module__button__18Bed:where(.oc-Button-module__iconOnly__FNrSu){aspect-ratio:1;inline-size:var(--oc-button-control-size);padding-inline:var(--oc-button-padding-y)}.oc-Button-module__button__18Bed:where(.oc-Button-module__fullWidth__AHpSl){inline-size:100%}.oc-Button-module__button__18Bed:where(.oc-Button-module__iconOnly__FNrSu):where(.oc-Button-module__fullWidth__AHpSl){aspect-ratio:auto}@media(prefers-reduced-motion:reduce){.oc-Button-module__button__18Bed:active:not(:disabled,[aria-disabled=true]){transform:none}}
@@ -1,26 +1,28 @@
1
1
  'use client';
2
- import { jsxs as n, jsx as a } from "react/jsx-runtime";
3
- import m from "@orioncactuscorp/icons/orioncactus/CheckThick";
4
- import k from "../Interaction/Interaction.js";
2
+ import { jsxs as c, jsx as a } from "react/jsx-runtime";
3
+ import k from "@orioncactuscorp/icons/orioncactus/CheckThick";
4
+ import u from "../Interaction/Interaction.js";
5
5
  import e from "./CheckMark.module.scss.js";
6
- function b({
6
+ function g({
7
7
  children: t,
8
8
  className: r = "",
9
- size: o = "medium",
9
+ size: n = "medium",
10
10
  onChange: i,
11
11
  onCheckedChange: p,
12
12
  ref: s,
13
+ "data-oc-interaction-variant": d,
13
14
  ...l
14
15
  }) {
15
- const d = (c) => {
16
- i?.(c), p?.(c.currentTarget.checked);
17
- }, h = t !== void 0;
18
- return /* @__PURE__ */ n(
16
+ const h = (o) => {
17
+ i?.(o), p?.(o.currentTarget.checked);
18
+ }, m = t !== void 0;
19
+ return /* @__PURE__ */ c(
19
20
  "label",
20
21
  {
21
- className: [e.checkMark, e[o], r].filter(Boolean).join(" "),
22
+ className: [e.checkMark, e[n], r].filter(Boolean).join(" "),
22
23
  "data-oc-component": "check-mark",
23
- "data-oc-size": o,
24
+ "data-oc-size": n,
25
+ "data-oc-interaction-variant": d,
24
26
  children: [
25
27
  /* @__PURE__ */ a(
26
28
  "input",
@@ -28,19 +30,19 @@ function b({
28
30
  ...l,
29
31
  ref: s,
30
32
  type: "checkbox",
31
- onChange: d,
33
+ onChange: h,
32
34
  "data-oc-part": "input"
33
35
  }
34
36
  ),
35
- /* @__PURE__ */ n("span", { "data-oc-part": "container", children: [
36
- /* @__PURE__ */ a(k, { self: !0 }),
37
- /* @__PURE__ */ a("span", { "data-oc-part": "icon", children: /* @__PURE__ */ a(m, { size: "custom" }) })
37
+ /* @__PURE__ */ c("span", { "data-oc-part": "container", children: [
38
+ /* @__PURE__ */ a(u, { self: !0 }),
39
+ /* @__PURE__ */ a("span", { "data-oc-part": "icon", children: /* @__PURE__ */ a(k, { size: "custom" }) })
38
40
  ] }),
39
- h ? /* @__PURE__ */ a("span", { "data-oc-part": "content", children: /* @__PURE__ */ a("span", { "data-oc-part": "label", children: t }) }) : null
41
+ m ? /* @__PURE__ */ a("span", { "data-oc-part": "content", children: /* @__PURE__ */ a("span", { "data-oc-part": "label", children: t }) }) : null
40
42
  ]
41
43
  }
42
44
  );
43
45
  }
44
46
  export {
45
- b as default
47
+ g as default
46
48
  };
@@ -1 +1 @@
1
- .oc-Checkbox-module__checkbox__D0D4S{font-size:calc(var(--oc-typo-size-body2) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-body2) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-body2);display:inline-flex;position:relative;align-items:flex-start;gap:.5em;opacity:1;color:var(--oc-color-theme-label-normal);transition:opacity calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1.5) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-Checkbox-module__checkbox__D0D4S{transition-property:opacity;transition-duration:calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor-reduced) * var(--oc-motion-pace-normal) * 1.5);transition-timing-function:var(--oc-motion-timing-feedback)}}.oc-Checkbox-module__checkbox__D0D4S{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.oc-Checkbox-module__checkbox__D0D4S:has([data-oc-part=input]:disabled){opacity:var(--oc-color-global-opacity-43);cursor:not-allowed}.oc-Checkbox-module__fill__p-vFK{display:flex;inline-size:100%}.oc-Checkbox-module__small__UzHgE{font-size:calc(var(--oc-typo-size-body2) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-body2) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-body2);--oc-checkbox-control-size: var(--oc-typo-height-body2);--oc-checkbox-content-height: var(--oc-typo-height-body2)}.oc-Checkbox-module__medium__HvVCs{font-size:calc(var(--oc-typo-size-body1) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-body1) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-body1);--oc-checkbox-control-size: var(--oc-typo-height-body1);--oc-checkbox-content-height: var(--oc-typo-height-body1)}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input]{position:absolute;opacity:0;pointer-events:none;inline-size:0;block-size:0}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=container]{position:relative;isolation:isolate;flex-shrink:0;padding:.125em;inline-size:var(--oc-checkbox-control-size);block-size:var(--oc-checkbox-control-size);--oc-interaction-inset-x: -.25em;--oc-interaction-inset-y: -.25em;--oc-interaction-z-index: 2;--oc-interaction-radius: var(--oc-atomic-radius-max)}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=wrapper]{display:flex;box-shadow:inset 0 0 0 1.5px currentcolor}@supports (-webkit-backdrop-filter: none){.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=wrapper]{box-shadow:inset 0 0 0 1px currentcolor}@media only screen and (resolution:2dppx){.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=wrapper]{box-shadow:inset 0 0 0 1.5px currentcolor}}@media only screen and (resolution:3dppx){.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=wrapper]{box-shadow:inset 0 0 0 1.6666px currentcolor}}}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=wrapper]{border-radius:.3125em;inline-size:100%;block-size:100%;color:var(--oc-color-theme-line-normal-normal);transition:color calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback),background-color calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=wrapper]{transition-property:color,background-color;transition-duration:calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor-reduced) * var(--oc-motion-pace-normal) * 1);transition-timing-function:var(--oc-motion-timing-feedback)}}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=icon-wrapper]{display:flex;position:relative;align-items:center;justify-content:center;inline-size:100%;block-size:100%;color:transparent}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=check],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=indeterminate]{position:absolute;inset:0;transform:scale(max(0,1 + (.9 - 1) * var(--oc-motion-scale-factor-feedback)));color:transparent;transition:transform calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback),color calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=check],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=indeterminate]{transition-property:color;transition-duration:calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor-reduced) * var(--oc-motion-pace-normal) * 1);transition-timing-function:var(--oc-motion-timing-feedback);transform:none}}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=check],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=indeterminate]{will-change:transform}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=check]>svg,.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=indeterminate]>svg{inline-size:100%;block-size:100%;padding:.0625rem}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=content]{display:flex;flex:1;align-items:flex-start;gap:var(--oc-space-item-gap-tiny);min-inline-size:0;padding-block:calc((var(--oc-checkbox-control-size) - var(--oc-checkbox-content-height)) / 2)}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=label]{-webkit-user-select:none;user-select:none}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=trailing-compound]{display:flex;flex-shrink:0;margin-inline-start:auto}.oc-Checkbox-module__fill__p-vFK [data-oc-part=label]{flex:1}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input]:disabled+[data-oc-part=container] [data-oc-part=wrapper]{color:var(--oc-color-theme-line-normal-alternative)}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input]:checked+[data-oc-part=container] [data-oc-part=wrapper],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input]:indeterminate+[data-oc-part=container] [data-oc-part=wrapper],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input][data-oc-indeterminate=true]+[data-oc-part=container] [data-oc-part=wrapper]{color:transparent;background-color:var(--oc-color-theme-primary-normal)}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input]:checked:not([data-oc-indeterminate=true])+[data-oc-part=container] [data-oc-part=check],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input]:indeterminate+[data-oc-part=container] [data-oc-part=indeterminate],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input][data-oc-indeterminate=true]+[data-oc-part=container] [data-oc-part=indeterminate]{transform:scale(1);color:var(--oc-color-theme-static-white)}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input]:focus-visible+[data-oc-part=container] [data-oc-part=wrapper]{outline:var(--oc-focus-ring-width) solid var(--oc-color-theme-focus-ring);outline-offset:var(--oc-focus-ring-offset)}@media(prefers-reduced-motion:reduce){.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input]:checked:not([data-oc-indeterminate=true])+[data-oc-part=container] [data-oc-part=check],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input]:indeterminate+[data-oc-part=container] [data-oc-part=indeterminate],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input][data-oc-indeterminate=true]+[data-oc-part=container] [data-oc-part=indeterminate]{transform:none}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=check],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=indeterminate]{will-change:auto}}
1
+ .oc-Checkbox-module__checkbox__D0D4S{font-size:calc(var(--oc-typo-size-body2) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-body2) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-body2);display:inline-flex;position:relative;align-items:flex-start;gap:.5em;opacity:1;color:var(--oc-color-theme-label-normal);transition:opacity calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1.5) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-Checkbox-module__checkbox__D0D4S{transition-property:opacity;transition-duration:calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor-reduced) * var(--oc-motion-pace-normal) * 1.5);transition-timing-function:var(--oc-motion-timing-feedback)}}.oc-Checkbox-module__checkbox__D0D4S{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.oc-Checkbox-module__checkbox__D0D4S:has([data-oc-part=input]:disabled){opacity:var(--oc-color-global-opacity-43);cursor:not-allowed}.oc-Checkbox-module__checkbox__D0D4S{--oc-checkbox-background-color: var(--oc-color-theme-primary-normal);--oc-checkbox-color: var(--oc-color-theme-static-white)}.oc-Checkbox-module__fill__p-vFK{display:flex;inline-size:100%}.oc-Checkbox-module__small__UzHgE{font-size:calc(var(--oc-typo-size-body2) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-body2) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-body2);--oc-checkbox-control-size: var(--oc-typo-height-body2);--oc-checkbox-content-height: var(--oc-typo-height-body2)}.oc-Checkbox-module__medium__HvVCs{font-size:calc(var(--oc-typo-size-body1) * var(--oc-typo-size-factor, 1));line-height:calc(var(--oc-typo-height-body1) * var(--oc-typo-size-factor, 1));letter-spacing:var(--oc-typo-spacing-body1);--oc-checkbox-control-size: var(--oc-typo-height-body1);--oc-checkbox-content-height: var(--oc-typo-height-body1)}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input]{position:absolute;opacity:0;pointer-events:none;inline-size:0;block-size:0}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=container]{position:relative;isolation:isolate;flex-shrink:0;padding:.125em;inline-size:var(--oc-checkbox-control-size);block-size:var(--oc-checkbox-control-size);--oc-interaction-inset-x: -.25em;--oc-interaction-inset-y: -.25em;--oc-interaction-z-index: 2;--oc-interaction-radius: var(--oc-atomic-radius-max)}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=wrapper]{display:flex;box-shadow:inset 0 0 0 1.5px currentcolor}@supports (-webkit-backdrop-filter: none){.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=wrapper]{box-shadow:inset 0 0 0 1px currentcolor}@media only screen and (resolution:2dppx){.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=wrapper]{box-shadow:inset 0 0 0 1.5px currentcolor}}@media only screen and (resolution:3dppx){.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=wrapper]{box-shadow:inset 0 0 0 1.6666px currentcolor}}}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=wrapper]{border-radius:.3125em;inline-size:100%;block-size:100%;color:var(--oc-color-theme-line-normal-normal);transition:color calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback),background-color calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=wrapper]{transition-property:color,background-color;transition-duration:calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor-reduced) * var(--oc-motion-pace-normal) * 1);transition-timing-function:var(--oc-motion-timing-feedback)}}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=icon-wrapper]{display:flex;position:relative;align-items:center;justify-content:center;inline-size:100%;block-size:100%;color:transparent}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=check],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=indeterminate]{position:absolute;inset:0;transform:scale(max(0,1 + (.9 - 1) * var(--oc-motion-scale-factor-feedback)));color:transparent;transition:transform calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback),color calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor) * var(--oc-motion-pace-normal) * 1) var(--oc-motion-timing-feedback)}@media(prefers-reduced-motion:reduce){.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=check],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=indeterminate]{transition-property:color;transition-duration:calc(var(--oc-motion-duration-feedback) * var(--oc-motion-duration-factor-reduced) * var(--oc-motion-pace-normal) * 1);transition-timing-function:var(--oc-motion-timing-feedback);transform:none}}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=check],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=indeterminate]{will-change:transform}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=check]>svg,.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=indeterminate]>svg{inline-size:100%;block-size:100%;padding:.0625rem}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=content]{display:flex;flex:1;align-items:flex-start;gap:var(--oc-space-item-gap-tiny);min-inline-size:0;padding-block:calc((var(--oc-checkbox-control-size) - var(--oc-checkbox-content-height)) / 2)}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=label]{-webkit-user-select:none;user-select:none}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=trailing-compound]{display:flex;flex-shrink:0;margin-inline-start:auto}.oc-Checkbox-module__fill__p-vFK [data-oc-part=label]{flex:1}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input]:disabled+[data-oc-part=container] [data-oc-part=wrapper]{color:var(--oc-color-theme-line-normal-alternative)}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input]:checked+[data-oc-part=container] [data-oc-part=wrapper],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input]:indeterminate+[data-oc-part=container] [data-oc-part=wrapper],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input][data-oc-indeterminate=true]+[data-oc-part=container] [data-oc-part=wrapper]{color:transparent;background-color:var(--oc-checkbox-background-color)}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input]:checked:not([data-oc-indeterminate=true])+[data-oc-part=container] [data-oc-part=check],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input]:indeterminate+[data-oc-part=container] [data-oc-part=indeterminate],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input][data-oc-indeterminate=true]+[data-oc-part=container] [data-oc-part=indeterminate]{transform:scale(1);color:var(--oc-checkbox-color)}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input]:focus-visible+[data-oc-part=container] [data-oc-part=wrapper]{outline:var(--oc-focus-ring-width) solid var(--oc-color-theme-focus-ring);outline-offset:var(--oc-focus-ring-offset)}@media(prefers-reduced-motion:reduce){.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input]:checked:not([data-oc-indeterminate=true])+[data-oc-part=container] [data-oc-part=check],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input]:indeterminate+[data-oc-part=container] [data-oc-part=indeterminate],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=input][data-oc-indeterminate=true]+[data-oc-part=container] [data-oc-part=indeterminate]{transform:none}.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=check],.oc-Checkbox-module__checkbox__D0D4S [data-oc-part=indeterminate]{will-change:auto}}