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