doom-design-system 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/dist/components/Accordion/Accordion.module.css +121 -124
  2. package/dist/components/ActionRow/ActionRow.module.css +25 -24
  3. package/dist/components/Alert/Alert.module.css +74 -76
  4. package/dist/components/Avatar/Avatar.module.css +66 -66
  5. package/dist/components/Badge/Badge.module.css +50 -48
  6. package/dist/components/Breadcrumbs/Breadcrumbs.module.css +32 -33
  7. package/dist/components/Button/Button.d.ts +2 -2
  8. package/dist/components/Button/Button.js +1 -1
  9. package/dist/components/Button/Button.module.css +150 -152
  10. package/dist/components/Card/Card.module.css +37 -39
  11. package/dist/components/Chart/Chart.module.css +213 -245
  12. package/dist/components/Chart/behaviors/DraggablePuck.d.ts +36 -0
  13. package/dist/components/Chart/behaviors/DraggablePuck.js +94 -0
  14. package/dist/components/Chart/behaviors/Markers.js +6 -4
  15. package/dist/components/Chart/behaviors/SelectionUpdate.js +2 -4
  16. package/dist/components/Chart/behaviors/index.d.ts +1 -1
  17. package/dist/components/Chart/behaviors/index.js +1 -1
  18. package/dist/components/Chart/engine/CoordinateSystem.d.ts +59 -0
  19. package/dist/components/Chart/engine/CoordinateSystem.js +126 -0
  20. package/dist/components/Chart/engine/Engine.d.ts +102 -0
  21. package/dist/components/Chart/engine/Engine.js +226 -0
  22. package/dist/components/Chart/engine/Scheduler.d.ts +59 -0
  23. package/dist/components/Chart/engine/Scheduler.js +139 -0
  24. package/dist/components/Chart/engine/SpatialMap.d.ts +114 -0
  25. package/dist/components/Chart/engine/SpatialMap.js +270 -0
  26. package/dist/components/Chart/engine/index.d.ts +13 -0
  27. package/dist/components/Chart/engine/index.js +9 -0
  28. package/dist/components/Chart/engine/types.d.ts +137 -0
  29. package/dist/components/Chart/engine/types.js +47 -0
  30. package/dist/components/Chart/hooks/useEngine.d.ts +43 -0
  31. package/dist/components/Chart/hooks/useEngine.js +128 -0
  32. package/dist/components/Chart/sensors/DataHoverSensor/DataHoverSensor.d.ts +17 -19
  33. package/dist/components/Chart/sensors/DataHoverSensor/DataHoverSensor.js +38 -51
  34. package/dist/components/Chart/sensors/DragSensor/DragSensor.d.ts +38 -0
  35. package/dist/components/Chart/sensors/DragSensor/DragSensor.js +105 -0
  36. package/dist/components/Chart/sensors/DragSensor/index.d.ts +2 -0
  37. package/dist/components/Chart/sensors/DragSensor/index.js +1 -0
  38. package/dist/components/Chart/sensors/{KeyboardSensor.d.ts → KeyboardSensor/KeyboardSensor.d.ts} +1 -1
  39. package/dist/components/Chart/sensors/KeyboardSensor/KeyboardSensor.js +86 -0
  40. package/dist/components/Chart/sensors/KeyboardSensor/index.d.ts +1 -0
  41. package/dist/components/Chart/sensors/KeyboardSensor/index.js +1 -0
  42. package/dist/components/Chart/sensors/{SelectionSensor.d.ts → SelectionSensor/SelectionSensor.d.ts} +2 -2
  43. package/dist/components/Chart/sensors/SelectionSensor/SelectionSensor.js +39 -0
  44. package/dist/components/Chart/sensors/SelectionSensor/index.d.ts +1 -0
  45. package/dist/components/Chart/sensors/SelectionSensor/index.js +1 -0
  46. package/dist/components/Chart/sensors/SensorManager/SensorManager.js +36 -41
  47. package/dist/components/Chart/sensors/index.d.ts +1 -0
  48. package/dist/components/Chart/sensors/index.js +3 -2
  49. package/dist/components/Chart/sensors/utils/search.d.ts +1 -1
  50. package/dist/components/Chart/sensors/utils/search.js +25 -4
  51. package/dist/components/Chart/state/store/chart.store.js +18 -0
  52. package/dist/components/Chart/state/store/slices/series.slice.d.ts +1 -0
  53. package/dist/components/Chart/state/store/slices/series.slice.js +3 -2
  54. package/dist/components/Chart/subcomponents/Axis/Axis.module.css +32 -33
  55. package/dist/components/Chart/subcomponents/BarSeries/BarSeries.js +6 -1
  56. package/dist/components/Chart/subcomponents/BarSeries/BarSeries.module.css +11 -9
  57. package/dist/components/Chart/subcomponents/Cursor/Cursor.js +8 -1
  58. package/dist/components/Chart/subcomponents/Cursor/Cursor.module.css +14 -13
  59. package/dist/components/Chart/subcomponents/CustomSeries/CustomSeries.js +4 -0
  60. package/dist/components/Chart/subcomponents/CustomSeries/CustomSeries.module.css +5 -3
  61. package/dist/components/Chart/subcomponents/Footer/Footer.module.css +5 -3
  62. package/dist/components/Chart/subcomponents/Grid/Grid.module.css +12 -11
  63. package/dist/components/Chart/subcomponents/Header/Header.module.css +8 -7
  64. package/dist/components/Chart/subcomponents/InteractionLayer/InteractionLayer.d.ts +4 -4
  65. package/dist/components/Chart/subcomponents/InteractionLayer/InteractionLayer.js +39 -76
  66. package/dist/components/Chart/subcomponents/Legend/Legend.module.css +30 -32
  67. package/dist/components/Chart/subcomponents/LineSeries/LineSeries.js +9 -3
  68. package/dist/components/Chart/subcomponents/LineSeries/LineSeries.module.css +21 -21
  69. package/dist/components/Chart/subcomponents/Root/Root.js +113 -7
  70. package/dist/components/Chart/subcomponents/Root/Root.module.css +70 -82
  71. package/dist/components/Chart/subcomponents/ScatterSeries/ScatterSeries.js +6 -1
  72. package/dist/components/Chart/subcomponents/ScatterSeries/ScatterSeries.module.css +7 -5
  73. package/dist/components/Chart/subcomponents/Series/Series.module.css +118 -128
  74. package/dist/components/Chart/subcomponents/SeriesPoint/SeriesPoint.module.css +10 -8
  75. package/dist/components/Chart/subcomponents/Tooltip/Tooltip.js +2 -3
  76. package/dist/components/Chart/subcomponents/Tooltip/Tooltip.module.css +52 -67
  77. package/dist/components/Chart/types/context.d.ts +9 -0
  78. package/dist/components/Chart/types/events.d.ts +5 -7
  79. package/dist/components/Chart/types/interaction.d.ts +24 -2
  80. package/dist/components/Chart/types/interaction.js +1 -0
  81. package/dist/components/Checkbox/Checkbox.module.css +57 -59
  82. package/dist/components/Chip/Chip.module.css +105 -115
  83. package/dist/components/Combobox/Combobox.d.ts +2 -1
  84. package/dist/components/Combobox/Combobox.js +2 -2
  85. package/dist/components/Combobox/Combobox.module.css +233 -210
  86. package/dist/components/CopyButton/CopyButton.module.css +84 -90
  87. package/dist/components/Drawer/Drawer.module.css +126 -145
  88. package/dist/components/Dropdown/Dropdown.d.ts +3 -1
  89. package/dist/components/Dropdown/Dropdown.js +3 -3
  90. package/dist/components/Dropdown/Dropdown.module.css +52 -32
  91. package/dist/components/FileUpload/FileUpload.js +24 -0
  92. package/dist/components/FileUpload/FileUpload.module.css +295 -313
  93. package/dist/components/Form/Form.module.css +35 -39
  94. package/dist/components/Image/Image.module.css +53 -54
  95. package/dist/components/Input/Input.d.ts +4 -2
  96. package/dist/components/Input/Input.js +2 -2
  97. package/dist/components/Input/Input.module.css +135 -119
  98. package/dist/components/Label/Label.module.css +17 -15
  99. package/dist/components/Layout/Layout.module.css +95 -111
  100. package/dist/components/Link/Link.module.css +67 -65
  101. package/dist/components/Modal/Modal.module.css +112 -132
  102. package/dist/components/Page/Page.module.css +21 -21
  103. package/dist/components/Pagination/Pagination.module.css +56 -56
  104. package/dist/components/Popover/Popover.module.css +17 -16
  105. package/dist/components/ProgressBar/ProgressBar.module.css +36 -37
  106. package/dist/components/RadioGroup/RadioGroup.module.css +74 -77
  107. package/dist/components/Select/Select.d.ts +2 -1
  108. package/dist/components/Select/Select.js +2 -2
  109. package/dist/components/Select/Select.module.css +133 -98
  110. package/dist/components/Sheet/Sheet.module.css +134 -154
  111. package/dist/components/Sidebar/Sidebar.module.css +72 -74
  112. package/dist/components/Sidebar/subcomponents/Footer/Footer.module.css +7 -5
  113. package/dist/components/Sidebar/subcomponents/Group/Group.module.css +80 -85
  114. package/dist/components/Sidebar/subcomponents/Header/Header.module.css +12 -10
  115. package/dist/components/Sidebar/subcomponents/Item/Item.module.css +54 -55
  116. package/dist/components/Sidebar/subcomponents/MobileOverlay/MobileOverlay.module.css +38 -38
  117. package/dist/components/Sidebar/subcomponents/MobileTrigger/MobileTrigger.module.css +5 -3
  118. package/dist/components/Sidebar/subcomponents/Nav/Nav.module.css +13 -11
  119. package/dist/components/Sidebar/subcomponents/Rail/Rail.module.css +62 -63
  120. package/dist/components/Sidebar/subcomponents/Section/Section.module.css +86 -91
  121. package/dist/components/Skeleton/Skeleton.module.css +28 -26
  122. package/dist/components/Slat/Slat.module.css +93 -94
  123. package/dist/components/Slider/Slider.module.css +116 -121
  124. package/dist/components/Spinner/Spinner.module.css +28 -27
  125. package/dist/components/SplitButton/SplitButton.d.ts +3 -1
  126. package/dist/components/SplitButton/SplitButton.js +2 -2
  127. package/dist/components/SplitButton/SplitButton.module.css +104 -87
  128. package/dist/components/Switch/Switch.module.css +64 -63
  129. package/dist/components/Table/FilterBuilder/FilterBuilder.module.css +36 -36
  130. package/dist/components/Table/FilterBuilder/FilterConditionRow.js +1 -1
  131. package/dist/components/Table/FilterBuilder/FilterConditionRow.module.css +21 -22
  132. package/dist/components/Table/FilterBuilder/FilterGroup.js +4 -4
  133. package/dist/components/Table/FilterBuilder/FilterGroup.module.css +355 -389
  134. package/dist/components/Table/FilterBuilder/FilterSheet.module.css +68 -71
  135. package/dist/components/Table/Table.d.ts +4 -2
  136. package/dist/components/Table/Table.js +50 -13
  137. package/dist/components/Table/Table.module.css +210 -188
  138. package/dist/components/Table/TableHeaderFilter.js +1 -1
  139. package/dist/components/Table/TableHeaderFilter.module.css +51 -57
  140. package/dist/components/Tabs/Tabs.module.css +79 -80
  141. package/dist/components/Text/Text.module.css +108 -131
  142. package/dist/components/Textarea/Textarea.d.ts +3 -1
  143. package/dist/components/Textarea/Textarea.js +2 -2
  144. package/dist/components/Textarea/Textarea.module.css +114 -94
  145. package/dist/components/Toast/Toast.module.css +82 -82
  146. package/dist/components/Tooltip/Tooltip.module.css +17 -16
  147. package/dist/styles/globals.css +1677 -1691
  148. package/dist/styles/palettes.d.ts +0 -5
  149. package/dist/styles/palettes.js +0 -8
  150. package/dist/styles/themes/definitions.d.ts +0 -8
  151. package/dist/styles/themes/definitions.js +117 -5
  152. package/dist/styles/types.d.ts +2 -0
  153. package/dist/styles/types.js +1 -0
  154. package/dist/tsconfig.build.tsbuildinfo +1 -1
  155. package/package.json +4 -4
  156. package/.agent/skills/doom/a2ui/a2ui-examples.md +0 -289
  157. package/.agent/skills/doom/a2ui/a2ui-principles.md +0 -49
  158. package/.agent/skills/doom/a2ui/a2ui-protocol.md +0 -191
  159. package/.agent/skills/doom/components/a2ui.md +0 -46
  160. package/.agent/skills/doom/components/accordion.md +0 -44
  161. package/.agent/skills/doom/components/actionrow.md +0 -33
  162. package/.agent/skills/doom/components/alert.md +0 -35
  163. package/.agent/skills/doom/components/avatar.md +0 -36
  164. package/.agent/skills/doom/components/badge.md +0 -29
  165. package/.agent/skills/doom/components/breadcrumbs.md +0 -33
  166. package/.agent/skills/doom/components/button.md +0 -43
  167. package/.agent/skills/doom/components/card.md +0 -41
  168. package/.agent/skills/doom/components/chart.md +0 -106
  169. package/.agent/skills/doom/components/checkbox.md +0 -38
  170. package/.agent/skills/doom/components/chip.md +0 -35
  171. package/.agent/skills/doom/components/combobox.md +0 -50
  172. package/.agent/skills/doom/components/copybutton.md +0 -41
  173. package/.agent/skills/doom/components/drawer.md +0 -69
  174. package/.agent/skills/doom/components/dropdown.md +0 -33
  175. package/.agent/skills/doom/components/fileupload.md +0 -49
  176. package/.agent/skills/doom/components/form.md +0 -55
  177. package/.agent/skills/doom/components/icon.md +0 -47
  178. package/.agent/skills/doom/components/image.md +0 -48
  179. package/.agent/skills/doom/components/input.md +0 -54
  180. package/.agent/skills/doom/components/label.md +0 -32
  181. package/.agent/skills/doom/components/layout.md +0 -92
  182. package/.agent/skills/doom/components/link.md +0 -39
  183. package/.agent/skills/doom/components/modal.md +0 -71
  184. package/.agent/skills/doom/components/page.md +0 -41
  185. package/.agent/skills/doom/components/pagination.md +0 -32
  186. package/.agent/skills/doom/components/popover.md +0 -45
  187. package/.agent/skills/doom/components/progressbar.md +0 -37
  188. package/.agent/skills/doom/components/radiogroup.md +0 -45
  189. package/.agent/skills/doom/components/select.md +0 -43
  190. package/.agent/skills/doom/components/sheet.md +0 -71
  191. package/.agent/skills/doom/components/sidebar.md +0 -92
  192. package/.agent/skills/doom/components/skeleton.md +0 -35
  193. package/.agent/skills/doom/components/slat.md +0 -46
  194. package/.agent/skills/doom/components/slider.md +0 -51
  195. package/.agent/skills/doom/components/spinner.md +0 -34
  196. package/.agent/skills/doom/components/splitbutton.md +0 -35
  197. package/.agent/skills/doom/components/switch.md +0 -40
  198. package/.agent/skills/doom/components/table.md +0 -82
  199. package/.agent/skills/doom/components/tabs.md +0 -65
  200. package/.agent/skills/doom/components/text.md +0 -42
  201. package/.agent/skills/doom/components/textarea.md +0 -46
  202. package/.agent/skills/doom/components/toast.md +0 -59
  203. package/.agent/skills/doom/components/tooltip.md +0 -35
  204. package/.agent/skills/doom/index.md +0 -167
  205. package/.agent/skills/doom/styles/aesthetic.md +0 -151
  206. package/.agent/skills/doom/styles/css-variables.md +0 -80
  207. package/.agent/skills/doom/styles/mixins.md +0 -97
  208. package/.agent/skills/doom/styles/tokens.md +0 -129
  209. package/.agent/skills/doom/styles/utilities.md +0 -84
  210. package/dist/components/Chart/sensors/KeyboardSensor.js +0 -82
  211. package/dist/components/Chart/sensors/SelectionSensor.js +0 -41
