@hellboy/ds 0.1.3 → 0.2.7

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 (298) hide show
  1. package/README.md +512 -162
  2. package/{src/style/components/badge → dist/components}/badge.css +9 -25
  3. package/dist/components/badge.d.mts +12 -0
  4. package/dist/components/badge.d.ts +12 -0
  5. package/dist/components/badge.js +42 -0
  6. package/dist/components/badge.mjs +15 -0
  7. package/dist/components/banner.css +280 -0
  8. package/dist/components/banner.d.mts +12 -0
  9. package/dist/components/banner.d.ts +12 -0
  10. package/dist/components/banner.js +184 -0
  11. package/dist/components/banner.mjs +147 -0
  12. package/dist/components/button-group.css +289 -0
  13. package/dist/components/button-group.d.mts +81 -0
  14. package/dist/components/button-group.d.ts +81 -0
  15. package/dist/components/button-group.js +180 -0
  16. package/dist/components/button-group.mjs +143 -0
  17. package/{src/style/components/button → dist/components}/button.css +59 -62
  18. package/dist/components/button.d.mts +57 -0
  19. package/dist/components/button.d.ts +57 -0
  20. package/dist/components/button.js +129 -0
  21. package/dist/components/button.mjs +92 -0
  22. package/{src/style/components/card → dist/components}/card.css +9 -30
  23. package/dist/components/card.d.mts +31 -0
  24. package/dist/components/card.d.ts +31 -0
  25. package/dist/components/card.js +59 -0
  26. package/dist/components/card.mjs +32 -0
  27. package/{src/style → dist}/components/checkbox.css +51 -43
  28. package/dist/components/checkbox.d.mts +31 -0
  29. package/dist/components/checkbox.d.ts +31 -0
  30. package/dist/components/checkbox.js +130 -0
  31. package/dist/components/checkbox.mjs +93 -0
  32. package/{src/style/components/code-block → dist/components}/code-block.css +3 -7
  33. package/dist/components/code-block.d.mts +24 -0
  34. package/dist/components/code-block.d.ts +24 -0
  35. package/dist/components/code-block.js +43 -0
  36. package/dist/components/code-block.mjs +16 -0
  37. package/dist/components/color-control.css +285 -0
  38. package/dist/components/color-control.d.mts +5 -0
  39. package/dist/components/color-control.d.ts +5 -0
  40. package/dist/components/color-control.js +534 -0
  41. package/dist/components/color-control.mjs +497 -0
  42. package/dist/components/dialog.css +930 -0
  43. package/dist/components/dialog.d.mts +32 -0
  44. package/dist/components/dialog.d.ts +32 -0
  45. package/dist/components/dialog.js +1111 -0
  46. package/dist/components/dialog.mjs +1074 -0
  47. package/dist/components/divider.css +356 -0
  48. package/dist/components/divider.d.mts +32 -0
  49. package/dist/components/divider.d.ts +32 -0
  50. package/dist/components/divider.js +344 -0
  51. package/dist/components/divider.mjs +307 -0
  52. package/{src/style/components/drag-handle → dist/components}/drag-handle.css +3 -18
  53. package/dist/components/drag-handle.d.mts +11 -0
  54. package/dist/components/drag-handle.d.ts +11 -0
  55. package/dist/components/drag-handle.js +103 -0
  56. package/dist/components/drag-handle.mjs +66 -0
  57. package/dist/components/drawer.css +1027 -0
  58. package/dist/components/drawer.d.mts +14 -0
  59. package/dist/components/drawer.d.ts +14 -0
  60. package/dist/components/drawer.js +1072 -0
  61. package/dist/components/drawer.mjs +1035 -0
  62. package/dist/components/floating-bar.css +17 -0
  63. package/dist/components/floating-bar.d.mts +25 -0
  64. package/dist/components/floating-bar.d.ts +25 -0
  65. package/dist/components/floating-bar.js +52 -0
  66. package/dist/components/floating-bar.mjs +25 -0
  67. package/dist/components/footer.css +40 -0
  68. package/dist/components/footer.d.mts +8 -0
  69. package/dist/components/footer.d.ts +8 -0
  70. package/dist/components/footer.js +44 -0
  71. package/dist/components/footer.mjs +17 -0
  72. package/dist/components/grid.css +47 -0
  73. package/dist/components/grid.d.mts +27 -0
  74. package/dist/components/grid.d.ts +27 -0
  75. package/dist/components/grid.js +52 -0
  76. package/dist/components/grid.mjs +25 -0
  77. package/dist/components/header.css +1075 -0
  78. package/dist/components/header.d.mts +35 -0
  79. package/dist/components/header.d.ts +35 -0
  80. package/dist/components/header.js +1402 -0
  81. package/dist/components/header.mjs +1365 -0
  82. package/dist/components/hero.css +121 -0
  83. package/dist/components/hero.d.mts +111 -0
  84. package/dist/components/hero.d.ts +111 -0
  85. package/dist/components/hero.js +285 -0
  86. package/dist/components/hero.mjs +248 -0
  87. package/{src/style/components/icons → dist/components}/icons.css +14 -15
  88. package/dist/components/icons.d.mts +104 -0
  89. package/dist/components/icons.d.ts +104 -0
  90. package/dist/components/icons.js +239 -0
  91. package/dist/components/icons.mjs +203 -0
  92. package/{src/style/components/input → dist/components}/input.css +189 -102
  93. package/dist/components/input.d.mts +114 -0
  94. package/dist/components/input.d.ts +114 -0
  95. package/dist/components/input.js +926 -0
  96. package/dist/components/input.mjs +879 -0
  97. package/dist/components/layout.css +551 -0
  98. package/dist/components/layout.d.mts +16 -0
  99. package/dist/components/layout.d.ts +16 -0
  100. package/dist/components/layout.js +387 -0
  101. package/dist/components/layout.mjs +352 -0
  102. package/{src/style/components/list → dist/components}/list.css +47 -41
  103. package/dist/components/list.d.mts +46 -0
  104. package/dist/components/list.d.ts +46 -0
  105. package/dist/components/list.js +124 -0
  106. package/dist/components/list.mjs +96 -0
  107. package/dist/components/navbar.css +706 -0
  108. package/dist/components/navbar.d.mts +56 -0
  109. package/dist/components/navbar.d.ts +56 -0
  110. package/dist/components/navbar.js +994 -0
  111. package/dist/components/navbar.mjs +952 -0
  112. package/{src/style/components/page-index → dist/components}/page-index.css +2 -47
  113. package/dist/components/page-index.d.mts +25 -0
  114. package/dist/components/page-index.d.ts +25 -0
  115. package/dist/components/page-index.js +239 -0
  116. package/dist/components/page-index.mjs +202 -0
  117. package/{src/style/components/page → dist/components}/page.css +4 -15
  118. package/dist/components/page.d.mts +30 -0
  119. package/dist/components/page.d.ts +30 -0
  120. package/dist/components/page.js +40 -0
  121. package/dist/components/page.mjs +13 -0
  122. package/dist/components/popover.css +87 -0
  123. package/dist/components/popover.d.mts +22 -0
  124. package/dist/components/popover.d.ts +22 -0
  125. package/dist/components/popover.js +243 -0
  126. package/dist/components/popover.mjs +206 -0
  127. package/{src/style → dist}/components/radio.css +8 -51
  128. package/dist/components/radio.d.mts +59 -0
  129. package/dist/components/radio.d.ts +59 -0
  130. package/dist/components/radio.js +133 -0
  131. package/dist/components/radio.mjs +95 -0
  132. package/dist/components/section.css +993 -0
  133. package/dist/components/section.d.mts +33 -0
  134. package/dist/components/section.d.ts +33 -0
  135. package/dist/components/section.js +1401 -0
  136. package/dist/components/section.mjs +1364 -0
  137. package/dist/components/select.css +391 -0
  138. package/dist/components/select.d.mts +63 -0
  139. package/dist/components/select.d.ts +63 -0
  140. package/dist/components/select.js +452 -0
  141. package/dist/components/select.mjs +415 -0
  142. package/{src/style/components/slider → dist/components}/slider.css +55 -33
  143. package/dist/components/slider.d.mts +69 -0
  144. package/dist/components/slider.d.ts +69 -0
  145. package/dist/components/slider.js +254 -0
  146. package/dist/components/slider.mjs +217 -0
  147. package/dist/components/switch.css +1081 -0
  148. package/dist/components/switch.d.mts +33 -0
  149. package/dist/components/switch.d.ts +33 -0
  150. package/dist/components/switch.js +1092 -0
  151. package/dist/components/switch.mjs +1055 -0
  152. package/{src/style/components/table → dist/components}/table.css +3 -28
  153. package/dist/components/table.d.mts +42 -0
  154. package/dist/components/table.d.ts +42 -0
  155. package/dist/components/table.js +108 -0
  156. package/dist/components/table.mjs +76 -0
  157. package/dist/components/tag.css +97 -0
  158. package/dist/components/tag.d.mts +12 -0
  159. package/dist/components/tag.d.ts +12 -0
  160. package/dist/components/tag.js +42 -0
  161. package/dist/components/tag.mjs +15 -0
  162. package/dist/components/textarea.css +1359 -0
  163. package/dist/components/textarea.d.mts +84 -0
  164. package/dist/components/textarea.d.ts +84 -0
  165. package/dist/components/textarea.js +1962 -0
  166. package/dist/components/textarea.mjs +1924 -0
  167. package/{src/style/components/theme-control → dist/components}/theme-control.css +3 -7
  168. package/dist/components/theme-control.d.mts +9 -0
  169. package/dist/components/theme-control.d.ts +9 -0
  170. package/dist/components/theme-control.js +235 -0
  171. package/dist/components/theme-control.mjs +200 -0
  172. package/{src/style/components/tooltip → dist/components}/tooltip.css +5 -13
  173. package/dist/components/tooltip.d.mts +12 -0
  174. package/dist/components/tooltip.d.ts +12 -0
  175. package/dist/components/tooltip.js +200 -0
  176. package/dist/components/tooltip.mjs +163 -0
  177. package/dist/icons-Czahnf-r.d.mts +15 -0
  178. package/dist/icons-Czahnf-r.d.ts +15 -0
  179. package/dist/index.css +2914 -2067
  180. package/dist/index.d.mts +144 -721
  181. package/dist/index.d.ts +144 -721
  182. package/dist/index.js +4076 -2282
  183. package/dist/index.mjs +4132 -2366
  184. package/dist/theme.css +34 -34
  185. package/package.json +27 -8
  186. package/dist/index.css.map +0 -1
  187. package/dist/index.js.map +0 -1
  188. package/dist/index.mjs.map +0 -1
  189. package/hellboy-ds-0.1.2.tgz +0 -0
  190. package/src/components/badge/Badge.tsx +0 -29
  191. package/src/components/badge/index.ts +0 -1
  192. package/src/components/banner/Banner.tsx +0 -48
  193. package/src/components/banner/banner.css +0 -44
  194. package/src/components/banner/index.ts +0 -1
  195. package/src/components/button/button.tsx +0 -127
  196. package/src/components/button/index.ts +0 -1
  197. package/src/components/card/card.tsx +0 -57
  198. package/src/components/card/index.ts +0 -1
  199. package/src/components/checkbox/Checkbox.tsx +0 -98
  200. package/src/components/checkbox/index.ts +0 -1
  201. package/src/components/code-block/code-block.tsx +0 -44
  202. package/src/components/code-block/index.ts +0 -1
  203. package/src/components/color-control/color-control.tsx +0 -322
  204. package/src/components/color-control/index.ts +0 -1
  205. package/src/components/drag-handle/DragHandle.tsx +0 -78
  206. package/src/components/drag-handle/index.ts +0 -1
  207. package/src/components/drawer/drawer.tsx +0 -82
  208. package/src/components/drawer/index.ts +0 -1
  209. package/src/components/floating-bar/floating-bar.tsx +0 -52
  210. package/src/components/floating-bar/index.ts +0 -2
  211. package/src/components/footer/footer.tsx +0 -28
  212. package/src/components/footer/index.ts +0 -1
  213. package/src/components/grid/Grid.tsx +0 -53
  214. package/src/components/grid/index.ts +0 -1
  215. package/src/components/header/header.tsx +0 -57
  216. package/src/components/header/index.ts +0 -1
  217. package/src/components/icons/icons.tsx +0 -44
  218. package/src/components/icons/index.ts +0 -1
  219. package/src/components/index.ts +0 -29
  220. package/src/components/input/DatePicker.tsx +0 -133
  221. package/src/components/input/Input.tsx +0 -220
  222. package/src/components/input/InputDate.tsx +0 -10
  223. package/src/components/input/InputDateTime.tsx +0 -10
  224. package/src/components/input/InputEmail.tsx +0 -10
  225. package/src/components/input/InputField.tsx +0 -137
  226. package/src/components/input/InputNumber.tsx +0 -10
  227. package/src/components/input/InputPassword.tsx +0 -10
  228. package/src/components/input/InputSearch.tsx +0 -10
  229. package/src/components/input/InputTel.tsx +0 -10
  230. package/src/components/input/InputText.tsx +0 -10
  231. package/src/components/input/InputTime.tsx +0 -10
  232. package/src/components/input/InputUrl.tsx +0 -10
  233. package/src/components/input/TimePicker.tsx +0 -151
  234. package/src/components/input/index.ts +0 -11
  235. package/src/components/layout/Layout.tsx +0 -244
  236. package/src/components/layout/index.ts +0 -1
  237. package/src/components/list/List.tsx +0 -159
  238. package/src/components/list/index.ts +0 -1
  239. package/src/components/navbar/MenuCategory.tsx +0 -20
  240. package/src/components/navbar/MenuGroup.tsx +0 -288
  241. package/src/components/navbar/MenuItem.tsx +0 -65
  242. package/src/components/navbar/Navbar.tsx +0 -23
  243. package/src/components/navbar/index.ts +0 -4
  244. package/src/components/page/index.ts +0 -1
  245. package/src/components/page/page.tsx +0 -46
  246. package/src/components/page-index/PageIndex.tsx +0 -275
  247. package/src/components/page-index/index.ts +0 -1
  248. package/src/components/popover/index.ts +0 -1
  249. package/src/components/popover/popover.tsx +0 -199
  250. package/src/components/radio/Radio.tsx +0 -176
  251. package/src/components/radio/index.ts +0 -1
  252. package/src/components/section/index.ts +0 -1
  253. package/src/components/section/section.tsx +0 -66
  254. package/src/components/select/Select.tsx +0 -212
  255. package/src/components/select/index.ts +0 -1
  256. package/src/components/slider/Slider.tsx +0 -267
  257. package/src/components/slider/index.ts +0 -1
  258. package/src/components/switch/index.ts +0 -1
  259. package/src/components/switch/switch.tsx +0 -99
  260. package/src/components/table/Table.tsx +0 -147
  261. package/src/components/table/index.ts +0 -1
  262. package/src/components/theme-control/index.ts +0 -1
  263. package/src/components/theme-control/theme-control.tsx +0 -78
  264. package/src/components/tooltip/index.ts +0 -1
  265. package/src/components/tooltip/tooltip.tsx +0 -207
  266. package/src/contexts/NavbarTooltipContext.tsx +0 -48
  267. package/src/contexts/index.ts +0 -1
  268. package/src/foundations/motion.md +0 -136
  269. package/src/index.ts +0 -40
  270. package/src/style/_shared/field.css +0 -69
  271. package/src/style/components/color-control/color-control.css +0 -126
  272. package/src/style/components/drawer/drawer.css +0 -210
  273. package/src/style/components/floating-bar/floating-bar.css +0 -39
  274. package/src/style/components/footer/footer.css +0 -108
  275. package/src/style/components/grid/grid.css +0 -33
  276. package/src/style/components/header/header.css +0 -44
  277. package/src/style/components/layout/layout.css +0 -205
  278. package/src/style/components/navbar/navbar.css +0 -342
  279. package/src/style/components/popover/popover.css +0 -44
  280. package/src/style/components/section/section.css +0 -67
  281. package/src/style/components/select/select.css +0 -143
  282. package/src/style/components/switch/switch.css +0 -267
  283. package/src/style/foundations/global.css +0 -316
  284. package/src/style/foundations/motion.css +0 -164
  285. package/src/style/foundations/spacing.css +0 -51
  286. package/src/style/foundations/typography.css +0 -39
  287. package/src/style/foundations/z-index.css +0 -81
  288. package/src/style/modes/dark.css +0 -146
  289. package/src/style/modes/light.css +0 -147
  290. package/src/style/semantic.css +0 -52
  291. package/src/style/styles.css +0 -51
  292. package/src/style/themes/theme.json +0 -37
  293. package/src/utils/README.md +0 -305
  294. package/src/utils/USER_PREFERENCES.md +0 -558
  295. package/src/utils/theme.ts +0 -127
  296. package/src/utils/user-preferences.ts +0 -577
  297. package/tsconfig.json +0 -25
  298. package/tsup.config.ts +0 -52
