@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,1359 @@
1
+ /* src/style/components/floating-bar/floating-bar.css */
2
+ .floating-bar {
3
+ position: sticky;
4
+ width: 100%;
5
+ z-index: var(--z-floating-base);
6
+ }
7
+ .floating-bar--top {
8
+ top: 0;
9
+ margin-bottom: 0;
10
+ }
11
+ .floating-bar--bottom {
12
+ bottom: -1px;
13
+ margin-top: 0;
14
+ }
15
+ .floating-bar__content {
16
+ padding: 0;
17
+ }
18
+
19
+ /* src/style/components/icons/icons.css */
20
+ .icon {
21
+ display: inline-flex;
22
+ align-items: center;
23
+ justify-content: center;
24
+ }
25
+ .icon--skeleton {
26
+ background:
27
+ linear-gradient(
28
+ 90deg,
29
+ rgba(0, 0, 0, 0.06) 0%,
30
+ rgba(0, 0, 0, 0.03) 50%,
31
+ rgba(0, 0, 0, 0.06) 100%);
32
+ border-radius: 4px;
33
+ animation: hb-skeleton 1.2s ease-in-out infinite;
34
+ }
35
+ @keyframes hb-skeleton {
36
+ 0% {
37
+ background-position: 200% 0;
38
+ }
39
+ 100% {
40
+ background-position: -200% 0;
41
+ }
42
+ }
43
+ .icon {
44
+ display: inline-block;
45
+ flex-shrink: 0;
46
+ transition: color var(--transition-base, 0.2s ease);
47
+ }
48
+ .icon--interactive {
49
+ cursor: pointer;
50
+ color: var(--color-foreground-1);
51
+ }
52
+ .icon--interactive:hover:not(:disabled) {
53
+ color: var(--color-action-primary-hover);
54
+ }
55
+ .icon--interactive:active:not(:disabled) {
56
+ color: var(--color-action-primary-active);
57
+ }
58
+ .icon--interactive:disabled {
59
+ cursor: not-allowed;
60
+ color: var(--color-foreground-2);
61
+ }
62
+
63
+ /* src/style/components/popover/popover.css */
64
+ .popover {
65
+ position: fixed;
66
+ background: var(--color-bg-1);
67
+ border-radius: var(--radius-base);
68
+ outline: 2px solid var(--color-bg-3);
69
+ outline-offset: -2px;
70
+ box-shadow: var(--shadow-md);
71
+ z-index: var(--z-popover);
72
+ min-width: 200px;
73
+ margin-top: var(--spacing-1);
74
+ animation: popover-slide-in var(--transition-base, 0.2s ease);
75
+ opacity: 0;
76
+ visibility: hidden;
77
+ pointer-events: none;
78
+ }
79
+ .popover--top {
80
+ animation: popover-slide-in-top var(--transition-base, 0.2s ease);
81
+ margin-bottom: var(--spacing-2);
82
+ }
83
+ .popover--bottom {
84
+ animation: popover-slide-in-bottom var(--transition-base, 0.2s ease);
85
+ margin-top: var(--spacing-2);
86
+ }
87
+ .popover--left {
88
+ animation: popover-slide-in-left var(--transition-base, 0.2s ease);
89
+ margin-right: var(--spacing-2);
90
+ }
91
+ .popover--right {
92
+ animation: popover-slide-in-right var(--transition-base, 0.2s ease);
93
+ margin-left: var(--spacing-2);
94
+ }
95
+ .popover:hover {
96
+ outline: 2px solid var(--color-primary-hover);
97
+ }
98
+ @keyframes popover-slide-in {
99
+ from {
100
+ opacity: 0;
101
+ transform: translateY(-8px);
102
+ }
103
+ to {
104
+ opacity: 1;
105
+ transform: translateY(0);
106
+ }
107
+ }
108
+ @keyframes popover-slide-in-top {
109
+ from {
110
+ opacity: 0;
111
+ transform: translateY(8px);
112
+ }
113
+ to {
114
+ opacity: 1;
115
+ transform: translateY(0);
116
+ }
117
+ }
118
+ @keyframes popover-slide-in-bottom {
119
+ from {
120
+ opacity: 0;
121
+ transform: translateY(-8px);
122
+ }
123
+ to {
124
+ opacity: 1;
125
+ transform: translateY(0);
126
+ }
127
+ }
128
+ @keyframes popover-slide-in-left {
129
+ from {
130
+ opacity: 0;
131
+ transform: translateX(8px);
132
+ }
133
+ to {
134
+ opacity: 1;
135
+ transform: translateX(0);
136
+ }
137
+ }
138
+ @keyframes popover-slide-in-right {
139
+ from {
140
+ opacity: 0;
141
+ transform: translateX(-8px);
142
+ }
143
+ to {
144
+ opacity: 1;
145
+ transform: translateX(0);
146
+ }
147
+ }
148
+ .popover__content {
149
+ }
150
+
151
+ /* src/style/components/list/list.css */
152
+ .list {
153
+ display: flex;
154
+ flex-direction: column;
155
+ gap: var(--spacing-1);
156
+ padding: 0;
157
+ margin: 0;
158
+ }
159
+ .list-item {
160
+ display: flex;
161
+ align-items: center;
162
+ gap: var(--spacing-3);
163
+ padding: var(--spacing-1) var(--spacing-2);
164
+ border-radius: var(--radius-sm);
165
+ transition: background-color var(--motion-duration-fast) var(--motion-easing-linear), color var(--motion-duration-fast) var(--motion-easing-linear);
166
+ color: var(--color-foreground-1);
167
+ background-color: transparent;
168
+ }
169
+ .list-item:not(:hover):not(:active) {
170
+ transition: background-color var(--motion-duration-fast) var(--motion-easing-accelerate), color var(--motion-duration-fast) var(--motion-easing-accelerate);
171
+ }
172
+ .list-item--interactive {
173
+ cursor: pointer;
174
+ user-select: none;
175
+ }
176
+ .list-item--interactive:hover:not(.list-item--disabled) {
177
+ background-color: var(--color-accent-hover);
178
+ }
179
+ .list-item--interactive:active:not(.list-item--disabled) {
180
+ background-color: var(--color-accent-active);
181
+ }
182
+ .list-item--interactive:focus-visible {
183
+ outline: 2px solid var(--color-action-primary);
184
+ outline-offset: 2px;
185
+ }
186
+ .list-item--selected {
187
+ background-color: hsla(var(--accent-hue), var(--accent-saturation), var(--accent-lightness), 0.12);
188
+ color: var(--color-on-primary);
189
+ font-weight: 500;
190
+ }
191
+ .list-item--selected:hover:not(.list-item--disabled) {
192
+ background-color: var(--color-accent-active);
193
+ }
194
+ .list-item--disabled {
195
+ cursor: not-allowed;
196
+ opacity: 0.5;
197
+ }
198
+ .list-item__icon {
199
+ display: flex;
200
+ align-items: center;
201
+ justify-content: center;
202
+ flex-shrink: 0;
203
+ color: var(--color-foreground-2);
204
+ }
205
+ .list-item--selected .list-item__icon {
206
+ color: var(--color-on-primary);
207
+ }
208
+ .list-item__content {
209
+ flex: 1;
210
+ font-size: var(--font-size-base);
211
+ display: flex;
212
+ flex-direction: column;
213
+ gap: var(--spacing-1);
214
+ }
215
+ .list-item__category {
216
+ font-size: var(--font-size-xs);
217
+ color: var(--color-foreground-3);
218
+ text-transform: uppercase;
219
+ letter-spacing: 0.5px;
220
+ font-weight: 600;
221
+ }
222
+ .list-category {
223
+ display: flex;
224
+ flex-direction: column;
225
+ gap: var(--spacing-2);
226
+ }
227
+ .list-category__title {
228
+ font-size: var(--font-size-sm);
229
+ font-weight: 600;
230
+ color: var(--color-foreground-2);
231
+ padding: var(--spacing-2) var(--spacing-2) 0;
232
+ text-transform: uppercase;
233
+ letter-spacing: 0.5px;
234
+ }
235
+ .list-category__items {
236
+ display: flex;
237
+ flex-direction: column;
238
+ gap: var(--spacing-1);
239
+ }
240
+ .list-item__indicator {
241
+ display: flex;
242
+ align-items: center;
243
+ justify-content: center;
244
+ flex-shrink: 0;
245
+ color: var(--color-action-primary);
246
+ }
247
+ :root[data-theme=dark] .list-item--interactive:hover:not(.list-item--disabled) {
248
+ background-color: var(--color-accent-hover);
249
+ }
250
+ :root[data-theme=dark] .list-item--selected {
251
+ background-color: var(--color-accent-active);
252
+ }
253
+
254
+ /* src/style/components/select/select.css */
255
+ .select-container {
256
+ display: flex;
257
+ flex-direction: column;
258
+ gap: var(--spacing-2);
259
+ }
260
+ .select-container--full-width {
261
+ width: 100%;
262
+ }
263
+ .select__label {
264
+ font-size: var(--font-size-sm);
265
+ font-weight: 500;
266
+ color: var(--color-foreground-1);
267
+ cursor: pointer;
268
+ }
269
+ .select__trigger {
270
+ width: 100%;
271
+ display: flex;
272
+ align-items: center;
273
+ justify-content: space-between;
274
+ gap: var(--spacing-2);
275
+ font-family: inherit;
276
+ font-size: var(--font-size-base);
277
+ line-height: 1.5;
278
+ color: var(--color-foreground-1);
279
+ background-color: var(--color-bg-1);
280
+ border: none;
281
+ outline: 2px solid var(--color-foreground-3);
282
+ outline-offset: -2px;
283
+ border-radius: var(--radius-base);
284
+ padding: var(--spacing-2) var(--spacing-3);
285
+ cursor: pointer;
286
+ transition: outline-color var(--motion-duration-fast) var(--motion-easing-linear), box-shadow var(--motion-duration-fast) var(--motion-easing-linear);
287
+ text-align: left;
288
+ }
289
+ .select__trigger:not(:hover):not(:focus-visible):not(.select__trigger--open) {
290
+ transition: outline-color var(--motion-duration-fast) var(--motion-easing-accelerate), box-shadow var(--motion-duration-fast) var(--motion-easing-accelerate);
291
+ }
292
+ .select__trigger--sm {
293
+ font-size: var(--font-size-sm);
294
+ padding: var(--spacing-1) var(--spacing-2);
295
+ }
296
+ .select__trigger--lg {
297
+ font-size: var(--font-size-lg);
298
+ padding: var(--spacing-3) var(--spacing-4);
299
+ }
300
+ .select__trigger-content {
301
+ display: flex;
302
+ align-items: center;
303
+ gap: var(--spacing-2);
304
+ flex: 1;
305
+ }
306
+ .select__trigger-text {
307
+ flex: 1;
308
+ overflow: hidden;
309
+ text-overflow: ellipsis;
310
+ white-space: nowrap;
311
+ }
312
+ .select__trigger-icon {
313
+ flex-shrink: 0;
314
+ color: var(--color-foreground-2);
315
+ transition: transform var(--transition-fast);
316
+ }
317
+ .select__trigger--open .select__trigger-icon {
318
+ transform: rotate(180deg);
319
+ }
320
+ .select__trigger:focus-visible {
321
+ outline-color: var(--color-action-primary);
322
+ box-shadow: var(--shadow-focus-ring);
323
+ }
324
+ .select__trigger:hover:not(:disabled):not(.select__trigger--error) {
325
+ outline-color: var(--color-action-primary-hover);
326
+ }
327
+ .select__trigger--open {
328
+ outline-color: var(--color-action-primary);
329
+ }
330
+ .select__trigger--error {
331
+ outline-color: hsla(var(--error-hue), var(--error-saturation), 50%, 1);
332
+ }
333
+ .select__trigger--error:focus-visible {
334
+ outline-color: hsla(var(--error-hue), var(--error-saturation), 50%, 1);
335
+ box-shadow: var(--shadow-focus-ring-error);
336
+ }
337
+ .select__trigger:disabled,
338
+ .select__trigger--disabled {
339
+ cursor: not-allowed;
340
+ opacity: 0.6;
341
+ background-color: var(--color-bg-2);
342
+ }
343
+ .select__dropdown {
344
+ min-width: 200px;
345
+ max-height: 300px;
346
+ overflow-y: auto;
347
+ padding: var(--spacing-2);
348
+ }
349
+ .select__message {
350
+ font-size: var(--font-size-sm);
351
+ margin: 0;
352
+ color: var(--color-foreground-2);
353
+ }
354
+ .select__message--error {
355
+ color: hsla(var(--error-hue), var(--error-saturation), var(--error-lightness), 1);
356
+ }
357
+ :root[data-theme=dark] .select__trigger {
358
+ background-color: var(--color-bg-2);
359
+ }
360
+
361
+ /* src/style/components/button/button.css */
362
+ .btn {
363
+ position: relative;
364
+ display: inline-flex;
365
+ align-items: center;
366
+ justify-content: center;
367
+ gap: var(--spacing-2);
368
+ white-space: nowrap;
369
+ text-decoration: none;
370
+ user-select: none;
371
+ border-radius: var(--radius-base);
372
+ border: 1px solid transparent;
373
+ font-family: var(--font-family-action);
374
+ font-weight: var(--font-weight-semibold);
375
+ line-height: var(--line-height-normal);
376
+ letter-spacing: var(--letter-spacing-normal);
377
+ transition: var(--motion-transition-hover-in), transform var(--motion-duration-fast) var(--motion-easing-linear);
378
+ cursor: pointer;
379
+ }
380
+ .btn:not(:hover):not(:active) {
381
+ transition: var(--motion-transition-hover-out), transform var(--motion-duration-fast) var(--motion-easing-accelerate);
382
+ }
383
+ .btn--xs {
384
+ padding: var(--spacing-1);
385
+ font-size: var(--font-size-xs);
386
+ }
387
+ .btn--sm {
388
+ padding: var(--spacing-2) var(--spacing-3);
389
+ font-size: var(--font-size-sm);
390
+ min-height: 32px;
391
+ }
392
+ .btn--md {
393
+ padding: var(--spacing-2) var(--spacing-4);
394
+ font-size: var(--font-size-base);
395
+ min-height: 40px;
396
+ }
397
+ .btn--lg {
398
+ padding: var(--spacing-3) var(--spacing-6);
399
+ font-size: var(--font-size-lg);
400
+ min-height: 48px;
401
+ }
402
+ .btn--icon-only {
403
+ padding: var(--spacing-2);
404
+ width: auto;
405
+ aspect-ratio: 1;
406
+ }
407
+ .btn--icon-only.btn--xs {
408
+ padding: var(--spacing-1);
409
+ min-width: 24px;
410
+ min-height: 24px;
411
+ }
412
+ .btn--icon-only.btn--sm {
413
+ padding: var(--spacing-1);
414
+ min-width: 32px;
415
+ min-height: 32px;
416
+ }
417
+ .btn--icon-only.btn--md {
418
+ padding: var(--spacing-2);
419
+ min-width: 40px;
420
+ min-height: 40px;
421
+ }
422
+ .btn--icon-only.btn--lg {
423
+ padding: var(--spacing-3);
424
+ min-width: 48px;
425
+ min-height: 48px;
426
+ }
427
+ .btn--active {
428
+ background-color: var(--color-accent);
429
+ color: var(--color-on-accent);
430
+ }
431
+ .btn--active:hover:not(:disabled) {
432
+ background-color: var(--color-accent-hover);
433
+ color: var(--color-on-accent);
434
+ }
435
+ .btn--active:active:not(:disabled) {
436
+ background-color: var(--color-accent-active);
437
+ color: var(--color-on-accent);
438
+ }
439
+ .btn--primary {
440
+ background-color: var(--color-action-primary);
441
+ outline: 0px solid var(--color-action-primary);
442
+ box-shadow: 0 0 0 0 var(--color-action-primary);
443
+ color: var(--color-on-action-primary);
444
+ }
445
+ .btn--primary:hover:not(:disabled) {
446
+ background-color: var(--color-action-primary-hover);
447
+ box-shadow: 0 0 0 2px var(--color-action-primary-hover);
448
+ outline: 2px solid var(--color-action-primary-hover);
449
+ }
450
+ .btn--primary:active:not(:disabled) {
451
+ background-color: var(--color-action-primary-active);
452
+ transform: scale(0.98);
453
+ }
454
+ .btn--primary:focus-visible:not(:disabled) {
455
+ outline: 2px solid var(--color-action-primary);
456
+ outline-offset: 2px;
457
+ }
458
+ .btn--secondary {
459
+ background-color: var(--color-action-secondary);
460
+ color: var(--color-on-action-secondary);
461
+ }
462
+ .btn--secondary:hover:not(:disabled) {
463
+ background-color: var(--color-action-secondary-hover);
464
+ }
465
+ .btn--secondary:active:not(:disabled) {
466
+ background-color: var(--color-action-secondary-active);
467
+ transform: scale(0.98);
468
+ }
469
+ .btn--secondary:focus-visible:not(:disabled) {
470
+ outline: 2px solid var(--color-action-secondary);
471
+ outline-offset: 2px;
472
+ }
473
+ .btn--tertiary {
474
+ background-color: transparent;
475
+ color: var(--color-foreground-2);
476
+ border-color: var(--color-action-tertiary);
477
+ border-width: 2px;
478
+ }
479
+ .btn--tertiary:hover:not(:disabled) {
480
+ background-color: hsla(var(--accent-hue), var(--accent-saturation), var(--accent-lightness-hover), 0.2);
481
+ border-color: var(--color-action-primary-hover);
482
+ color: var(--color-foreground-2);
483
+ }
484
+ .btn--tertiary:active:not(:disabled) {
485
+ background-color: hsla(var(--accent-hue), var(--accent-saturation), var(--accent-lightness-active), 0.2);
486
+ border-color: var(--color-action-primary-active);
487
+ color: var(--color-action-primary-active);
488
+ transform: scale(0.98);
489
+ }
490
+ .btn--tertiary:focus-visible:not(:disabled) {
491
+ outline: 2px solid var(--color-action-primary);
492
+ outline-offset: 2px;
493
+ }
494
+ .btn--ghost {
495
+ background-color: transparent;
496
+ color: var(--color-foreground-2);
497
+ border-color: transparent;
498
+ border-width: 2px;
499
+ }
500
+ .btn--ghost:hover:not(:disabled) {
501
+ background-color: transparent;
502
+ border-color: var(--color-action-primary-hover);
503
+ color: var(--color-foreground-2);
504
+ }
505
+ .btn--ghost:active:not(:disabled) {
506
+ background-color: hsla(var(--accent-hue), var(--accent-saturation), var(--accent-lightness-active), 0.2);
507
+ border-color: var(--color-action-primary-active);
508
+ color: var(--color-action-primary-active);
509
+ transform: scale(0.98);
510
+ }
511
+ .btn--ghost:focus-visible:not(:disabled) {
512
+ outline: 2px solid var(--color-action-primary);
513
+ outline-offset: 2px;
514
+ }
515
+ .btn:disabled {
516
+ background-color: var(--color-primary-disabled);
517
+ color: var(--color-foreground-2);
518
+ cursor: not-allowed;
519
+ border-color: var(--color-primary-disabled);
520
+ }
521
+ .btn--full-width {
522
+ width: 100%;
523
+ }
524
+ @media (hover: none) and (pointer: coarse) {
525
+ .btn--primary:active:not(:disabled) {
526
+ background-color: var(--color-primary-active);
527
+ }
528
+ .btn--secondary:active:not(:disabled) {
529
+ background-color: var(--color-secondary-active);
530
+ }
531
+ .btn--tertiary:active:not(:disabled) {
532
+ background-color: hsla(var(--primary-hue), var(--primary-saturation), var(--primary-lightness-active), 0.2);
533
+ }
534
+ .btn--ghost:active:not(:disabled) {
535
+ background-color: hsla(var(--primary-hue), var(--primary-saturation), var(--primary-lightness-active), 0.2);
536
+ }
537
+ }
538
+ .btn__spinner {
539
+ display: inline-block;
540
+ width: 16px;
541
+ height: 16px;
542
+ border-radius: 50%;
543
+ border: 2px solid currentColor;
544
+ border-top-color: transparent;
545
+ animation: btn-spin 0.6s linear infinite;
546
+ }
547
+ .btn__icon {
548
+ flex-shrink: 0;
549
+ }
550
+ .btn__icon-placeholder {
551
+ flex-shrink: 0;
552
+ }
553
+ @keyframes btn-spin {
554
+ to {
555
+ transform: rotate(360deg);
556
+ }
557
+ }
558
+
559
+ /* src/style/_shared/backdrop.css */
560
+ .backdrop {
561
+ position: fixed;
562
+ top: 0;
563
+ left: 0;
564
+ right: 0;
565
+ bottom: 0;
566
+ background-color: hsla(var(--secondary-hue), var(--secondary-saturation), var(--secondary-lightness), 0.5);
567
+ opacity: 0;
568
+ visibility: hidden;
569
+ }
570
+ .backdrop[data-enter] {
571
+ opacity: 1;
572
+ visibility: visible;
573
+ animation: fadeIn var(--motion-duration-base) var(--motion-easing-decelerate);
574
+ }
575
+ .backdrop[data-leave] {
576
+ opacity: 0;
577
+ visibility: hidden;
578
+ animation: fadeOut var(--motion-duration-base) var(--motion-easing-accelerate);
579
+ }
580
+ .backdrop--blur {
581
+ backdrop-filter: blur(4px);
582
+ }
583
+ @keyframes fadeIn {
584
+ from {
585
+ opacity: 0;
586
+ }
587
+ to {
588
+ opacity: 1;
589
+ }
590
+ }
591
+ @keyframes fadeOut {
592
+ from {
593
+ opacity: 1;
594
+ }
595
+ to {
596
+ opacity: 0;
597
+ }
598
+ }
599
+
600
+ /* src/style/_shared/thumb.css */
601
+ .thumb {
602
+ position: relative;
603
+ display: inline-flex;
604
+ align-items: center;
605
+ justify-content: center;
606
+ border-radius: 50%;
607
+ background-color: var(--color-action-primary);
608
+ border: 2px solid var(--color-action-primary);
609
+ box-shadow: var(--shadow-thumb);
610
+ color: var(--color-on-accent);
611
+ transition:
612
+ transform var(--motion-transition-fast),
613
+ box-shadow var(--motion-transition-fast),
614
+ border-color var(--motion-transition-fast),
615
+ background-color var(--motion-transition-fast);
616
+ z-index: 1;
617
+ }
618
+ .thumb--hover,
619
+ .thumb:hover {
620
+ border-color: var(--color-action-primary-hover);
621
+ box-shadow: var(--shadow-thumb-hover);
622
+ }
623
+ .thumb--active {
624
+ transform: scale(1.2);
625
+ border-color: var(--color-action-primary-active);
626
+ box-shadow: var(--shadow-thumb-active);
627
+ }
628
+ .thumb--disabled {
629
+ border-color: var(--color-foreground-3);
630
+ background-color: var(--color-bg-3);
631
+ opacity: 0.6;
632
+ cursor: not-allowed;
633
+ }
634
+ .thumb--checked {
635
+ background-color: var(--color-accent);
636
+ border-color: var(--color-accent);
637
+ }
638
+
639
+ /* src/style/_shared/field.css */
640
+ .field {
641
+ width: 100%;
642
+ font-family: inherit;
643
+ font-size: var(--font-size-base);
644
+ line-height: 1.5;
645
+ color: var(--color-foreground-1);
646
+ background-color: var(--color-bg-1);
647
+ border: none;
648
+ outline: 2px solid var(--color-foreground-3);
649
+ outline-offset: -2px;
650
+ border-radius: var(--radius-base);
651
+ padding: var(--spacing-2) var(--spacing-3);
652
+ transition: outline-color var(--transition-base), box-shadow var(--transition-base);
653
+ cursor: pointer;
654
+ }
655
+ .field--sm {
656
+ font-size: var(--font-size-sm);
657
+ padding: var(--spacing-1) var(--spacing-2);
658
+ }
659
+ .field--lg {
660
+ font-size: var(--font-size-lg);
661
+ padding: var(--spacing-3) var(--spacing-4);
662
+ }
663
+ .field:focus,
664
+ .field:focus-visible {
665
+ outline-color: var(--color-action-primary);
666
+ box-shadow: var(--shadow-focus-ring);
667
+ }
668
+ .field:hover:not(:disabled):not(.field--error) {
669
+ outline-color: var(--color-action-primary-hover);
670
+ }
671
+ .field--error {
672
+ outline-color: hsla(var(--error-hue), var(--error-saturation), 50%, 1);
673
+ }
674
+ .field--error:focus,
675
+ .field--error:focus-visible {
676
+ outline-color: hsla(var(--error-hue), var(--error-saturation), 50%, 1);
677
+ box-shadow: var(--shadow-focus-ring-error);
678
+ }
679
+ .field:disabled,
680
+ .field--disabled {
681
+ cursor: not-allowed;
682
+ opacity: 0.6;
683
+ background-color: var(--color-bg-2);
684
+ }
685
+ .field--open {
686
+ outline-color: var(--color-action-primary);
687
+ }
688
+
689
+ /* src/style/components/input/input.css */
690
+ .input-container {
691
+ display: flex;
692
+ flex-direction: column;
693
+ gap: var(--spacing-2);
694
+ }
695
+ .input-container--full-width {
696
+ width: 100%;
697
+ }
698
+ .input__label {
699
+ font-size: var(--font-size-sm);
700
+ font-weight: 500;
701
+ color: var(--color-foreground-1);
702
+ cursor: pointer;
703
+ }
704
+ .input__wrapper {
705
+ position: relative;
706
+ display: flex;
707
+ align-items: center;
708
+ }
709
+ .input {
710
+ width: 100%;
711
+ font-family: inherit;
712
+ font-size: var(--font-size-base);
713
+ line-height: 1.5;
714
+ color: var(--color-foreground-1);
715
+ background-color: var(--color-bg-1);
716
+ border: none;
717
+ outline: 2px solid var(--color-foreground-3);
718
+ outline-offset: -2px;
719
+ border-radius: var(--radius-base);
720
+ padding: var(--spacing-2) var(--spacing-3);
721
+ transition: outline-color var(--transition-base), box-shadow var(--transition-base);
722
+ }
723
+ .input--sm {
724
+ font-size: var(--font-size-sm);
725
+ padding: var(--spacing-1) var(--spacing-2);
726
+ }
727
+ .input--lg {
728
+ font-size: var(--font-size-lg);
729
+ padding: var(--spacing-3) var(--spacing-4);
730
+ }
731
+ .input--error {
732
+ outline-color: hsla(var(--error-hue), var(--error-saturation), 50%, 1);
733
+ }
734
+ .input--error:focus {
735
+ outline-color: hsla(var(--error-hue), var(--error-saturation), 50%, 1);
736
+ box-shadow: var(--shadow-focus-ring-error);
737
+ }
738
+ .input--disabled {
739
+ cursor: not-allowed;
740
+ opacity: 0.6;
741
+ background-color: var(--color-bg-2);
742
+ }
743
+ .input:focus {
744
+ outline-color: var(--color-action-primary);
745
+ box-shadow: var(--shadow-focus-ring);
746
+ }
747
+ .input:hover:not(:disabled):not(.input--error) {
748
+ outline-color: var(--color-action-primary-hover);
749
+ }
750
+ .input::placeholder {
751
+ color: var(--color-foreground-2);
752
+ opacity: 0.7;
753
+ }
754
+ .input--has-icon-left {
755
+ padding-left: var(--spacing-10);
756
+ }
757
+ .input--has-icon-right {
758
+ padding-right: var(--spacing-10);
759
+ }
760
+ .input--sm.input--has-icon-left {
761
+ padding-left: var(--spacing-8);
762
+ }
763
+ .input--sm.input--has-icon-right {
764
+ padding-right: var(--spacing-8);
765
+ }
766
+ .input--lg.input--has-icon-left {
767
+ padding-left: var(--spacing-12);
768
+ }
769
+ .input--lg.input--has-icon-right {
770
+ padding-right: var(--spacing-12);
771
+ }
772
+ .input__icon {
773
+ position: absolute;
774
+ display: flex;
775
+ align-items: center;
776
+ justify-content: center;
777
+ color: var(--color-foreground-2);
778
+ pointer-events: none;
779
+ }
780
+ .input__icon--left {
781
+ left: var(--spacing-3);
782
+ }
783
+ .input__icon--right {
784
+ right: var(--spacing-3);
785
+ pointer-events: auto;
786
+ background: none;
787
+ border: none;
788
+ cursor: pointer;
789
+ padding: var(--spacing-1);
790
+ border-radius: var(--radius-sm);
791
+ transition: background-color var(--transition-fast);
792
+ }
793
+ .input__icon--right:hover:not(:disabled) {
794
+ background-color: var(--color-bg-3);
795
+ color: var(--color-action-primary-hover);
796
+ }
797
+ .input__icon--right:active:not(:disabled) {
798
+ background-color: var(--color-bg-2);
799
+ color: var(--color-action-primary-active);
800
+ }
801
+ .input__icon--right:disabled {
802
+ cursor: not-allowed;
803
+ opacity: 0.6;
804
+ }
805
+ .input__icon--right:focus-visible {
806
+ outline: 2px solid var(--color-action-primary);
807
+ outline-offset: 2px;
808
+ }
809
+ .input__message {
810
+ font-size: var(--font-size-sm);
811
+ margin: 0;
812
+ color: var(--color-foreground-2);
813
+ }
814
+ .input__message--error {
815
+ color: hsla(var(--error-hue), var(--error-saturation), 60%, 1);
816
+ }
817
+ :root[data-theme=dark] .input {
818
+ background-color: var(--color-bg-2);
819
+ }
820
+ .input:-webkit-autofill,
821
+ .input:-webkit-autofill:hover,
822
+ .input:-webkit-autofill:focus {
823
+ -webkit-text-fill-color: var(--color-foreground-1);
824
+ -webkit-box-shadow: 0 0 0 1000px var(--color-bg-1) inset;
825
+ transition: background-color 5000s ease-in-out 0s;
826
+ }
827
+ :root[data-theme=dark] .input:-webkit-autofill,
828
+ :root[data-theme=dark] .input:-webkit-autofill:hover,
829
+ :root[data-theme=dark] .input:-webkit-autofill:focus {
830
+ -webkit-box-shadow: 0 0 0 1000px var(--color-bg-2) inset;
831
+ }
832
+ .input[type=search]::-webkit-search-cancel-button {
833
+ -webkit-appearance: none;
834
+ appearance: none;
835
+ }
836
+ .input__datetime-picker {
837
+ padding: var(--spacing-3);
838
+ min-width: 300px;
839
+ }
840
+ .input__datetime-combined {
841
+ display: flex;
842
+ gap: var(--spacing-3);
843
+ }
844
+ .input__trigger-wrapper {
845
+ position: relative;
846
+ display: flex;
847
+ align-items: center;
848
+ width: 100%;
849
+ }
850
+ .date-picker {
851
+ display: flex;
852
+ flex-direction: column;
853
+ gap: var(--spacing-2);
854
+ }
855
+ .date-picker__header {
856
+ display: flex;
857
+ align-items: center;
858
+ justify-content: space-between;
859
+ gap: var(--spacing-2);
860
+ padding-bottom: var(--spacing-2);
861
+ border-bottom: 1px solid var(--color-foreground-2);
862
+ }
863
+ .date-picker__nav {
864
+ background: none;
865
+ border: none;
866
+ color: var(--color-foreground-1);
867
+ font-size: var(--font-size-xl);
868
+ cursor: pointer;
869
+ padding: var(--spacing-1) var(--spacing-2);
870
+ border-radius: var(--radius-sm);
871
+ transition: background-color var(--transition-fast);
872
+ }
873
+ .date-picker__nav:hover:not(:disabled) {
874
+ background-color: var(--color-bg-3);
875
+ }
876
+ .date-picker__nav:disabled {
877
+ opacity: 0.5;
878
+ cursor: not-allowed;
879
+ }
880
+ .date-picker__title {
881
+ display: flex;
882
+ gap: var(--spacing-2);
883
+ align-items: center;
884
+ }
885
+ .date-picker__select {
886
+ background-color: var(--color-bg-1);
887
+ color: var(--color-foreground-1);
888
+ border: 1px solid var(--color-foreground-2);
889
+ border-radius: var(--radius-sm);
890
+ padding: var(--spacing-1) var(--spacing-2);
891
+ font-size: var(--font-size-sm);
892
+ cursor: pointer;
893
+ }
894
+ .date-picker__weekdays {
895
+ display: grid;
896
+ grid-template-columns: repeat(7, 1fr);
897
+ gap: var(--spacing-1);
898
+ margin-top: var(--spacing-2);
899
+ }
900
+ .date-picker__weekday {
901
+ text-align: center;
902
+ font-size: var(--font-size-xs);
903
+ font-weight: 600;
904
+ color: var(--color-foreground-2);
905
+ padding: var(--spacing-1);
906
+ }
907
+ .date-picker__days {
908
+ display: grid;
909
+ grid-template-columns: repeat(7, 1fr);
910
+ gap: var(--spacing-1);
911
+ }
912
+ .date-picker__day {
913
+ aspect-ratio: 1;
914
+ background: none;
915
+ border: none;
916
+ color: var(--color-foreground-1);
917
+ font-size: var(--font-size-sm);
918
+ cursor: pointer;
919
+ border-radius: var(--radius-sm);
920
+ transition: background-color var(--transition-fast);
921
+ padding: var(--spacing-1);
922
+ }
923
+ .date-picker__day:hover:not(:disabled):not(.date-picker__day--empty) {
924
+ background-color: var(--color-bg-3);
925
+ }
926
+ .date-picker__day--selected {
927
+ background-color: var(--color-action-primary);
928
+ color: white;
929
+ font-weight: 600;
930
+ }
931
+ .date-picker__day--empty {
932
+ cursor: default;
933
+ visibility: hidden;
934
+ }
935
+ .date-picker__day:disabled {
936
+ opacity: 0.5;
937
+ cursor: not-allowed;
938
+ }
939
+ .time-picker {
940
+ display: flex;
941
+ gap: var(--spacing-2);
942
+ min-width: 240px;
943
+ }
944
+ .time-picker__column {
945
+ flex: 1;
946
+ display: flex;
947
+ flex-direction: column;
948
+ gap: var(--spacing-1);
949
+ }
950
+ .time-picker__label {
951
+ text-align: center;
952
+ font-size: var(--font-size-xs);
953
+ font-weight: 600;
954
+ color: var(--color-foreground-2);
955
+ padding: var(--spacing-1);
956
+ }
957
+ .time-picker__scroll {
958
+ max-height: 200px;
959
+ overflow-y: auto;
960
+ border-radius: var(--radius-sm);
961
+ background: var(--color-bg-2);
962
+ }
963
+ .time-picker__item {
964
+ width: 100%;
965
+ background: none;
966
+ border: none;
967
+ color: var(--color-foreground-1);
968
+ font-size: var(--font-size-sm);
969
+ padding: var(--spacing-2);
970
+ cursor: pointer;
971
+ transition: background-color var(--transition-fast);
972
+ text-align: center;
973
+ font-variant-numeric: tabular-nums;
974
+ }
975
+ .time-picker__item:hover:not(:disabled) {
976
+ background-color: var(--color-bg-3);
977
+ }
978
+ .time-picker__item--selected {
979
+ background-color: var(--color-action-primary);
980
+ color: white;
981
+ font-weight: 600;
982
+ }
983
+ .time-picker__item:disabled {
984
+ opacity: 0.5;
985
+ cursor: not-allowed;
986
+ }
987
+
988
+ /* src/style/components/tooltip/tooltip.css */
989
+ .tooltip {
990
+ position: fixed;
991
+ z-index: var(--z-tooltip);
992
+ background: var(--color-bg-1);
993
+ border: 1px solid var(--color-bg-3);
994
+ border-color: rgba(0, 0, 0, 0.15);
995
+ border-radius: var(--radius-base);
996
+ box-shadow: var(--shadow-md);
997
+ max-width: 200px;
998
+ padding: var(--spacing-2, 0.5rem) var(--spacing-3, 0.75rem);
999
+ font-size: var(--font-size-xs, 0.75rem);
1000
+ font-weight: 500;
1001
+ color: var(--color-foreground-1);
1002
+ white-space: nowrap;
1003
+ animation: tooltip-fade-in var(--transition-fast, 0.15s ease);
1004
+ opacity: 0;
1005
+ visibility: hidden;
1006
+ pointer-events: none;
1007
+ }
1008
+ .tooltip--top {
1009
+ margin-bottom: var(--spacing-1);
1010
+ }
1011
+ .tooltip--bottom {
1012
+ margin-top: var(--spacing-1);
1013
+ }
1014
+ .tooltip--left {
1015
+ margin-right: var(--spacing-1);
1016
+ }
1017
+ .tooltip--right {
1018
+ margin-left: var(--spacing-1);
1019
+ }
1020
+ @keyframes tooltip-fade-in {
1021
+ from {
1022
+ opacity: 0;
1023
+ transform: translateY(-2px);
1024
+ }
1025
+ to {
1026
+ opacity: 1;
1027
+ transform: translateY(0);
1028
+ }
1029
+ }
1030
+ .tooltip__content {
1031
+ }
1032
+
1033
+ /* src/style/components/_shared/heading-anchor.css */
1034
+ .heading-anchor {
1035
+ opacity: 0;
1036
+ margin-left: var(--spacing-1);
1037
+ }
1038
+ *:hover > .heading-anchor,
1039
+ .heading-anchor:focus {
1040
+ opacity: 1;
1041
+ }
1042
+
1043
+ /* src/style/components/dialog/dialog.css */
1044
+ .dialog__portal {
1045
+ position: fixed;
1046
+ top: 0;
1047
+ left: 0;
1048
+ right: 0;
1049
+ bottom: 0;
1050
+ z-index: var(--z-dialog);
1051
+ display: flex;
1052
+ align-items: center;
1053
+ justify-content: center;
1054
+ padding: var(--spacing-4);
1055
+ }
1056
+ .dialog {
1057
+ position: relative;
1058
+ display: flex;
1059
+ flex-direction: column;
1060
+ background-color: var(--color-bg-1);
1061
+ border-radius: 12px;
1062
+ 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);
1063
+ max-height: calc(100vh - var(--spacing-8));
1064
+ width: 100%;
1065
+ animation: dialogSlideIn var(--motion-duration-slow) var(--motion-easing-decelerate);
1066
+ overflow: hidden;
1067
+ }
1068
+ .dialog--sm {
1069
+ max-width: 400px;
1070
+ }
1071
+ .dialog--md {
1072
+ max-width: 600px;
1073
+ }
1074
+ .dialog--lg {
1075
+ max-width: 800px;
1076
+ }
1077
+ .dialog__header {
1078
+ display: flex;
1079
+ align-items: center;
1080
+ justify-content: space-between;
1081
+ gap: var(--spacing-3);
1082
+ padding: var(--spacing-4);
1083
+ border-bottom: 1px solid var(--color-bg-2);
1084
+ }
1085
+ .dialog__title {
1086
+ margin: 0;
1087
+ font-size: var(--font-size-lg);
1088
+ font-weight: var(--font-weight-semibold);
1089
+ color: var(--color-foreground-0);
1090
+ line-height: var(--line-height-tight);
1091
+ }
1092
+ .dialog__content {
1093
+ flex: 1;
1094
+ overflow-y: auto;
1095
+ padding: var(--spacing-4);
1096
+ color: var(--color-foreground-1);
1097
+ }
1098
+ .dialog__footer {
1099
+ display: flex;
1100
+ align-items: center;
1101
+ justify-content: flex-end;
1102
+ gap: var(--spacing-2);
1103
+ padding: var(--spacing-4);
1104
+ border-top: 1px solid var(--color-bg-2);
1105
+ }
1106
+ @keyframes dialogBackdropFadeIn {
1107
+ from {
1108
+ opacity: 0;
1109
+ }
1110
+ to {
1111
+ opacity: 1;
1112
+ }
1113
+ }
1114
+ @keyframes dialogSlideIn {
1115
+ from {
1116
+ opacity: 0;
1117
+ transform: scale(0.95) translateY(-10px);
1118
+ }
1119
+ to {
1120
+ opacity: 1;
1121
+ transform: scale(1) translateY(0);
1122
+ }
1123
+ }
1124
+ @media (max-width: 640px) {
1125
+ .dialog__portal {
1126
+ padding: 0;
1127
+ align-items: flex-end;
1128
+ }
1129
+ .dialog {
1130
+ max-width: 100%;
1131
+ max-height: 90vh;
1132
+ border-radius: 12px 12px 0 0;
1133
+ animation: dialogSlideUp var(--motion-duration-slow) var(--motion-easing-decelerate);
1134
+ }
1135
+ .dialog--sm,
1136
+ .dialog--md,
1137
+ .dialog--lg {
1138
+ max-width: 100%;
1139
+ }
1140
+ @keyframes dialogSlideUp {
1141
+ from {
1142
+ opacity: 0;
1143
+ transform: translateY(100%);
1144
+ }
1145
+ to {
1146
+ opacity: 1;
1147
+ transform: translateY(0);
1148
+ }
1149
+ }
1150
+ }
1151
+ @media (min-width: 641px) and (max-width: 1024px) {
1152
+ .dialog__portal {
1153
+ padding: var(--spacing-3);
1154
+ }
1155
+ .dialog--lg {
1156
+ max-width: 90vw;
1157
+ }
1158
+ }
1159
+
1160
+ /* src/components/textarea/textarea.css */
1161
+ .rich-textarea-container {
1162
+ position: relative;
1163
+ width: 100%;
1164
+ }
1165
+ .rich-textarea {
1166
+ position: relative;
1167
+ min-height: 120px;
1168
+ max-height: 400px;
1169
+ overflow-y: auto;
1170
+ padding: var(--spacing-3);
1171
+ background-color: var(--color-bg-2);
1172
+ color: var(--color-foreground-1);
1173
+ border: 2px solid var(--color-bg-1);
1174
+ border-radius: 4px;
1175
+ font-family: inherit;
1176
+ font-size: var(--font-size-md);
1177
+ line-height: var(--line-height-base);
1178
+ outline: none;
1179
+ transition: border-color var(--motion-transition-base), box-shadow var(--motion-transition-base);
1180
+ white-space: pre-wrap;
1181
+ word-wrap: break-word;
1182
+ }
1183
+ .rich-textarea:focus {
1184
+ border-color: var(--color-action-primary);
1185
+ box-shadow: var(--shadow-focus-ring);
1186
+ }
1187
+ .rich-textarea:empty:before {
1188
+ content: attr(data-placeholder);
1189
+ color: var(--color-foreground-3);
1190
+ opacity: 0.6;
1191
+ pointer-events: none;
1192
+ }
1193
+ .rich-textarea--disabled {
1194
+ background-color: var(--color-bg-1);
1195
+ color: var(--color-foreground-3);
1196
+ cursor: not-allowed;
1197
+ opacity: 0.6;
1198
+ }
1199
+ .rich-textarea--readonly {
1200
+ background-color: var(--color-bg-1);
1201
+ cursor: default;
1202
+ }
1203
+ .rich-textarea b,
1204
+ .rich-textarea strong {
1205
+ font-weight: 700;
1206
+ }
1207
+ .rich-textarea i,
1208
+ .rich-textarea em {
1209
+ font-style: italic;
1210
+ }
1211
+ .rich-textarea u {
1212
+ text-decoration: underline;
1213
+ }
1214
+ .rich-textarea s {
1215
+ text-decoration: line-through;
1216
+ }
1217
+ .rich-textarea a {
1218
+ color: var(--color-action-primary);
1219
+ text-decoration: underline;
1220
+ cursor: pointer;
1221
+ }
1222
+ .rich-textarea a:hover {
1223
+ color: var(--color-action-primary-hover);
1224
+ }
1225
+ .rich-textarea ul,
1226
+ .rich-textarea ol {
1227
+ margin: var(--spacing-2) 0;
1228
+ padding-left: var(--spacing-5);
1229
+ }
1230
+ .rich-textarea li {
1231
+ margin: var(--spacing-1) 0;
1232
+ }
1233
+ .rich-textarea blockquote {
1234
+ margin: var(--spacing-3) 0;
1235
+ padding-left: var(--spacing-4);
1236
+ border-left: 4px solid var(--color-action-primary);
1237
+ color: var(--color-foreground-2);
1238
+ font-style: italic;
1239
+ }
1240
+ .rich-textarea pre,
1241
+ .rich-textarea code {
1242
+ font-family: "Courier New", monospace;
1243
+ background-color: var(--color-bg-1);
1244
+ padding: var(--spacing-1) var(--spacing-2);
1245
+ border-radius: 4px;
1246
+ }
1247
+ .rich-textarea pre {
1248
+ display: block;
1249
+ margin: var(--spacing-2) 0;
1250
+ padding: var(--spacing-3);
1251
+ overflow-x: auto;
1252
+ }
1253
+ .rich-textarea h1,
1254
+ .rich-textarea h2,
1255
+ .rich-textarea h3 {
1256
+ margin: var(--spacing-3) 0 var(--spacing-2);
1257
+ font-weight: 700;
1258
+ }
1259
+ .rich-textarea h1 {
1260
+ font-size: var(--font-size-2xl);
1261
+ }
1262
+ .rich-textarea h2 {
1263
+ font-size: var(--font-size-xl);
1264
+ }
1265
+ .rich-textarea h3 {
1266
+ font-size: var(--font-size-lg);
1267
+ }
1268
+ .rich-textarea p {
1269
+ margin: var(--spacing-2) 0;
1270
+ }
1271
+ .rich-textarea__toolbar {
1272
+ position: absolute;
1273
+ display: flex;
1274
+ gap: var(--spacing-1);
1275
+ padding: var(--spacing-2);
1276
+ background-color: var(--color-bg-1);
1277
+ border: 1px solid var(--color-bg-2);
1278
+ border-radius: 8px;
1279
+ box-shadow: 0 4px 12px hsla(var(--primary-hue), var(--primary-saturation), var(--primary-lightness), 0.15);
1280
+ z-index: 1000;
1281
+ transform: translateX(-50%);
1282
+ pointer-events: auto;
1283
+ }
1284
+ .rich-textarea__toolbar::before {
1285
+ content: "";
1286
+ position: absolute;
1287
+ bottom: -6px;
1288
+ left: 50%;
1289
+ transform: translateX(-50%);
1290
+ width: 0;
1291
+ height: 0;
1292
+ border-left: 6px solid transparent;
1293
+ border-right: 6px solid transparent;
1294
+ border-top: 6px solid var(--color-bg-1);
1295
+ }
1296
+ .rich-textarea__toolbar-button {
1297
+ display: flex;
1298
+ align-items: center;
1299
+ justify-content: center;
1300
+ min-width: 32px;
1301
+ height: 32px;
1302
+ padding: 0 var(--spacing-2);
1303
+ background-color: transparent;
1304
+ color: var(--color-foreground-1);
1305
+ border: 1px solid transparent;
1306
+ border-radius: 4px;
1307
+ font-size: var(--font-size-sm);
1308
+ font-weight: 600;
1309
+ cursor: pointer;
1310
+ transition: background-color var(--motion-transition-fast), border-color var(--motion-transition-fast);
1311
+ }
1312
+ .rich-textarea__toolbar-button:hover {
1313
+ background-color: var(--color-bg-2);
1314
+ border-color: var(--color-bg-3);
1315
+ }
1316
+ .rich-textarea__toolbar-button:focus {
1317
+ outline: 2px solid var(--color-action-primary);
1318
+ outline-offset: 2px;
1319
+ }
1320
+ .rich-textarea__toolbar-button--active {
1321
+ background-color: var(--color-action-primary);
1322
+ color: var(--color-on-primary);
1323
+ border-color: var(--color-action-primary);
1324
+ }
1325
+ .rich-textarea__toolbar-button--active:hover {
1326
+ background-color: var(--color-action-primary-hover);
1327
+ border-color: var(--color-action-primary-hover);
1328
+ }
1329
+ .rich-textarea__top-toolbar {
1330
+ border-bottom: 1px solid var(--color-bg-2);
1331
+ background-color: var(--color-bg-1);
1332
+ }
1333
+ .rich-textarea__top-toolbar-content {
1334
+ display: flex;
1335
+ align-items: center;
1336
+ gap: var(--spacing-2);
1337
+ padding: var(--spacing-2) 0;
1338
+ }
1339
+ .rich-textarea__heading-select {
1340
+ min-width: 120px;
1341
+ }
1342
+ .rich-textarea__top-toolbar-buttons {
1343
+ display: flex;
1344
+ align-items: center;
1345
+ gap: var(--spacing-1);
1346
+ }
1347
+ .rich-textarea-container--with-top-toolbar .rich-textarea {
1348
+ border-top: none;
1349
+ border-top-left-radius: 0;
1350
+ border-top-right-radius: 0;
1351
+ }
1352
+ .rich-textarea-container .rich-textarea a {
1353
+ cursor: text;
1354
+ color: var(--color-action-primary);
1355
+ text-decoration: underline;
1356
+ }
1357
+ .rich-textarea-container--holding-ctrl .rich-textarea a {
1358
+ cursor: pointer;
1359
+ }