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,211 +1,234 @@
1
- .trigger {
2
- border: var(--border-width) solid var(--card-border);
3
- border-radius: var(--radius);
4
- box-shadow: var(--shadow-hard);
5
- transition: all 0.1s ease;
6
- outline: none;
7
- display: flex;
8
- align-items: center;
9
- justify-content: space-between;
10
- width: 100%;
11
- padding: var(--spacing-4) var(--spacing-6);
12
- background: var(--card-bg);
13
- font-size: var(--text-base);
14
- font-weight: var(--font-bold);
15
- text-transform: uppercase;
16
- letter-spacing: 0.05em;
17
- text-align: left;
18
- cursor: pointer;
19
- min-height: var(--control-height-lg);
20
- box-sizing: border-box;
21
- transition: all var(--duration-fast) var(--ease-in-out);
22
- }
23
- .trigger:hover {
24
- transform: translate(-2px, -2px);
25
- box-shadow: 6px 6px 0px 0px var(--shadow-base);
26
- }
27
- .trigger.sm {
28
- padding: var(--spacing-2) var(--spacing-4);
29
- min-height: var(--control-height-md);
30
- font-size: var(--text-xs);
31
- }
32
- .trigger.hasValue {
33
- color: var(--foreground);
34
- }
35
- .trigger.disabled {
36
- opacity: 0.5;
37
- cursor: not-allowed;
38
- }
39
- .trigger:focus-visible, .trigger[aria-expanded=true] {
40
- outline: none;
41
- transform: translate(-2px, -2px);
42
- box-shadow: 6px 6px 0px 0px var(--shadow-primary);
43
- border-color: var(--primary);
44
- }
45
- .trigger:focus {
46
- outline: none;
47
- }
48
-
49
- .triggerText {
50
- flex: 1;
51
- overflow: hidden;
52
- text-overflow: ellipsis;
53
- white-space: nowrap;
54
- color: var(--muted-foreground);
55
- }
56
- .hasValue .triggerText {
57
- color: var(--foreground);
58
- }
59
-
60
- .triggerIcons {
61
- display: flex;
62
- align-items: center;
63
- gap: var(--spacing-1);
64
- margin-left: var(--spacing-2);
65
- color: var(--muted-foreground);
66
- }
67
-
68
- .clearButton {
69
- display: flex;
70
- align-items: center;
71
- justify-content: center;
72
- padding: var(--spacing-half);
73
- border-radius: var(--radius);
74
- cursor: pointer;
75
- transition: all var(--duration-fast) var(--ease-in-out);
76
- }
77
- .clearButton:hover {
78
- background: var(--surface-accent);
79
- color: var(--foreground);
80
- }
81
-
82
- .chevron {
83
- transition: transform var(--duration-fast) var(--ease-in-out);
84
- }
85
-
86
- .dropdown {
87
- width: 100%;
88
- min-width: 20ch;
89
- max-width: 40ch;
90
- padding: 0;
91
- overflow: hidden;
92
- border: var(--border-width) solid var(--card-border);
93
- border-radius: var(--radius);
94
- background: var(--card-bg);
95
- box-shadow: var(--shadow-lg);
96
- }
97
-
98
- .searchWrapper {
99
- position: sticky;
100
- top: 0;
101
- display: flex;
102
- align-items: center;
103
- gap: var(--spacing-2);
104
- padding: var(--spacing-4);
105
- border-bottom: 1px solid color-mix(in srgb, var(--card-border) 60%, transparent);
106
- background: var(--card-bg);
107
- z-index: var(--z-elevated);
108
- }
109
-
110
- .searchIcon {
111
- color: var(--muted-foreground);
112
- flex-shrink: 0;
113
- transition: color var(--duration-fast) var(--ease-in-out);
114
- }
115
-
116
- .searchInput {
117
- flex: 1;
118
- border: none;
119
- background: transparent;
120
- font-family: var(--font-family);
121
- font-size: var(--text-sm);
122
- color: var(--foreground);
123
- outline: none;
124
- }
125
- .searchInput::placeholder {
126
- color: var(--muted-foreground);
127
- transition: opacity var(--duration-fast);
128
- }
129
- .searchInput:focus::placeholder {
130
- opacity: 0.7;
131
- }
132
-
133
- .optionsList {
134
- max-height: var(--spacing-64);
135
- scrollbar-gutter: stable;
136
- overflow-y: auto;
137
- overflow-x: hidden;
138
- padding: var(--spacing-1);
139
- padding-bottom: var(--spacing-2);
140
- padding-right: 0;
141
- display: flex;
142
- flex-direction: column;
143
- gap: var(--spacing-1);
144
- }
145
- .optionsList::-webkit-scrollbar {
146
- width: 6px;
147
- }
148
- .optionsList::-webkit-scrollbar-track {
149
- background: transparent;
150
- }
151
- .optionsList::-webkit-scrollbar-thumb {
152
- background: var(--border);
153
- border-radius: var(--radius-sm);
154
- }
155
- .optionsList::-webkit-scrollbar-thumb:hover {
156
- background: var(--muted-foreground);
157
- }
158
-
159
- .option {
160
- display: flex;
161
- align-items: center;
162
- gap: var(--spacing-2);
163
- width: 100%;
164
- padding: var(--spacing-2) var(--spacing-4);
165
- border: none;
166
- border-radius: calc(var(--radius) - var(--border-width));
167
- background: transparent;
168
- text-align: left;
169
- color: var(--foreground);
170
- cursor: pointer;
171
- font-size: var(--text-base);
172
- font-weight: var(--font-regular);
173
- transition: all var(--duration-fast) var(--ease-in-out);
174
- user-select: none;
175
- }
176
- .option:hover {
177
- background-color: color-mix(in srgb, var(--primary), transparent 85%);
178
- color: color-mix(in srgb, var(--primary), var(--foreground) 25%);
179
- }
180
- .option.selected {
181
- background: var(--primary);
182
- color: var(--primary-foreground);
183
- font-weight: var(--font-bold);
184
- }
185
- .option.selected:hover {
186
- background-color: var(--primary);
187
- color: var(--primary-foreground);
188
- filter: brightness(1.1);
189
- }
190
-
191
- .optionLabel {
192
- white-space: nowrap;
193
- overflow: hidden;
194
- text-overflow: ellipsis;
195
- flex: 1;
196
- }
197
-
198
- .noResults {
199
- padding: var(--spacing-6) var(--spacing-4);
200
- text-align: center;
201
- color: var(--muted-foreground);
202
- font-size: var(--text-sm);
203
- font-style: italic;
204
- opacity: 0.8;
205
- }
206
-
207
- .stickyOption {
208
- padding: var(--spacing-1);
209
- border-bottom: 1px solid color-mix(in srgb, var(--card-border) 60%, transparent);
210
- background: var(--card-bg);
1
+ @layer doom.components {
2
+ .trigger {
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: space-between;
6
+ width: 100%;
7
+ background: var(--card-bg);
8
+ font-weight: var(--font-bold);
9
+ text-transform: uppercase;
10
+ letter-spacing: 0.05em;
11
+ text-align: left;
12
+ cursor: pointer;
13
+ box-sizing: border-box;
14
+ height: var(--control-height);
15
+ padding: var(--control-padding-y) var(--control-padding-x);
16
+ font-size: var(--control-font-size);
17
+ border: var(--surface-border-width) solid var(--card-border);
18
+ border-radius: var(--control-radius);
19
+ box-shadow: var(--shadow-md);
20
+ transition: all var(--duration-fast) var(--ease-in-out);
21
+ outline: none;
22
+ }
23
+ .trigger:hover {
24
+ transform: translate(calc(-1 * var(--space-0\.5)), calc(-1 * var(--space-0\.5)));
25
+ box-shadow: var(--shadow-lg);
26
+ }
27
+ .trigger:focus-visible {
28
+ outline: none;
29
+ transform: translate(calc(-1 * var(--space-0\.5)), calc(-1 * var(--space-0\.5)));
30
+ box-shadow: var(--shadow-offset-xl) var(--shadow-primary);
31
+ border-color: var(--primary);
32
+ }
33
+ .trigger:focus {
34
+ outline: none;
35
+ }
36
+ .trigger[aria-expanded=true] {
37
+ outline: none;
38
+ transform: translate(calc(-1 * var(--space-0\.5)), calc(-1 * var(--space-0\.5)));
39
+ box-shadow: var(--shadow-offset-xl) var(--shadow-primary);
40
+ border-color: var(--primary);
41
+ }
42
+ .trigger:active {
43
+ transition: none;
44
+ transform: translate(var(--space-0\.5), var(--space-0\.5));
45
+ box-shadow: none;
46
+ }
47
+ .trigger.hasValue {
48
+ color: var(--foreground);
49
+ }
50
+ .trigger.disabled {
51
+ opacity: 0.6;
52
+ cursor: not-allowed !important;
53
+ background-image: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(0, 0, 0, 0.05) 10px, rgba(0, 0, 0, 0.05) 20px) !important;
54
+ }
55
+ .trigger.disabled:hover {
56
+ transform: none !important;
57
+ filter: none !important;
58
+ }
59
+ .trigger.disabled {
60
+ transform: none;
61
+ box-shadow: var(--shadow-md);
62
+ }
63
+ /* Sizes */
64
+ .sm {
65
+ --control-height: var(--size-7);
66
+ --control-padding-x: var(--space-2);
67
+ --control-padding-y: var(--space-1);
68
+ --control-font-size: var(--text-xs);
69
+ --control-icon-size: var(--size-4);
70
+ --control-gap: var(--space-1);
71
+ --control-radius: var(--radius-sm);
72
+ }
73
+ .lg {
74
+ --control-height: var(--size-10);
75
+ --control-padding-x: var(--space-4);
76
+ --control-padding-y: var(--space-2);
77
+ --control-font-size: var(--text-base);
78
+ --control-icon-size: var(--size-5);
79
+ --control-gap: var(--space-2);
80
+ --control-radius: var(--radius-md);
81
+ }
82
+ .triggerText {
83
+ flex: 1;
84
+ min-width: 12ch;
85
+ overflow: hidden;
86
+ text-overflow: ellipsis;
87
+ white-space: nowrap;
88
+ color: var(--muted-foreground);
89
+ }
90
+ .hasValue .triggerText {
91
+ color: var(--foreground);
92
+ }
93
+ .triggerIcons {
94
+ display: flex;
95
+ align-items: center;
96
+ gap: var(--space-1);
97
+ margin-left: var(--space-2);
98
+ color: var(--muted-foreground);
99
+ }
100
+ .clearButton {
101
+ display: flex;
102
+ align-items: center;
103
+ justify-content: center;
104
+ padding: var(--space-0\.5);
105
+ border-radius: var(--control-radius);
106
+ cursor: pointer;
107
+ transition: all var(--duration-fast) var(--ease-in-out);
108
+ }
109
+ .clearButton:hover {
110
+ background: var(--surface-accent);
111
+ color: var(--foreground);
112
+ }
113
+ .chevron {
114
+ transition: transform var(--duration-fast) var(--ease-in-out);
115
+ }
116
+ .dropdown {
117
+ width: 100%;
118
+ min-width: 20ch;
119
+ max-width: 40ch;
120
+ padding: 0;
121
+ overflow: hidden;
122
+ border: var(--surface-border-width) solid var(--card-border);
123
+ border-radius: var(--control-radius);
124
+ background: var(--card-bg);
125
+ box-shadow: var(--shadow-lg);
126
+ }
127
+ .searchWrapper {
128
+ position: sticky;
129
+ top: 0;
130
+ display: flex;
131
+ align-items: center;
132
+ gap: var(--space-2);
133
+ padding: var(--space-3);
134
+ border-bottom: 1px solid color-mix(in srgb, var(--card-border) 60%, transparent);
135
+ background: var(--card-bg);
136
+ z-index: var(--z-elevated);
137
+ }
138
+ .searchIcon {
139
+ color: var(--muted-foreground);
140
+ flex-shrink: 0;
141
+ transition: color var(--duration-fast) var(--ease-in-out);
142
+ }
143
+ .searchInput {
144
+ flex: 1;
145
+ border: none;
146
+ background: transparent;
147
+ font-family: var(--font-family);
148
+ font-size: var(--text-sm);
149
+ color: var(--foreground);
150
+ outline: none;
151
+ }
152
+ .searchInput::placeholder {
153
+ color: var(--muted-foreground);
154
+ transition: opacity var(--duration-fast);
155
+ }
156
+ .searchInput:focus::placeholder {
157
+ opacity: 0.7;
158
+ }
159
+ .optionsList {
160
+ max-height: 16rem;
161
+ scrollbar-gutter: stable;
162
+ overflow-y: auto;
163
+ overflow-x: hidden;
164
+ padding: var(--space-1);
165
+ padding-bottom: var(--space-2);
166
+ padding-right: 0;
167
+ display: flex;
168
+ flex-direction: column;
169
+ gap: var(--space-1);
170
+ }
171
+ .optionsList::-webkit-scrollbar {
172
+ width: 6px;
173
+ }
174
+ .optionsList::-webkit-scrollbar-track {
175
+ background: transparent;
176
+ }
177
+ .optionsList::-webkit-scrollbar-thumb {
178
+ background: var(--border);
179
+ border-radius: var(--radius-sm);
180
+ }
181
+ .optionsList::-webkit-scrollbar-thumb:hover {
182
+ background: var(--muted-foreground);
183
+ }
184
+ .option {
185
+ display: flex;
186
+ align-items: center;
187
+ gap: var(--space-2);
188
+ width: 100%;
189
+ padding: var(--control-padding-y) var(--control-padding-x);
190
+ border: none;
191
+ border-radius: calc(var(--control-radius) - var(--surface-border-width));
192
+ background: transparent;
193
+ text-align: left;
194
+ color: var(--foreground);
195
+ cursor: pointer;
196
+ font-size: var(--control-font-size);
197
+ font-weight: var(--font-regular);
198
+ transition: all var(--duration-fast) var(--ease-in-out);
199
+ user-select: none;
200
+ }
201
+ .option:hover {
202
+ background-color: color-mix(in srgb, var(--primary), transparent 85%);
203
+ color: color-mix(in srgb, var(--primary), var(--foreground) 25%);
204
+ }
205
+ .option.selected {
206
+ background: var(--primary);
207
+ color: var(--primary-foreground);
208
+ font-weight: var(--font-bold);
209
+ }
210
+ .option.selected:hover {
211
+ background-color: var(--primary);
212
+ color: var(--primary-foreground);
213
+ filter: brightness(1.1);
214
+ }
215
+ .optionLabel {
216
+ white-space: nowrap;
217
+ overflow: hidden;
218
+ text-overflow: ellipsis;
219
+ flex: 1;
220
+ }
221
+ .noResults {
222
+ padding: var(--space-4) var(--space-3);
223
+ text-align: center;
224
+ color: var(--muted-foreground);
225
+ font-size: var(--text-sm);
226
+ font-style: italic;
227
+ opacity: 0.8;
228
+ }
229
+ .stickyOption {
230
+ padding: var(--space-1);
231
+ border-bottom: 1px solid color-mix(in srgb, var(--card-border) 60%, transparent);
232
+ background: var(--card-bg);
233
+ }
211
234
  }