@@ -1,330 +1,312 @@
1
- .window {
2
- background-color: var(--card-bg);
3
- border: var(--border-width) solid var(--card-border);
4
- border-radius: var(--radius);
5
- box-shadow: var(--shadow-hard);
6
- padding: 0;
7
- display: flex;
8
- flex-direction: column;
9
- overflow: hidden;
10
- position: relative;
11
- transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
12
- width: 100%;
13
- max-width: 100%;
14
- min-width: var(--spacing-72);
15
- }
16
- .window.disabled {
17
- cursor: not-allowed;
18
- opacity: 0.6;
19
- cursor: not-allowed !important;
20
- background-image: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(0, 0, 0, 0.05) 10px, rgba(0, 0, 0, 0.05) 20px) !important;
21
- }
22
- .window.disabled:hover {
23
- transform: none !important;
24
- filter: none !important;
25
- }
26
- .window.disabled {
27
- /*
28
- .window should be able to override all children css and this is an example of that
29
- */
30
- }
31
- .window.disabled * {
32
- pointer-events: none;
33
- }
34
- .window.disabled::after {
35
- content: "";
36
- position: absolute;
37
- inset: 0;
38
- pointer-events: none;
39
- z-index: 20;
40
- }
41
- .window.void {
42
- border-color: transparent;
43
- box-shadow: 0 0 0 var(--spacing-1) var(--foreground);
44
- transform: scale(1.01);
45
- cursor: wait;
46
- }
47
- .window.void .header {
48
- background-color: var(--common-black);
49
- color: var(--background);
50
- border-bottom: none;
51
- }
52
- .window.void .header > * {
53
- --primary: var(--common-white);
54
- --primary-foreground: var(--common-black);
55
- }
56
- .window.void .body {
57
- background-color: var(--common-black);
58
- cursor: wait;
59
- margin-top: -1px;
60
- position: relative;
61
- z-index: 1;
62
- overflow: hidden;
63
- }
64
- .window.void .body::before, .window.void .body::after {
65
- content: "";
66
- position: absolute;
67
- inset: -50%;
68
- width: 200%;
69
- height: 200%;
70
- background-image: radial-gradient(1px 1px at 20% 30%, #fff 100%, transparent), radial-gradient(1px 1px at 40% 70%, #fff 100%, transparent), radial-gradient(1px 1px at 60% 40%, #fff 100%, transparent), radial-gradient(1px 1px at 80% 80%, #fff 100%, transparent), radial-gradient(1px 1px at 10% 10%, #fff 100%, transparent), radial-gradient(1px 1px at 30% 50%, #fff 100%, transparent), radial-gradient(1px 1px at 50% 20%, #fff 100%, transparent), radial-gradient(1px 1px at 70% 90%, #fff 100%, transparent), radial-gradient(1px 1px at 90% 30%, #fff 100%, transparent), radial-gradient(1.5px 1.5px at 15% 75%, #fff 100%, transparent), radial-gradient(1px 1px at 85% 15%, #fff 100%, transparent), radial-gradient(1px 1px at 55% 65%, #fff 100%, transparent);
71
- background-size: 50% 50%;
72
- opacity: 0.5;
73
- z-index: 0;
74
- animation: consume-stars 6s cubic-bezier(0.4, 0, 0.6, 1) infinite;
75
- pointer-events: none;
76
- }
77
- .window.void .body::after {
78
- animation-name: consume-stars-alt;
79
- animation-delay: -3s;
80
- background-position: 33% 33%;
81
- opacity: 0.3;
82
- }
83
- .window.void .body .starField {
84
- position: absolute;
85
- inset: 0;
86
- pointer-events: none;
87
- z-index: 0;
88
- overflow: hidden;
89
- }
90
- .window.void .body .starField::before, .window.void .body .starField::after {
91
- content: "";
92
- position: absolute;
93
- inset: -50%;
94
- width: 200%;
95
- height: 200%;
96
- background-image: radial-gradient(1px 1px at 25% 35%, #fff 100%, transparent), radial-gradient(1px 1px at 45% 75%, #fff 100%, transparent), radial-gradient(1px 1px at 65% 45%, #fff 100%, transparent), radial-gradient(1px 1px at 85% 85%, #fff 100%, transparent), radial-gradient(1px 1px at 15% 15%, #fff 100%, transparent), radial-gradient(1px 1px at 35% 55%, #fff 100%, transparent), radial-gradient(1px 1px at 55% 25%, #fff 100%, transparent), radial-gradient(1px 1px at 75% 95%, #fff 100%, transparent), radial-gradient(1px 1px at 95% 35%, #fff 100%, transparent), radial-gradient(1.5px 1.5px at 20% 80%, #fff 100%, transparent), radial-gradient(1px 1px at 90% 20%, #fff 100%, transparent), radial-gradient(1px 1px at 60% 70%, #fff 100%, transparent);
97
- background-size: 50% 50%;
98
- opacity: 0.5;
99
- animation: consume-stars 6s cubic-bezier(0.4, 0, 0.6, 1) infinite;
100
- animation-delay: -1.5s;
101
- }
102
- .window.void .body .starField::after {
103
- animation-name: consume-stars-alt;
104
- animation-delay: -4.5s;
105
- background-position: 40% 40%;
106
- opacity: 0.3;
107
- }
108
- .window.void .headerContent,
109
- .window.void .headerTitle {
110
- opacity: 0;
111
- visibility: hidden;
112
- }
113
- .window.void .voidIconWrapper,
114
- .window.void .voidText,
115
- .window.void .secondary,
116
- .window.void .helperText {
117
- opacity: 0;
118
- transform: scale(0.9);
119
- pointer-events: none;
120
- }
121
-
122
- .header {
123
- background-color: var(--primary);
124
- color: var(--primary-foreground);
125
- padding: var(--spacing-2) var(--spacing-4);
126
- border-bottom: var(--border-width) solid var(--border-strong);
127
- user-select: none;
128
- min-height: var(--header-height);
129
- transition: all 0.4s ease;
130
- }
131
- @media (max-width: 480px) {
132
- .header {
133
- padding: var(--spacing-2);
134
- min-height: var(--header-height-sm);
1
+ @layer doom.components {
2
+ .window {
3
+ background-color: var(--card-bg);
4
+ border: var(--surface-border-width) solid var(--card-border);
5
+ border-radius: var(--radius-md);
6
+ box-shadow: var(--shadow-md);
7
+ padding: 0;
8
+ display: flex;
9
+ flex-direction: column;
10
+ overflow: hidden;
11
+ position: relative;
12
+ transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
13
+ width: 100%;
14
+ max-width: 100%;
15
+ min-width: 288px;
135
16
  }
136
- }
137
- @media (max-width: 360px) {
138
- .header {
139
- padding: var(--spacing-4);
17
+ .window.disabled {
18
+ cursor: not-allowed;
19
+ opacity: 0.6;
20
+ cursor: not-allowed !important;
21
+ background-image: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(0, 0, 0, 0.05) 10px, rgba(0, 0, 0, 0.05) 20px) !important;
140
22
  }
141
- }
142
- .header > * {
143
- --primary: var(--primary-foreground);
144
- --primary-foreground: var(--primary);
145
- --foreground: var(--primary-foreground);
146
- --muted-foreground: var(--primary-foreground);
147
- }
148
- .header.errorHeader {
149
- background-color: var(--error);
150
- color: var(--error-foreground);
151
- }
152
- .header.disabledHeader {
153
- background-color: var(--muted);
154
- color: var(--muted-foreground);
155
- opacity: 0.6;
156
- cursor: not-allowed !important;
157
- background-image: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(0, 0, 0, 0.05) 10px, rgba(0, 0, 0, 0.05) 20px) !important;
158
- }
159
- .header.disabledHeader:hover {
160
- transform: none !important;
161
- filter: none !important;
162
- }
163
- .header.disabledHeader {
164
- opacity: 1;
165
- }
166
-
167
- .headerContent {
168
- flex: 1;
169
- min-width: 0;
170
- }
171
-
172
- .headerTitle {
173
- font-family: var(--font-heading);
174
- font-weight: 800;
175
- font-size: var(--text-sm);
176
- letter-spacing: 0.05em;
177
- text-transform: uppercase;
178
- line-height: 1.2;
179
- display: block;
180
- }
181
-
182
- .requiredMark {
183
- display: inline-flex;
184
- vertical-align: middle;
185
- margin-left: 2px;
186
- color: inherit;
187
- transform: translateY(-2px);
188
- }
189
-
190
- .body {
191
- padding: var(--spacing-6);
192
- background-color: var(--card-bg);
193
- min-height: var(--spacing-56);
194
- display: flex;
195
- flex-direction: column;
196
- align-items: center;
197
- justify-content: center;
198
- cursor: pointer;
199
- transition: background-color 0.2s ease;
200
- position: relative;
201
- }
202
- @media (max-width: 640px) {
203
- .body {
204
- padding: var(--spacing-4);
205
- min-height: var(--spacing-40);
23
+ .window.disabled:hover {
24
+ transform: none !important;
25
+ filter: none !important;
206
26
  }
207
- }
208
- @media (max-width: 360px) {
209
- .body {
210
- padding: var(--spacing-2) var(--spacing-4);
27
+ .window.disabled * {
28
+ pointer-events: none;
211
29
  }
212
- }
213
- .body.hasFiles {
214
- justify-content: flex-start;
215
- align-items: stretch;
216
- cursor: default;
217
- }
218
- .body.dragging, .body.error {
219
- background-color: var(--surface-accent);
220
- }
221
-
222
- .emptyState {
223
- width: 100%;
224
- cursor: pointer;
225
- outline: none;
226
- border-radius: var(--radius);
227
- transition: background-color 0.2s ease;
228
- }
229
- .emptyState:focus-visible {
230
- box-shadow: 0 0 0 var(--spacing-half) var(--background), 0 0 0 var(--spacing-1) var(--primary);
231
- }
232
- .void .emptyState:hover {
233
- background-color: transparent;
234
- cursor: wait;
235
- }
236
- .emptyState {
237
- text-align: center;
238
- }
239
-
240
- .voidIconWrapper {
241
- transition: all 0.3s ease;
242
- padding: var(--spacing-4);
243
- margin-bottom: var(--spacing-2);
244
- }
245
-
246
- .icon {
247
- color: var(--muted-foreground);
248
- transition: all 0.3s ease;
249
- }
250
- @media (max-width: 480px) {
251
- .icon {
252
- width: var(--spacing-8);
253
- height: var(--spacing-8);
30
+ .window.disabled::after {
31
+ content: "";
32
+ position: absolute;
33
+ inset: 0;
34
+ pointer-events: none;
35
+ z-index: 20;
254
36
  }
255
- }
256
-
257
- .secondary {
258
- color: var(--muted-foreground);
259
- opacity: 0.8;
260
- }
261
-
262
- .hiddenInput {
263
- display: none;
264
- }
265
-
266
- .fileList {
267
- width: 100%;
268
- flex: 1;
269
- }
270
-
271
- .removeButton {
272
- width: var(--spacing-8);
273
- height: var(--spacing-8);
274
- padding: 0 !important;
275
- flex-shrink: 0;
276
- }
277
-
278
- @keyframes consume-stars {
279
- 0% {
280
- transform: scale(2.5) rotate(0deg);
281
- opacity: 0;
37
+ .window.void {
38
+ border-color: transparent;
39
+ box-shadow: 0 0 0 var(--space-1) var(--foreground);
40
+ transform: scale(1.01);
41
+ cursor: wait;
282
42
  }
283
- 5% {
284
- opacity: 1;
43
+ .window.void .header {
44
+ background-color: var(--common-black);
45
+ color: var(--background);
46
+ border-bottom: none;
285
47
  }
286
- 95% {
287
- opacity: 1;
48
+ .window.void .header > * {
49
+ --primary: var(--common-white);
50
+ --primary-foreground: var(--common-black);
51
+ }
52
+ .window.void .body {
53
+ background-color: var(--common-black);
54
+ cursor: wait;
55
+ margin-top: -1px;
56
+ position: relative;
57
+ z-index: 1;
58
+ overflow: hidden;
59
+ }
60
+ .window.void .body::before, .window.void .body::after {
61
+ content: "";
62
+ position: absolute;
63
+ inset: -50%;
64
+ width: 200%;
65
+ height: 200%;
66
+ background-image: radial-gradient(1px 1px at 20% 30%, #fff 100%, transparent), radial-gradient(1px 1px at 40% 70%, #fff 100%, transparent), radial-gradient(1px 1px at 60% 40%, #fff 100%, transparent), radial-gradient(1px 1px at 80% 80%, #fff 100%, transparent), radial-gradient(1px 1px at 10% 10%, #fff 100%, transparent), radial-gradient(1px 1px at 30% 50%, #fff 100%, transparent), radial-gradient(1px 1px at 50% 20%, #fff 100%, transparent), radial-gradient(1px 1px at 70% 90%, #fff 100%, transparent), radial-gradient(1px 1px at 90% 30%, #fff 100%, transparent), radial-gradient(1.5px 1.5px at 15% 75%, #fff 100%, transparent), radial-gradient(1px 1px at 85% 15%, #fff 100%, transparent), radial-gradient(1px 1px at 55% 65%, #fff 100%, transparent);
67
+ background-size: 50% 50%;
68
+ opacity: 0.5;
69
+ z-index: 0;
70
+ animation: consume-stars 6s cubic-bezier(0.4, 0, 0.6, 1) infinite;
71
+ pointer-events: none;
288
72
  }
289
- 100% {
290
- transform: scale(0) rotate(360deg);
73
+ .window.void .body::after {
74
+ animation-name: consume-stars-alt;
75
+ animation-delay: -3s;
76
+ background-position: 33% 33%;
77
+ opacity: 0.3;
78
+ }
79
+ .window.void .body .starField {
80
+ position: absolute;
81
+ inset: 0;
82
+ pointer-events: none;
83
+ z-index: 0;
84
+ overflow: hidden;
85
+ }
86
+ .window.void .body .starField::before, .window.void .body .starField::after {
87
+ content: "";
88
+ position: absolute;
89
+ inset: -50%;
90
+ width: 200%;
91
+ height: 200%;
92
+ background-image: radial-gradient(1px 1px at 25% 35%, #fff 100%, transparent), radial-gradient(1px 1px at 45% 75%, #fff 100%, transparent), radial-gradient(1px 1px at 65% 45%, #fff 100%, transparent), radial-gradient(1px 1px at 85% 85%, #fff 100%, transparent), radial-gradient(1px 1px at 15% 15%, #fff 100%, transparent), radial-gradient(1px 1px at 35% 55%, #fff 100%, transparent), radial-gradient(1px 1px at 55% 25%, #fff 100%, transparent), radial-gradient(1px 1px at 75% 95%, #fff 100%, transparent), radial-gradient(1px 1px at 95% 35%, #fff 100%, transparent), radial-gradient(1.5px 1.5px at 20% 80%, #fff 100%, transparent), radial-gradient(1px 1px at 90% 20%, #fff 100%, transparent), radial-gradient(1px 1px at 60% 70%, #fff 100%, transparent);
93
+ background-size: 50% 50%;
94
+ opacity: 0.5;
95
+ animation: consume-stars 6s cubic-bezier(0.4, 0, 0.6, 1) infinite;
96
+ animation-delay: -1.5s;
97
+ }
98
+ .window.void .body .starField::after {
99
+ animation-name: consume-stars-alt;
100
+ animation-delay: -4.5s;
101
+ background-position: 40% 40%;
102
+ opacity: 0.3;
103
+ }
104
+ .window.void .headerContent,
105
+ .window.void .headerTitle {
291
106
  opacity: 0;
107
+ visibility: hidden;
292
108
  }
293
- }
294
- @keyframes consume-stars-alt {
295
- 0% {
296
- transform: scale(3) rotate(45deg);
109
+ .window.void .voidIconWrapper,
110
+ .window.void .voidText,
111
+ .window.void .secondary,
112
+ .window.void .helperText {
297
113
  opacity: 0;
114
+ transform: scale(0.9);
115
+ pointer-events: none;
298
116
  }
299
- 5% {
300
- opacity: 1;
117
+ .header {
118
+ background-color: var(--primary);
119
+ color: var(--primary-foreground);
120
+ padding: var(--space-2) var(--space-4);
121
+ border-bottom: var(--surface-border-width) solid var(--border-strong);
122
+ user-select: none;
123
+ min-height: var(--header-height);
124
+ transition: all 0.4s ease;
125
+ }
126
+ @media (max-width: 480px) {
127
+ .header {
128
+ padding: var(--space-2);
129
+ min-height: var(--header-height-sm);
130
+ }
131
+ }
132
+ @media (max-width: 360px) {
133
+ .header {
134
+ padding: var(--space-4);
135
+ }
136
+ }
137
+ .header > * {
138
+ --primary: var(--primary-foreground);
139
+ --primary-foreground: var(--primary);
140
+ --foreground: var(--primary-foreground);
141
+ --muted-foreground: var(--primary-foreground);
142
+ }
143
+ .header.errorHeader {
144
+ background-color: var(--error);
145
+ color: var(--error-foreground);
146
+ }
147
+ .header.disabledHeader {
148
+ background-color: var(--muted);
149
+ color: var(--muted-foreground);
150
+ opacity: 0.6;
151
+ cursor: not-allowed !important;
152
+ background-image: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(0, 0, 0, 0.05) 10px, rgba(0, 0, 0, 0.05) 20px) !important;
301
153
  }
302
- 95% {
154
+ .header.disabledHeader:hover {
155
+ transform: none !important;
156
+ filter: none !important;
157
+ }
158
+ .header.disabledHeader {
303
159
  opacity: 1;
304
160
  }
305
- 100% {
306
- transform: scale(0) rotate(405deg);
307
- opacity: 0;
161
+ .headerContent {
162
+ flex: 1;
163
+ min-width: 0;
164
+ }
165
+ .headerTitle {
166
+ font-family: var(--font-heading);
167
+ font-weight: 800;
168
+ font-size: var(--text-sm);
169
+ letter-spacing: 0.05em;
170
+ text-transform: uppercase;
171
+ line-height: 1.2;
172
+ display: block;
173
+ }
174
+ .requiredMark {
175
+ display: inline-flex;
176
+ vertical-align: middle;
177
+ margin-left: 2px;
178
+ color: inherit;
179
+ transform: translateY(-2px);
180
+ }
181
+ .body {
182
+ padding: var(--space-6);
183
+ background-color: var(--card-bg);
184
+ min-height: 224px;
185
+ display: flex;
186
+ flex-direction: column;
187
+ align-items: center;
188
+ justify-content: center;
189
+ cursor: pointer;
190
+ transition: background-color 0.2s ease;
191
+ position: relative;
192
+ }
193
+ @media (max-width: 640px) {
194
+ .body {
195
+ padding: var(--space-4);
196
+ min-height: 160px;
197
+ }
198
+ }
199
+ @media (max-width: 360px) {
200
+ .body {
201
+ padding: var(--space-2) var(--space-4);
202
+ }
203
+ }
204
+ .body.hasFiles {
205
+ justify-content: flex-start;
206
+ align-items: stretch;
207
+ cursor: default;
208
+ }
209
+ .body.dragging, .body.error {
210
+ background-color: var(--surface-accent);
211
+ }
212
+ .emptyState {
213
+ width: 100%;
214
+ cursor: pointer;
215
+ outline: none;
216
+ border-radius: var(--radius-md);
217
+ transition: background-color 0.2s ease;
218
+ }
219
+ .emptyState:focus-visible {
220
+ box-shadow: 0 0 0 var(--space-0\.5) var(--background), 0 0 0 var(--space-1) var(--primary);
221
+ }
222
+ .void .emptyState:hover {
223
+ background-color: transparent;
224
+ cursor: wait;
225
+ }
226
+ .emptyState {
227
+ text-align: center;
228
+ }
229
+ .voidIconWrapper {
230
+ transition: all 0.3s ease;
231
+ padding: var(--space-4);
232
+ margin-bottom: var(--space-2);
233
+ }
234
+ .icon {
235
+ color: var(--muted-foreground);
236
+ transition: all 0.3s ease;
237
+ }
238
+ @media (max-width: 480px) {
239
+ .icon {
240
+ width: var(--space-8);
241
+ height: var(--space-8);
242
+ }
243
+ }
244
+ .secondary {
245
+ color: var(--muted-foreground);
246
+ opacity: 0.8;
247
+ }
248
+ .hiddenInput {
249
+ display: none;
250
+ }
251
+ .fileList {
252
+ width: 100%;
253
+ flex: 1;
254
+ }
255
+ .removeButton {
256
+ width: var(--space-8);
257
+ height: var(--space-8);
258
+ padding: 0 !important;
259
+ flex-shrink: 0;
260
+ }
261
+ @keyframes consume-stars {
262
+ 0% {
263
+ transform: scale(2.5) rotate(0deg);
264
+ opacity: 0;
265
+ }
266
+ 5% {
267
+ opacity: 1;
268
+ }
269
+ 95% {
270
+ opacity: 1;
271
+ }
272
+ 100% {
273
+ transform: scale(0) rotate(360deg);
274
+ opacity: 0;
275
+ }
276
+ }
277
+ @keyframes consume-stars-alt {
278
+ 0% {
279
+ transform: scale(3) rotate(45deg);
280
+ opacity: 0;
281
+ }
282
+ 5% {
283
+ opacity: 1;
284
+ }
285
+ 95% {
286
+ opacity: 1;
287
+ }
288
+ 100% {
289
+ transform: scale(0) rotate(405deg);
290
+ opacity: 0;
291
+ }
292
+ }
293
+ .previewWrapper {
294
+ width: var(--space-16);
295
+ height: var(--space-16);
296
+ border-radius: var(--radius-md);
297
+ overflow: hidden;
298
+ border: var(--surface-border-width) solid var(--border-strong);
299
+ position: relative;
300
+ background: var(--surface-accent);
301
+ flex-shrink: 0;
302
+ }
303
+ .previewImg {
304
+ width: 100%;
305
+ height: 100%;
306
+ object-fit: cover;
307
+ }
308
+ .previewSkeleton {
309
+ position: absolute;
310
+ inset: 0;
308
311
  }
309
- }
310
- .previewWrapper {
311
- width: var(--spacing-16);
312
- height: var(--spacing-16);
313
- border-radius: var(--radius);
314
- overflow: hidden;
315
- border: var(--border-width) solid var(--border-strong);
316
- position: relative;
317
- background: var(--surface-accent);
318
- flex-shrink: 0;
319
- }
320
-
321
- .previewImg {
322
- width: 100%;
323
- height: 100%;
324
- object-fit: cover;
325
- }
326
-
327
- .previewSkeleton {
328
- position: absolute;
329
- inset: 0;
330
312
  }
@@ -1,43 +1,39 @@
1
- .form {
2
- display: flex;
3
- flex-direction: column;
4
- gap: 1.5rem;
5
- width: 100%;
6
- }
7
-
8
- .field {
9
- display: flex;
10
- flex-direction: column;
11
- gap: 0.5rem;
12
- width: 100%;
13
- align-items: stretch;
14
- }
15
-
16
- .message {
17
- font-size: 0.75rem;
18
- font-weight: 500;
19
- margin-top: -0.25rem;
20
- }
21
-
22
- .error {
23
- color: var(--error);
24
- font-weight: 700;
25
- text-transform: uppercase;
26
- animation: shake 0.3s ease-in-out;
27
- }
28
-
29
- .description {
30
- color: var(--muted-foreground);
31
- }
32
-
33
- @keyframes shake {
34
- 0%, 100% {
35
- transform: translateX(0);
1
+ @layer doom.components {
2
+ .form {
3
+ display: flex;
4
+ flex-direction: column;
5
+ gap: var(--space-4);
6
+ width: 100%;
7
+ }
8
+ .field {
9
+ display: flex;
10
+ flex-direction: column;
11
+ gap: var(--space-2);
12
+ width: 100%;
13
+ align-items: stretch;
14
+ }
15
+ .message {
16
+ font-size: var(--text-xs);
17
+ font-weight: 500;
18
+ }
19
+ .error {
20
+ color: var(--error);
21
+ font-weight: 700;
22
+ text-transform: uppercase;
23
+ animation: shake 0.3s ease-in-out;
36
24
  }
37
- 25% {
38
- transform: translateX(calc(var(--spacing-1) * -1));
25
+ .description {
26
+ color: var(--muted-foreground);
39
27
  }
40
- 75% {
41
- transform: translateX(var(--spacing-1));
28
+ @keyframes shake {
29
+ 0%, 100% {
30
+ transform: translateX(0);
31
+ }
32
+ 25% {
33
+ transform: translateX(calc(var(--space-1) * -1));
34
+ }
35
+ 75% {
36
+ transform: translateX(var(--space-1));
37
+ }
42
38
  }
43
39
  }