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