@@ -1,91 +1,85 @@
1
- .copyButton {
2
- position: relative;
3
- overflow: hidden;
4
- display: inline-grid !important;
5
- grid-template-areas: "stack";
6
- place-items: center;
7
- text-align: center;
8
- flex-shrink: 0;
9
- white-space: nowrap;
10
- transition: transform var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);
11
- }
12
- .copyButton:not(.ghost):active {
13
- transform: translate(2px, 2px);
14
- box-shadow: 2px 2px 0px 0px var(--shadow-base) !important;
15
- }
16
-
17
- .ghost {
18
- box-shadow: none !important;
19
- }
20
- .ghost:active {
21
- box-shadow: none !important;
22
- transform: scale(0.95);
23
- }
24
- .ghost:hover:not(:disabled) {
25
- transform: none;
26
- box-shadow: none !important;
27
- }
28
-
29
- .labelContainer {
30
- grid-area: stack;
31
- display: grid;
32
- place-items: center;
33
- justify-content: center;
34
- pointer-events: none;
35
- z-index: 1;
36
- width: 100%;
37
- }
38
-
39
- .defaultLabel,
40
- .successLabel {
41
- grid-area: 1/1;
42
- display: flex;
43
- align-items: center;
44
- justify-content: center;
45
- gap: var(--spacing-2);
46
- transition: all 300ms cubic-bezier(0.34, 1.56, 0.64, 1);
47
- width: 100%;
48
- }
49
-
50
- .defaultLabel {
51
- transform: scale(1);
52
- opacity: 1;
53
- filter: blur(0px);
54
- }
55
-
56
- .successLabel {
57
- transform: scale(0.5) translateY(10px);
58
- opacity: 0;
59
- filter: blur(4px);
60
- }
61
-
62
- .copied .defaultLabel {
63
- transform: scale(0.9);
64
- opacity: 0;
65
- transition: all 150ms ease-out;
66
- }
67
- .copied .successLabel {
68
- transform: scale(1) translateY(0);
69
- opacity: 1;
70
- filter: blur(0px);
71
- }
72
-
73
- .widthPreserver {
74
- grid-area: stack;
75
- visibility: hidden;
76
- display: grid;
77
- grid-template-columns: auto;
78
- justify-items: center;
79
- align-items: center;
80
- height: 0;
81
- overflow: hidden;
82
- }
83
-
84
- .measureItem {
85
- grid-area: 1/1;
86
- display: inline-flex;
87
- align-items: center;
88
- justify-content: center;
89
- gap: var(--spacing-2);
90
- white-space: nowrap;
1
+ @layer doom.components {
2
+ .copyButton {
3
+ position: relative;
4
+ overflow: hidden;
5
+ display: inline-grid !important;
6
+ grid-template-areas: "stack";
7
+ place-items: center;
8
+ text-align: center;
9
+ flex-shrink: 0;
10
+ white-space: nowrap;
11
+ transition: transform var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);
12
+ }
13
+ .copyButton:not(.ghost):active {
14
+ transform: translate(var(--space-0\.5), var(--space-0\.5));
15
+ box-shadow: var(--space-0\.5) var(--space-0\.5) 0px 0px var(--shadow-base) !important;
16
+ }
17
+ .ghost {
18
+ box-shadow: none !important;
19
+ }
20
+ .ghost:active {
21
+ box-shadow: none !important;
22
+ transform: scale(0.95);
23
+ }
24
+ .ghost:hover:not(:disabled) {
25
+ transform: none;
26
+ box-shadow: none !important;
27
+ }
28
+ .labelContainer {
29
+ grid-area: stack;
30
+ display: grid;
31
+ place-items: center;
32
+ justify-content: center;
33
+ pointer-events: none;
34
+ z-index: 1;
35
+ width: 100%;
36
+ }
37
+ .defaultLabel,
38
+ .successLabel {
39
+ grid-area: 1/1;
40
+ display: flex;
41
+ align-items: center;
42
+ justify-content: center;
43
+ gap: var(--space-2);
44
+ transition: all 300ms cubic-bezier(0.34, 1.56, 0.64, 1);
45
+ width: 100%;
46
+ }
47
+ .defaultLabel {
48
+ transform: scale(1);
49
+ opacity: 1;
50
+ filter: blur(0px);
51
+ }
52
+ .successLabel {
53
+ transform: scale(0.5) translateY(10px);
54
+ opacity: 0;
55
+ filter: blur(4px);
56
+ }
57
+ .copied .defaultLabel {
58
+ transform: scale(0.9);
59
+ opacity: 0;
60
+ transition: all 150ms ease-out;
61
+ }
62
+ .copied .successLabel {
63
+ transform: scale(1) translateY(0);
64
+ opacity: 1;
65
+ filter: blur(0px);
66
+ }
67
+ .widthPreserver {
68
+ grid-area: stack;
69
+ visibility: hidden;
70
+ display: grid;
71
+ grid-template-columns: auto;
72
+ justify-items: center;
73
+ align-items: center;
74
+ height: 0;
75
+ overflow: hidden;
76
+ }
77
+ .measureItem {
78
+ grid-area: 1/1;
79
+ display: inline-flex;
80
+ align-items: center;
81
+ justify-content: center;
82
+ gap: var(--space-2);
83
+ white-space: nowrap;
84
+ }
91
85
  }