@@ -0,0 +1,993 @@
1
+ /* src/style/components/section/section.css */
2
+ .section {
3
+ padding: var(--spacing-8) var(--spacing-4);
4
+ width: 100%;
5
+ transition: border-color var(--motion-transition-color);
6
+ }
7
+ .section:last-of-type {
8
+ border-bottom: none;
9
+ }
10
+ .section__title {
11
+ margin: 0 0 var(--spacing-8) 0;
12
+ font-size: var(--font-size-4xl);
13
+ font-weight: var(--font-weight-semibold);
14
+ color: var(--color-foreground-3);
15
+ display: flex;
16
+ align-items: center;
17
+ gap: var(--spacing-2);
18
+ position: relative;
19
+ letter-spacing: -.02em;
20
+ }
21
+ .section__hash-link {
22
+ opacity: 0;
23
+ }
24
+ *:hover > .section__hash-link,
25
+ .section__hash-link:focus {
26
+ opacity: 1;
27
+ }
28
+ .section__content {
29
+ font-size: var(--font-size-base);
30
+ line-height: var(--line-height-relaxed);
31
+ color: var(--color-foreground-1);
32
+ }
33
+ .section--sm {
34
+ padding: var(--spacing-4) var(--spacing-4);
35
+ }
36
+ .section--lg {
37
+ padding: var(--spacing-12) var(--spacing-4);
38
+ }
39
+ @media (min-width: 768px) {
40
+ .section {
41
+ padding: var(--spacing-8) var(--spacing-6);
42
+ }
43
+ .section--sm {
44
+ padding: var(--spacing-4) var(--spacing-6);
45
+ }
46
+ .section--lg {
47
+ padding: var(--spacing-12) var(--spacing-6);
48
+ }
49
+ }
50
+ @media (min-width: 1024px) {
51
+ .section {
52
+ padding: var(--spacing-8) var(--spacing-8);
53
+ max-width: 1200px;
54
+ margin: 0 auto;
55
+ }
56
+ .section--sm {
57
+ padding: var(--spacing-4) var(--spacing-8);
58
+ }
59
+ .section--lg {
60
+ padding: var(--spacing-12) var(--spacing-8);
61
+ }
62
+ }
63
+
64
+ /* src/style/_shared/backdrop.css */
65
+ .backdrop {
66
+ position: fixed;
67
+ top: 0;
68
+ left: 0;
69
+ right: 0;
70
+ bottom: 0;
71
+ background-color: hsla(var(--secondary-hue), var(--secondary-saturation), var(--secondary-lightness), 0.5);
72
+ opacity: 0;
73
+ visibility: hidden;
74
+ }
75
+ .backdrop[data-enter] {
76
+ opacity: 1;
77
+ visibility: visible;
78
+ animation: fadeIn var(--motion-duration-base) var(--motion-easing-decelerate);
79
+ }
80
+ .backdrop[data-leave] {
81
+ opacity: 0;
82
+ visibility: hidden;
83
+ animation: fadeOut var(--motion-duration-base) var(--motion-easing-accelerate);
84
+ }
85
+ .backdrop--blur {
86
+ backdrop-filter: blur(4px);
87
+ }
88
+ @keyframes fadeIn {
89
+ from {
90
+ opacity: 0;
91
+ }
92
+ to {
93
+ opacity: 1;
94
+ }
95
+ }
96
+ @keyframes fadeOut {
97
+ from {
98
+ opacity: 1;
99
+ }
100
+ to {
101
+ opacity: 0;
102
+ }
103
+ }
104
+
105
+ /* src/style/components/icons/icons.css */
106
+ .icon {
107
+ display: inline-flex;
108
+ align-items: center;
109
+ justify-content: center;
110
+ }
111
+ .icon--skeleton {
112
+ background:
113
+ linear-gradient(
114
+ 90deg,
115
+ rgba(0, 0, 0, 0.06) 0%,
116
+ rgba(0, 0, 0, 0.03) 50%,
117
+ rgba(0, 0, 0, 0.06) 100%);
118
+ border-radius: 4px;
119
+ animation: hb-skeleton 1.2s ease-in-out infinite;
120
+ }
121
+ @keyframes hb-skeleton {
122
+ 0% {
123
+ background-position: 200% 0;
124
+ }
125
+ 100% {
126
+ background-position: -200% 0;
127
+ }
128
+ }
129
+ .icon {
130
+ display: inline-block;
131
+ flex-shrink: 0;
132
+ transition: color var(--transition-base, 0.2s ease);
133
+ }
134
+ .icon--interactive {
135
+ cursor: pointer;
136
+ color: var(--color-foreground-1);
137
+ }
138
+ .icon--interactive:hover:not(:disabled) {
139
+ color: var(--color-action-primary-hover);
140
+ }
141
+ .icon--interactive:active:not(:disabled) {
142
+ color: var(--color-action-primary-active);
143
+ }
144
+ .icon--interactive:disabled {
145
+ cursor: not-allowed;
146
+ color: var(--color-foreground-2);
147
+ }
148
+
149
+ /* src/style/_shared/thumb.css */
150
+ .thumb {
151
+ position: relative;
152
+ display: inline-flex;
153
+ align-items: center;
154
+ justify-content: center;
155
+ border-radius: 50%;
156
+ background-color: var(--color-action-primary);
157
+ border: 2px solid var(--color-action-primary);
158
+ box-shadow: var(--shadow-thumb);
159
+ color: var(--color-on-accent);
160
+ transition:
161
+ transform var(--motion-transition-fast),
162
+ box-shadow var(--motion-transition-fast),
163
+ border-color var(--motion-transition-fast),
164
+ background-color var(--motion-transition-fast);
165
+ z-index: 1;
166
+ }
167
+ .thumb--hover,
168
+ .thumb:hover {
169
+ border-color: var(--color-action-primary-hover);
170
+ box-shadow: var(--shadow-thumb-hover);
171
+ }
172
+ .thumb--active {
173
+ transform: scale(1.2);
174
+ border-color: var(--color-action-primary-active);
175
+ box-shadow: var(--shadow-thumb-active);
176
+ }
177
+ .thumb--disabled {
178
+ border-color: var(--color-foreground-3);
179
+ background-color: var(--color-bg-3);
180
+ opacity: 0.6;
181
+ cursor: not-allowed;
182
+ }
183
+ .thumb--checked {
184
+ background-color: var(--color-accent);
185
+ border-color: var(--color-accent);
186
+ }
187
+
188
+ /* src/style/components/button/button.css */
189
+ .btn {
190
+ position: relative;
191
+ display: inline-flex;
192
+ align-items: center;
193
+ justify-content: center;
194
+ gap: var(--spacing-2);
195
+ white-space: nowrap;
196
+ text-decoration: none;
197
+ user-select: none;
198
+ border-radius: var(--radius-base);
199
+ border: 1px solid transparent;
200
+ font-family: var(--font-family-action);
201
+ font-weight: var(--font-weight-semibold);
202
+ line-height: var(--line-height-normal);
203
+ letter-spacing: var(--letter-spacing-normal);
204
+ transition: var(--motion-transition-hover-in), transform var(--motion-duration-fast) var(--motion-easing-linear);
205
+ cursor: pointer;
206
+ }
207
+ .btn:not(:hover):not(:active) {
208
+ transition: var(--motion-transition-hover-out), transform var(--motion-duration-fast) var(--motion-easing-accelerate);
209
+ }
210
+ .btn--xs {
211
+ padding: var(--spacing-1);
212
+ font-size: var(--font-size-xs);
213
+ }
214
+ .btn--sm {
215
+ padding: var(--spacing-2) var(--spacing-3);
216
+ font-size: var(--font-size-sm);
217
+ min-height: 32px;
218
+ }
219
+ .btn--md {
220
+ padding: var(--spacing-2) var(--spacing-4);
221
+ font-size: var(--font-size-base);
222
+ min-height: 40px;
223
+ }
224
+ .btn--lg {
225
+ padding: var(--spacing-3) var(--spacing-6);
226
+ font-size: var(--font-size-lg);
227
+ min-height: 48px;
228
+ }
229
+ .btn--icon-only {
230
+ padding: var(--spacing-2);
231
+ width: auto;
232
+ aspect-ratio: 1;
233
+ }
234
+ .btn--icon-only.btn--xs {
235
+ padding: var(--spacing-1);
236
+ min-width: 24px;
237
+ min-height: 24px;
238
+ }
239
+ .btn--icon-only.btn--sm {
240
+ padding: var(--spacing-1);
241
+ min-width: 32px;
242
+ min-height: 32px;
243
+ }
244
+ .btn--icon-only.btn--md {
245
+ padding: var(--spacing-2);
246
+ min-width: 40px;
247
+ min-height: 40px;
248
+ }
249
+ .btn--icon-only.btn--lg {
250
+ padding: var(--spacing-3);
251
+ min-width: 48px;
252
+ min-height: 48px;
253
+ }
254
+ .btn--active {
255
+ background-color: var(--color-accent);
256
+ color: var(--color-on-accent);
257
+ }
258
+ .btn--active:hover:not(:disabled) {
259
+ background-color: var(--color-accent-hover);
260
+ color: var(--color-on-accent);
261
+ }
262
+ .btn--active:active:not(:disabled) {
263
+ background-color: var(--color-accent-active);
264
+ color: var(--color-on-accent);
265
+ }
266
+ .btn--primary {
267
+ background-color: var(--color-action-primary);
268
+ outline: 0px solid var(--color-action-primary);
269
+ box-shadow: 0 0 0 0 var(--color-action-primary);
270
+ color: var(--color-on-action-primary);
271
+ }
272
+ .btn--primary:hover:not(:disabled) {
273
+ background-color: var(--color-action-primary-hover);
274
+ box-shadow: 0 0 0 2px var(--color-action-primary-hover);
275
+ outline: 2px solid var(--color-action-primary-hover);
276
+ }
277
+ .btn--primary:active:not(:disabled) {
278
+ background-color: var(--color-action-primary-active);
279
+ transform: scale(0.98);
280
+ }
281
+ .btn--primary:focus-visible:not(:disabled) {
282
+ outline: 2px solid var(--color-action-primary);
283
+ outline-offset: 2px;
284
+ }
285
+ .btn--secondary {
286
+ background-color: var(--color-action-secondary);
287
+ color: var(--color-on-action-secondary);
288
+ }
289
+ .btn--secondary:hover:not(:disabled) {
290
+ background-color: var(--color-action-secondary-hover);
291
+ }
292
+ .btn--secondary:active:not(:disabled) {
293
+ background-color: var(--color-action-secondary-active);
294
+ transform: scale(0.98);
295
+ }
296
+ .btn--secondary:focus-visible:not(:disabled) {
297
+ outline: 2px solid var(--color-action-secondary);
298
+ outline-offset: 2px;
299
+ }
300
+ .btn--tertiary {
301
+ background-color: transparent;
302
+ color: var(--color-foreground-2);
303
+ border-color: var(--color-action-tertiary);
304
+ border-width: 2px;
305
+ }
306
+ .btn--tertiary:hover:not(:disabled) {
307
+ background-color: hsla(var(--accent-hue), var(--accent-saturation), var(--accent-lightness-hover), 0.2);
308
+ border-color: var(--color-action-primary-hover);
309
+ color: var(--color-foreground-2);
310
+ }
311
+ .btn--tertiary:active:not(:disabled) {
312
+ background-color: hsla(var(--accent-hue), var(--accent-saturation), var(--accent-lightness-active), 0.2);
313
+ border-color: var(--color-action-primary-active);
314
+ color: var(--color-action-primary-active);
315
+ transform: scale(0.98);
316
+ }
317
+ .btn--tertiary:focus-visible:not(:disabled) {
318
+ outline: 2px solid var(--color-action-primary);
319
+ outline-offset: 2px;
320
+ }
321
+ .btn--ghost {
322
+ background-color: transparent;
323
+ color: var(--color-foreground-2);
324
+ border-color: transparent;
325
+ border-width: 2px;
326
+ }
327
+ .btn--ghost:hover:not(:disabled) {
328
+ background-color: transparent;
329
+ border-color: var(--color-action-primary-hover);
330
+ color: var(--color-foreground-2);
331
+ }
332
+ .btn--ghost:active:not(:disabled) {
333
+ background-color: hsla(var(--accent-hue), var(--accent-saturation), var(--accent-lightness-active), 0.2);
334
+ border-color: var(--color-action-primary-active);
335
+ color: var(--color-action-primary-active);
336
+ transform: scale(0.98);
337
+ }
338
+ .btn--ghost:focus-visible:not(:disabled) {
339
+ outline: 2px solid var(--color-action-primary);
340
+ outline-offset: 2px;
341
+ }
342
+ .btn:disabled {
343
+ background-color: var(--color-primary-disabled);
344
+ color: var(--color-foreground-2);
345
+ cursor: not-allowed;
346
+ border-color: var(--color-primary-disabled);
347
+ }
348
+ .btn--full-width {
349
+ width: 100%;
350
+ }
351
+ @media (hover: none) and (pointer: coarse) {
352
+ .btn--primary:active:not(:disabled) {
353
+ background-color: var(--color-primary-active);
354
+ }
355
+ .btn--secondary:active:not(:disabled) {
356
+ background-color: var(--color-secondary-active);
357
+ }
358
+ .btn--tertiary:active:not(:disabled) {
359
+ background-color: hsla(var(--primary-hue), var(--primary-saturation), var(--primary-lightness-active), 0.2);
360
+ }
361
+ .btn--ghost:active:not(:disabled) {
362
+ background-color: hsla(var(--primary-hue), var(--primary-saturation), var(--primary-lightness-active), 0.2);
363
+ }
364
+ }
365
+ .btn__spinner {
366
+ display: inline-block;
367
+ width: 16px;
368
+ height: 16px;
369
+ border-radius: 50%;
370
+ border: 2px solid currentColor;
371
+ border-top-color: transparent;
372
+ animation: btn-spin 0.6s linear infinite;
373
+ }
374
+ .btn__icon {
375
+ flex-shrink: 0;
376
+ }
377
+ .btn__icon-placeholder {
378
+ flex-shrink: 0;
379
+ }
380
+ @keyframes btn-spin {
381
+ to {
382
+ transform: rotate(360deg);
383
+ }
384
+ }
385
+
386
+ /* src/style/components/dialog/dialog.css */
387
+ .dialog__portal {
388
+ position: fixed;
389
+ top: 0;
390
+ left: 0;
391
+ right: 0;
392
+ bottom: 0;
393
+ z-index: var(--z-dialog);
394
+ display: flex;
395
+ align-items: center;
396
+ justify-content: center;
397
+ padding: var(--spacing-4);
398
+ }
399
+ .dialog {
400
+ position: relative;
401
+ display: flex;
402
+ flex-direction: column;
403
+ background-color: var(--color-bg-1);
404
+ border-radius: 12px;
405
+ box-shadow: 0 20px 25px -5px hsla(var(--primary-hue), var(--primary-saturation), var(--primary-lightness), 0.1), 0 10px 10px -5px hsla(var(--primary-hue), var(--primary-saturation), var(--primary-lightness), 0.04);
406
+ max-height: calc(100vh - var(--spacing-8));
407
+ width: 100%;
408
+ animation: dialogSlideIn var(--motion-duration-slow) var(--motion-easing-decelerate);
409
+ overflow: hidden;
410
+ }
411
+ .dialog--sm {
412
+ max-width: 400px;
413
+ }
414
+ .dialog--md {
415
+ max-width: 600px;
416
+ }
417
+ .dialog--lg {
418
+ max-width: 800px;
419
+ }
420
+ .dialog__header {
421
+ display: flex;
422
+ align-items: center;
423
+ justify-content: space-between;
424
+ gap: var(--spacing-3);
425
+ padding: var(--spacing-4);
426
+ border-bottom: 1px solid var(--color-bg-2);
427
+ }
428
+ .dialog__title {
429
+ margin: 0;
430
+ font-size: var(--font-size-lg);
431
+ font-weight: var(--font-weight-semibold);
432
+ color: var(--color-foreground-0);
433
+ line-height: var(--line-height-tight);
434
+ }
435
+ .dialog__content {
436
+ flex: 1;
437
+ overflow-y: auto;
438
+ padding: var(--spacing-4);
439
+ color: var(--color-foreground-1);
440
+ }
441
+ .dialog__footer {
442
+ display: flex;
443
+ align-items: center;
444
+ justify-content: flex-end;
445
+ gap: var(--spacing-2);
446
+ padding: var(--spacing-4);
447
+ border-top: 1px solid var(--color-bg-2);
448
+ }
449
+ @keyframes dialogBackdropFadeIn {
450
+ from {
451
+ opacity: 0;
452
+ }
453
+ to {
454
+ opacity: 1;
455
+ }
456
+ }
457
+ @keyframes dialogSlideIn {
458
+ from {
459
+ opacity: 0;
460
+ transform: scale(0.95) translateY(-10px);
461
+ }
462
+ to {
463
+ opacity: 1;
464
+ transform: scale(1) translateY(0);
465
+ }
466
+ }
467
+ @media (max-width: 640px) {
468
+ .dialog__portal {
469
+ padding: 0;
470
+ align-items: flex-end;
471
+ }
472
+ .dialog {
473
+ max-width: 100%;
474
+ max-height: 90vh;
475
+ border-radius: 12px 12px 0 0;
476
+ animation: dialogSlideUp var(--motion-duration-slow) var(--motion-easing-decelerate);
477
+ }
478
+ .dialog--sm,
479
+ .dialog--md,
480
+ .dialog--lg {
481
+ max-width: 100%;
482
+ }
483
+ @keyframes dialogSlideUp {
484
+ from {
485
+ opacity: 0;
486
+ transform: translateY(100%);
487
+ }
488
+ to {
489
+ opacity: 1;
490
+ transform: translateY(0);
491
+ }
492
+ }
493
+ }
494
+ @media (min-width: 641px) and (max-width: 1024px) {
495
+ .dialog__portal {
496
+ padding: var(--spacing-3);
497
+ }
498
+ .dialog--lg {
499
+ max-width: 90vw;
500
+ }
501
+ }
502
+
503
+ /* src/style/_shared/field.css */
504
+ .field {
505
+ width: 100%;
506
+ font-family: inherit;
507
+ font-size: var(--font-size-base);
508
+ line-height: 1.5;
509
+ color: var(--color-foreground-1);
510
+ background-color: var(--color-bg-1);
511
+ border: none;
512
+ outline: 2px solid var(--color-foreground-3);
513
+ outline-offset: -2px;
514
+ border-radius: var(--radius-base);
515
+ padding: var(--spacing-2) var(--spacing-3);
516
+ transition: outline-color var(--transition-base), box-shadow var(--transition-base);
517
+ cursor: pointer;
518
+ }
519
+ .field--sm {
520
+ font-size: var(--font-size-sm);
521
+ padding: var(--spacing-1) var(--spacing-2);
522
+ }
523
+ .field--lg {
524
+ font-size: var(--font-size-lg);
525
+ padding: var(--spacing-3) var(--spacing-4);
526
+ }
527
+ .field:focus,
528
+ .field:focus-visible {
529
+ outline-color: var(--color-action-primary);
530
+ box-shadow: var(--shadow-focus-ring);
531
+ }
532
+ .field:hover:not(:disabled):not(.field--error) {
533
+ outline-color: var(--color-action-primary-hover);
534
+ }
535
+ .field--error {
536
+ outline-color: hsla(var(--error-hue), var(--error-saturation), 50%, 1);
537
+ }
538
+ .field--error:focus,
539
+ .field--error:focus-visible {
540
+ outline-color: hsla(var(--error-hue), var(--error-saturation), 50%, 1);
541
+ box-shadow: var(--shadow-focus-ring-error);
542
+ }
543
+ .field:disabled,
544
+ .field--disabled {
545
+ cursor: not-allowed;
546
+ opacity: 0.6;
547
+ background-color: var(--color-bg-2);
548
+ }
549
+ .field--open {
550
+ outline-color: var(--color-action-primary);
551
+ }
552
+
553
+ /* src/style/components/input/input.css */
554
+ .input-container {
555
+ display: flex;
556
+ flex-direction: column;
557
+ gap: var(--spacing-2);
558
+ }
559
+ .input-container--full-width {
560
+ width: 100%;
561
+ }
562
+ .input__label {
563
+ font-size: var(--font-size-sm);
564
+ font-weight: 500;
565
+ color: var(--color-foreground-1);
566
+ cursor: pointer;
567
+ }
568
+ .input__wrapper {
569
+ position: relative;
570
+ display: flex;
571
+ align-items: center;
572
+ }
573
+ .input {
574
+ width: 100%;
575
+ font-family: inherit;
576
+ font-size: var(--font-size-base);
577
+ line-height: 1.5;
578
+ color: var(--color-foreground-1);
579
+ background-color: var(--color-bg-1);
580
+ border: none;
581
+ outline: 2px solid var(--color-foreground-3);
582
+ outline-offset: -2px;
583
+ border-radius: var(--radius-base);
584
+ padding: var(--spacing-2) var(--spacing-3);
585
+ transition: outline-color var(--transition-base), box-shadow var(--transition-base);
586
+ }
587
+ .input--sm {
588
+ font-size: var(--font-size-sm);
589
+ padding: var(--spacing-1) var(--spacing-2);
590
+ }
591
+ .input--lg {
592
+ font-size: var(--font-size-lg);
593
+ padding: var(--spacing-3) var(--spacing-4);
594
+ }
595
+ .input--error {
596
+ outline-color: hsla(var(--error-hue), var(--error-saturation), 50%, 1);
597
+ }
598
+ .input--error:focus {
599
+ outline-color: hsla(var(--error-hue), var(--error-saturation), 50%, 1);
600
+ box-shadow: var(--shadow-focus-ring-error);
601
+ }
602
+ .input--disabled {
603
+ cursor: not-allowed;
604
+ opacity: 0.6;
605
+ background-color: var(--color-bg-2);
606
+ }
607
+ .input:focus {
608
+ outline-color: var(--color-action-primary);
609
+ box-shadow: var(--shadow-focus-ring);
610
+ }
611
+ .input:hover:not(:disabled):not(.input--error) {
612
+ outline-color: var(--color-action-primary-hover);
613
+ }
614
+ .input::placeholder {
615
+ color: var(--color-foreground-2);
616
+ opacity: 0.7;
617
+ }
618
+ .input--has-icon-left {
619
+ padding-left: var(--spacing-10);
620
+ }
621
+ .input--has-icon-right {
622
+ padding-right: var(--spacing-10);
623
+ }
624
+ .input--sm.input--has-icon-left {
625
+ padding-left: var(--spacing-8);
626
+ }
627
+ .input--sm.input--has-icon-right {
628
+ padding-right: var(--spacing-8);
629
+ }
630
+ .input--lg.input--has-icon-left {
631
+ padding-left: var(--spacing-12);
632
+ }
633
+ .input--lg.input--has-icon-right {
634
+ padding-right: var(--spacing-12);
635
+ }
636
+ .input__icon {
637
+ position: absolute;
638
+ display: flex;
639
+ align-items: center;
640
+ justify-content: center;
641
+ color: var(--color-foreground-2);
642
+ pointer-events: none;
643
+ }
644
+ .input__icon--left {
645
+ left: var(--spacing-3);
646
+ }
647
+ .input__icon--right {
648
+ right: var(--spacing-3);
649
+ pointer-events: auto;
650
+ background: none;
651
+ border: none;
652
+ cursor: pointer;
653
+ padding: var(--spacing-1);
654
+ border-radius: var(--radius-sm);
655
+ transition: background-color var(--transition-fast);
656
+ }
657
+ .input__icon--right:hover:not(:disabled) {
658
+ background-color: var(--color-bg-3);
659
+ color: var(--color-action-primary-hover);
660
+ }
661
+ .input__icon--right:active:not(:disabled) {
662
+ background-color: var(--color-bg-2);
663
+ color: var(--color-action-primary-active);
664
+ }
665
+ .input__icon--right:disabled {
666
+ cursor: not-allowed;
667
+ opacity: 0.6;
668
+ }
669
+ .input__icon--right:focus-visible {
670
+ outline: 2px solid var(--color-action-primary);
671
+ outline-offset: 2px;
672
+ }
673
+ .input__message {
674
+ font-size: var(--font-size-sm);
675
+ margin: 0;
676
+ color: var(--color-foreground-2);
677
+ }
678
+ .input__message--error {
679
+ color: hsla(var(--error-hue), var(--error-saturation), 60%, 1);
680
+ }
681
+ :root[data-theme=dark] .input {
682
+ background-color: var(--color-bg-2);
683
+ }
684
+ .input:-webkit-autofill,
685
+ .input:-webkit-autofill:hover,
686
+ .input:-webkit-autofill:focus {
687
+ -webkit-text-fill-color: var(--color-foreground-1);
688
+ -webkit-box-shadow: 0 0 0 1000px var(--color-bg-1) inset;
689
+ transition: background-color 5000s ease-in-out 0s;
690
+ }
691
+ :root[data-theme=dark] .input:-webkit-autofill,
692
+ :root[data-theme=dark] .input:-webkit-autofill:hover,
693
+ :root[data-theme=dark] .input:-webkit-autofill:focus {
694
+ -webkit-box-shadow: 0 0 0 1000px var(--color-bg-2) inset;
695
+ }
696
+ .input[type=search]::-webkit-search-cancel-button {
697
+ -webkit-appearance: none;
698
+ appearance: none;
699
+ }
700
+ .input__datetime-picker {
701
+ padding: var(--spacing-3);
702
+ min-width: 300px;
703
+ }
704
+ .input__datetime-combined {
705
+ display: flex;
706
+ gap: var(--spacing-3);
707
+ }
708
+ .input__trigger-wrapper {
709
+ position: relative;
710
+ display: flex;
711
+ align-items: center;
712
+ width: 100%;
713
+ }
714
+ .date-picker {
715
+ display: flex;
716
+ flex-direction: column;
717
+ gap: var(--spacing-2);
718
+ }
719
+ .date-picker__header {
720
+ display: flex;
721
+ align-items: center;
722
+ justify-content: space-between;
723
+ gap: var(--spacing-2);
724
+ padding-bottom: var(--spacing-2);
725
+ border-bottom: 1px solid var(--color-foreground-2);
726
+ }
727
+ .date-picker__nav {
728
+ background: none;
729
+ border: none;
730
+ color: var(--color-foreground-1);
731
+ font-size: var(--font-size-xl);
732
+ cursor: pointer;
733
+ padding: var(--spacing-1) var(--spacing-2);
734
+ border-radius: var(--radius-sm);
735
+ transition: background-color var(--transition-fast);
736
+ }
737
+ .date-picker__nav:hover:not(:disabled) {
738
+ background-color: var(--color-bg-3);
739
+ }
740
+ .date-picker__nav:disabled {
741
+ opacity: 0.5;
742
+ cursor: not-allowed;
743
+ }
744
+ .date-picker__title {
745
+ display: flex;
746
+ gap: var(--spacing-2);
747
+ align-items: center;
748
+ }
749
+ .date-picker__select {
750
+ background-color: var(--color-bg-1);
751
+ color: var(--color-foreground-1);
752
+ border: 1px solid var(--color-foreground-2);
753
+ border-radius: var(--radius-sm);
754
+ padding: var(--spacing-1) var(--spacing-2);
755
+ font-size: var(--font-size-sm);
756
+ cursor: pointer;
757
+ }
758
+ .date-picker__weekdays {
759
+ display: grid;
760
+ grid-template-columns: repeat(7, 1fr);
761
+ gap: var(--spacing-1);
762
+ margin-top: var(--spacing-2);
763
+ }
764
+ .date-picker__weekday {
765
+ text-align: center;
766
+ font-size: var(--font-size-xs);
767
+ font-weight: 600;
768
+ color: var(--color-foreground-2);
769
+ padding: var(--spacing-1);
770
+ }
771
+ .date-picker__days {
772
+ display: grid;
773
+ grid-template-columns: repeat(7, 1fr);
774
+ gap: var(--spacing-1);
775
+ }
776
+ .date-picker__day {
777
+ aspect-ratio: 1;
778
+ background: none;
779
+ border: none;
780
+ color: var(--color-foreground-1);
781
+ font-size: var(--font-size-sm);
782
+ cursor: pointer;
783
+ border-radius: var(--radius-sm);
784
+ transition: background-color var(--transition-fast);
785
+ padding: var(--spacing-1);
786
+ }
787
+ .date-picker__day:hover:not(:disabled):not(.date-picker__day--empty) {
788
+ background-color: var(--color-bg-3);
789
+ }
790
+ .date-picker__day--selected {
791
+ background-color: var(--color-action-primary);
792
+ color: white;
793
+ font-weight: 600;
794
+ }
795
+ .date-picker__day--empty {
796
+ cursor: default;
797
+ visibility: hidden;
798
+ }
799
+ .date-picker__day:disabled {
800
+ opacity: 0.5;
801
+ cursor: not-allowed;
802
+ }
803
+ .time-picker {
804
+ display: flex;
805
+ gap: var(--spacing-2);
806
+ min-width: 240px;
807
+ }
808
+ .time-picker__column {
809
+ flex: 1;
810
+ display: flex;
811
+ flex-direction: column;
812
+ gap: var(--spacing-1);
813
+ }
814
+ .time-picker__label {
815
+ text-align: center;
816
+ font-size: var(--font-size-xs);
817
+ font-weight: 600;
818
+ color: var(--color-foreground-2);
819
+ padding: var(--spacing-1);
820
+ }
821
+ .time-picker__scroll {
822
+ max-height: 200px;
823
+ overflow-y: auto;
824
+ border-radius: var(--radius-sm);
825
+ background: var(--color-bg-2);
826
+ }
827
+ .time-picker__item {
828
+ width: 100%;
829
+ background: none;
830
+ border: none;
831
+ color: var(--color-foreground-1);
832
+ font-size: var(--font-size-sm);
833
+ padding: var(--spacing-2);
834
+ cursor: pointer;
835
+ transition: background-color var(--transition-fast);
836
+ text-align: center;
837
+ font-variant-numeric: tabular-nums;
838
+ }
839
+ .time-picker__item:hover:not(:disabled) {
840
+ background-color: var(--color-bg-3);
841
+ }
842
+ .time-picker__item--selected {
843
+ background-color: var(--color-action-primary);
844
+ color: white;
845
+ font-weight: 600;
846
+ }
847
+ .time-picker__item:disabled {
848
+ opacity: 0.5;
849
+ cursor: not-allowed;
850
+ }
851
+
852
+ /* src/style/components/popover/popover.css */
853
+ .popover {
854
+ position: fixed;
855
+ background: var(--color-bg-1);
856
+ border-radius: var(--radius-base);
857
+ outline: 2px solid var(--color-bg-3);
858
+ outline-offset: -2px;
859
+ box-shadow: var(--shadow-md);
860
+ z-index: var(--z-popover);
861
+ min-width: 200px;
862
+ margin-top: var(--spacing-1);
863
+ animation: popover-slide-in var(--transition-base, 0.2s ease);
864
+ opacity: 0;
865
+ visibility: hidden;
866
+ pointer-events: none;
867
+ }
868
+ .popover--top {
869
+ animation: popover-slide-in-top var(--transition-base, 0.2s ease);
870
+ margin-bottom: var(--spacing-2);
871
+ }
872
+ .popover--bottom {
873
+ animation: popover-slide-in-bottom var(--transition-base, 0.2s ease);
874
+ margin-top: var(--spacing-2);
875
+ }
876
+ .popover--left {
877
+ animation: popover-slide-in-left var(--transition-base, 0.2s ease);
878
+ margin-right: var(--spacing-2);
879
+ }
880
+ .popover--right {
881
+ animation: popover-slide-in-right var(--transition-base, 0.2s ease);
882
+ margin-left: var(--spacing-2);
883
+ }
884
+ .popover:hover {
885
+ outline: 2px solid var(--color-primary-hover);
886
+ }
887
+ @keyframes popover-slide-in {
888
+ from {
889
+ opacity: 0;
890
+ transform: translateY(-8px);
891
+ }
892
+ to {
893
+ opacity: 1;
894
+ transform: translateY(0);
895
+ }
896
+ }
897
+ @keyframes popover-slide-in-top {
898
+ from {
899
+ opacity: 0;
900
+ transform: translateY(8px);
901
+ }
902
+ to {
903
+ opacity: 1;
904
+ transform: translateY(0);
905
+ }
906
+ }
907
+ @keyframes popover-slide-in-bottom {
908
+ from {
909
+ opacity: 0;
910
+ transform: translateY(-8px);
911
+ }
912
+ to {
913
+ opacity: 1;
914
+ transform: translateY(0);
915
+ }
916
+ }
917
+ @keyframes popover-slide-in-left {
918
+ from {
919
+ opacity: 0;
920
+ transform: translateX(8px);
921
+ }
922
+ to {
923
+ opacity: 1;
924
+ transform: translateX(0);
925
+ }
926
+ }
927
+ @keyframes popover-slide-in-right {
928
+ from {
929
+ opacity: 0;
930
+ transform: translateX(-8px);
931
+ }
932
+ to {
933
+ opacity: 1;
934
+ transform: translateX(0);
935
+ }
936
+ }
937
+ .popover__content {
938
+ }
939
+
940
+ /* src/style/components/tooltip/tooltip.css */
941
+ .tooltip {
942
+ position: fixed;
943
+ z-index: var(--z-tooltip);
944
+ background: var(--color-bg-1);
945
+ border: 1px solid var(--color-bg-3);
946
+ border-color: rgba(0, 0, 0, 0.15);
947
+ border-radius: var(--radius-base);
948
+ box-shadow: var(--shadow-md);
949
+ max-width: 200px;
950
+ padding: var(--spacing-2, 0.5rem) var(--spacing-3, 0.75rem);
951
+ font-size: var(--font-size-xs, 0.75rem);
952
+ font-weight: 500;
953
+ color: var(--color-foreground-1);
954
+ white-space: nowrap;
955
+ animation: tooltip-fade-in var(--transition-fast, 0.15s ease);
956
+ opacity: 0;
957
+ visibility: hidden;
958
+ pointer-events: none;
959
+ }
960
+ .tooltip--top {
961
+ margin-bottom: var(--spacing-1);
962
+ }
963
+ .tooltip--bottom {
964
+ margin-top: var(--spacing-1);
965
+ }
966
+ .tooltip--left {
967
+ margin-right: var(--spacing-1);
968
+ }
969
+ .tooltip--right {
970
+ margin-left: var(--spacing-1);
971
+ }
972
+ @keyframes tooltip-fade-in {
973
+ from {
974
+ opacity: 0;
975
+ transform: translateY(-2px);
976
+ }
977
+ to {
978
+ opacity: 1;
979
+ transform: translateY(0);
980
+ }
981
+ }
982
+ .tooltip__content {
983
+ }
984
+
985
+ /* src/style/components/_shared/heading-anchor.css */
986
+ .heading-anchor {
987
+ opacity: 0;
988
+ margin-left: var(--spacing-1);
989
+ }
990
+ *:hover > .heading-anchor,
991
+ .heading-anchor:focus {
992
+ opacity: 1;
993
+ }