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,200 +1,222 @@
1
- .container {
2
- width: 100%;
3
- border: var(--border-width) solid var(--card-border);
4
- border-radius: var(--radius);
5
- background: var(--surface-accent);
6
- box-shadow: var(--shadow-hard);
7
- overflow: hidden;
8
- display: flex;
9
- flex-direction: column;
10
- }
11
- .container.flat {
12
- box-shadow: none;
13
- }
14
-
15
- .toolbar {
16
- padding: var(--spacing-4);
17
- border-bottom: var(--border-width) solid var(--card-border);
18
- background: transparent;
19
- display: flex;
20
- justify-content: space-between;
21
- align-items: center;
22
- gap: var(--spacing-4);
23
- }
24
-
25
- .headerGroup {
26
- display: flex;
27
- flex-direction: column;
28
- border-bottom: var(--border-width) solid var(--card-border);
29
- background: transparent;
30
- width: 100%;
31
- }
32
-
33
- .searchBar {
34
- padding: var(--spacing-4);
35
- display: flex;
36
- justify-content: space-between;
37
- align-items: center;
38
- gap: var(--spacing-4);
39
- width: 100%;
40
- }
41
- @media (max-width: 768px) {
42
- .searchBar {
1
+ @layer doom.components {
2
+ .container {
3
+ width: 100%;
4
+ border: var(--surface-border-width) solid var(--card-border);
5
+ border-radius: var(--radius-md);
6
+ background: var(--surface-accent);
7
+ box-shadow: var(--shadow-md);
8
+ overflow: hidden;
9
+ display: flex;
43
10
  flex-direction: column;
44
- align-items: stretch;
45
- gap: var(--spacing-3);
46
11
  }
47
- }
48
-
49
- .searchWrapper {
50
- width: var(--spacing-72);
51
- }
52
- @media (max-width: 768px) {
53
- .searchWrapper {
54
- width: 100%;
12
+ .container.flat {
13
+ box-shadow: none;
55
14
  }
56
- }
57
-
58
- .actionsWrapper {
59
- display: flex;
60
- gap: var(--spacing-2);
61
- align-items: center;
62
- }
63
- @media (max-width: 768px) {
64
- .actionsWrapper {
15
+ .toolbar {
16
+ padding: var(--space-4);
17
+ border-bottom: var(--surface-border-width) solid var(--card-border);
18
+ background: transparent;
19
+ display: flex;
20
+ justify-content: space-between;
21
+ align-items: center;
22
+ gap: var(--space-4);
23
+ }
24
+ .headerGroup {
25
+ display: flex;
26
+ flex-direction: column;
27
+ border-bottom: var(--surface-border-width) solid var(--card-border);
28
+ background: transparent;
65
29
  width: 100%;
30
+ }
31
+ .searchBar {
32
+ padding: var(--space-4);
33
+ display: flex;
66
34
  justify-content: space-between;
35
+ align-items: center;
36
+ gap: var(--space-4);
37
+ width: 100%;
38
+ }
39
+ @media (max-width: 768px) {
40
+ .searchBar {
41
+ flex-direction: column;
42
+ align-items: stretch;
43
+ gap: var(--space-3);
44
+ }
45
+ }
46
+ .searchWrapper {
47
+ width: 288px;
48
+ }
49
+ @media (max-width: 768px) {
50
+ .searchWrapper {
51
+ width: 100%;
52
+ }
53
+ }
54
+ .actionsWrapper {
55
+ display: flex;
56
+ gap: var(--space-2);
57
+ align-items: center;
58
+ }
59
+ @media (max-width: 768px) {
60
+ .actionsWrapper {
61
+ width: 100%;
62
+ justify-content: space-between;
63
+ }
64
+ }
65
+ .controls {
66
+ display: flex;
67
+ gap: var(--space-2);
67
68
  }
68
- }
69
-
70
- .controls {
71
- display: flex;
72
- gap: var(--spacing-2);
73
- }
74
-
75
- .filterBar {
76
- display: flex;
77
- justify-content: flex-start;
78
- align-items: center;
79
- flex-wrap: wrap;
80
- width: 100%;
81
- background: var(--background);
82
- border-top: var(--border-width) solid var(--card-border);
83
- border-bottom: var(--border-width) solid var(--card-border);
84
- box-shadow: inset 0 var(--border-width) var(--spacing-1) rgba(0, 0, 0, 0.06);
85
- padding: var(--spacing-4);
86
- gap: var(--spacing-2);
87
- }
88
- @media (max-width: 768px) {
89
69
  .filterBar {
90
- flex-direction: column;
91
- align-items: stretch;
70
+ display: flex;
71
+ justify-content: flex-start;
72
+ align-items: center;
73
+ flex-wrap: wrap;
74
+ width: 100%;
75
+ background: var(--background);
76
+ border-top: var(--surface-border-width) solid var(--card-border);
77
+ border-bottom: var(--surface-border-width) solid var(--card-border);
78
+ box-shadow: inset 0 var(--surface-border-width) var(--space-1) rgba(0, 0, 0, 0.06);
79
+ padding: var(--space-4);
80
+ gap: var(--space-2);
81
+ }
82
+ @media (max-width: 768px) {
83
+ .filterBar {
84
+ flex-direction: column;
85
+ align-items: stretch;
86
+ }
92
87
  }
93
- }
94
-
95
- .filterItem {
96
- /* "Module" look */
97
- min-width: var(--spacing-36);
98
- width: var(--spacing-56);
99
- position: relative;
100
- }
101
- @media (max-width: 768px) {
102
88
  .filterItem {
89
+ /* "Module" look */
90
+ min-width: 14ch;
91
+ width: 22ch;
92
+ position: relative;
93
+ }
94
+ @media (max-width: 768px) {
95
+ .filterItem {
96
+ width: 100%;
97
+ min-width: 0;
98
+ }
99
+ }
100
+ .tableWrapper {
103
101
  width: 100%;
104
- min-width: 0;
102
+ overflow: hidden;
103
+ }
104
+ .table {
105
+ width: 100%;
106
+ border-collapse: collapse;
107
+ font-size: var(--control-font-size);
108
+ background: var(--card-bg);
109
+ }
110
+ .th {
111
+ text-align: left;
112
+ padding: var(--space-4);
113
+ background: var(--secondary);
114
+ border-bottom: var(--surface-border-width) solid var(--card-border);
115
+ font-weight: 700;
116
+ text-transform: uppercase;
117
+ letter-spacing: 0.05em;
118
+ user-select: none;
119
+ white-space: nowrap;
120
+ color: var(--secondary-foreground);
121
+ position: sticky;
122
+ top: 0;
123
+ z-index: var(--z-elevated);
124
+ }
125
+ .th.compact {
126
+ padding: var(--space-2) var(--space-4);
127
+ }
128
+ .th.relaxed {
129
+ padding: var(--space-6) var(--space-4);
130
+ }
131
+ .th.sortable {
132
+ cursor: pointer;
133
+ }
134
+ .th.sortable:hover {
135
+ filter: brightness(0.95);
136
+ color: var(--secondary-foreground);
137
+ }
138
+ .td {
139
+ padding: var(--space-4);
140
+ border-bottom: 1px solid var(--card-border);
141
+ color: var(--on-surface);
142
+ }
143
+ .td.compact {
144
+ padding: var(--space-2) var(--space-4);
145
+ }
146
+ .td.relaxed {
147
+ padding: var(--space-6) var(--space-4);
148
+ }
149
+ .tr:last-child td {
150
+ border-bottom: none;
151
+ }
152
+ .tr:hover {
153
+ background-color: color-mix(in srgb, var(--muted-foreground) 10%, transparent);
154
+ }
155
+ .tr.striped:nth-of-type(even) {
156
+ background-color: color-mix(in srgb, var(--muted-foreground) 5%, transparent);
157
+ }
158
+ .tr.striped:hover {
159
+ background-color: color-mix(in srgb, var(--muted-foreground) 15%, transparent);
160
+ }
161
+ .tr .row-actions {
162
+ opacity: 0;
163
+ transition: opacity var(--duration-fast) var(--ease-in-out);
164
+ }
165
+ .tr:hover .row-actions {
166
+ opacity: 1;
167
+ }
168
+ .clickable {
169
+ cursor: pointer;
170
+ }
171
+ .paginationContainer {
172
+ padding: var(--space-4);
173
+ border-top: var(--surface-border-width) solid var(--card-border);
174
+ background: transparent;
175
+ display: flex;
176
+ justify-content: space-between;
177
+ align-items: center;
178
+ }
179
+ .noResults {
180
+ padding: var(--space-8);
181
+ text-align: center;
182
+ color: var(--on-surface-muted);
183
+ }
184
+ .headerContent {
185
+ display: flex;
186
+ align-items: center;
187
+ gap: var(--space-2);
188
+ }
189
+ .expandToggle {
190
+ display: flex;
191
+ align-items: center;
192
+ justify-content: center;
193
+ width: var(--space-6);
194
+ height: var(--space-6);
195
+ padding: 0;
196
+ border: none;
197
+ background: none;
198
+ cursor: pointer;
199
+ color: var(--on-surface-muted);
200
+ border-radius: var(--radius-md);
201
+ transition: all var(--duration-fast) var(--ease-in-out);
202
+ }
203
+ .expandToggle:hover {
204
+ color: var(--on-surface);
205
+ background: color-mix(in srgb, var(--muted-foreground) 15%, transparent);
206
+ }
207
+ .expandToggleIcon {
208
+ transition: transform var(--duration-fast) var(--ease-in-out);
209
+ }
210
+ .expandToggleIcon.expanded {
211
+ transform: rotate(90deg);
212
+ }
213
+ .expandedRow td {
214
+ padding: var(--space-4);
215
+ background: color-mix(in srgb, var(--muted-foreground) 5%, transparent);
216
+ border-bottom: 1px solid var(--card-border);
217
+ }
218
+ .expandCol {
219
+ width: 40px;
220
+ padding: var(--space-2) !important;
105
221
  }
106
- }
107
-
108
- .tableWrapper {
109
- width: 100%;
110
- overflow: hidden;
111
- }
112
-
113
- .table {
114
- width: 100%;
115
- border-collapse: collapse;
116
- font-size: var(--text-base);
117
- background: var(--card-bg);
118
- }
119
-
120
- .th {
121
- text-align: left;
122
- padding: var(--spacing-4);
123
- background: var(--secondary);
124
- border-bottom: var(--border-width) solid var(--card-border);
125
- font-weight: 700;
126
- text-transform: uppercase;
127
- letter-spacing: 0.05em;
128
- user-select: none;
129
- white-space: nowrap;
130
- color: var(--secondary-foreground);
131
- position: sticky;
132
- top: 0;
133
- z-index: var(--z-elevated);
134
- }
135
- .th.compact {
136
- padding: var(--spacing-2) var(--spacing-4);
137
- }
138
- .th.relaxed {
139
- padding: var(--spacing-6) var(--spacing-4);
140
- }
141
- .th.sortable {
142
- cursor: pointer;
143
- }
144
- .th.sortable:hover {
145
- filter: brightness(0.95);
146
- color: var(--secondary-foreground);
147
- }
148
-
149
- .td {
150
- padding: var(--spacing-4);
151
- border-bottom: 1px solid var(--card-border);
152
- color: var(--on-surface);
153
- }
154
- .td.compact {
155
- padding: var(--spacing-2) var(--spacing-4);
156
- }
157
- .td.relaxed {
158
- padding: var(--spacing-6) var(--spacing-4);
159
- }
160
-
161
- .tr:last-child td {
162
- border-bottom: none;
163
- }
164
- .tr:hover {
165
- background-color: color-mix(in srgb, var(--muted-foreground) 10%, transparent);
166
- }
167
- .tr.striped:nth-of-type(even) {
168
- background-color: color-mix(in srgb, var(--muted-foreground) 5%, transparent);
169
- }
170
- .tr.striped:hover {
171
- background-color: color-mix(in srgb, var(--muted-foreground) 15%, transparent);
172
- }
173
- .tr .row-actions {
174
- opacity: 0;
175
- transition: opacity var(--duration-fast) var(--ease-in-out);
176
- }
177
- .tr:hover .row-actions {
178
- opacity: 1;
179
- }
180
-
181
- .paginationContainer {
182
- padding: var(--spacing-4);
183
- border-top: var(--border-width) solid var(--card-border);
184
- background: transparent;
185
- display: flex;
186
- justify-content: space-between;
187
- align-items: center;
188
- }
189
-
190
- .noResults {
191
- padding: var(--spacing-8);
192
- text-align: center;
193
- color: var(--on-surface-muted);
194
- }
195
-
196
- .headerContent {
197
- display: flex;
198
- align-items: center;
199
- gap: var(--spacing-2);
200
222
  }
@@ -87,5 +87,5 @@ export function TableHeaderFilter({ column, options, }) {
87
87
  return (_jsx(Popover, { content: _jsx(Combobox, { inline: true, multiple: true, options: sortedOptions, placeholder: "Filter...", searchable: sortedOptions.length > 5, size: "sm", value: selectedValues, onChange: handleChange }), isOpen: isOpen, placement: "bottom-start", trigger: _jsxs(Button, { "aria-label": `Filter by ${String(column.columnDef.header)}`, size: "sm", variant: hasActiveFilter ? "primary" : "ghost", onClick: (e) => {
88
88
  e.stopPropagation();
89
89
  setIsOpen(!isOpen);
90
- }, children: [_jsx(Filter, { size: 16, strokeWidth: 2.5 }), selectedValues.length > 0 && (_jsxs("span", { className: styles.filterCount, children: ["(", selectedValues.length, ")"] }))] }), onClose: () => setIsOpen(false) }));
90
+ }, children: [_jsx(Filter, { size: 20, strokeWidth: 2.5 }), selectedValues.length > 0 && (_jsxs("span", { className: styles.filterCount, children: ["(", selectedValues.length, ")"] }))] }), onClose: () => setIsOpen(false) }));
91
91
  }
@@ -1,58 +1,52 @@
1
- .filterContent {
2
- min-width: var(--spacing-50);
3
- max-width: var(--spacing-70);
4
- border: var(--border-width) solid var(--card-border);
5
- border-radius: var(--radius);
6
- box-shadow: var(--shadow-hard);
7
- }
8
-
9
- .filterCount {
10
- color: currentColor;
11
- font-size: var(--text-xs);
12
- font-weight: 700;
13
- line-height: 1;
14
- }
15
-
16
- .filterHeader {
17
- display: flex;
18
- align-items: center;
19
- justify-content: space-between;
20
- padding: var(--spacing-2);
21
- border-bottom: var(--border-width) solid var(--card-border);
22
- }
23
-
24
- .filterBody {
25
- padding: var(--spacing-2);
26
- }
27
-
28
- .filterOptions {
29
- display: flex;
30
- flex-direction: column;
31
- gap: var(--spacing-1);
32
- max-height: var(--spacing-50);
33
- overflow-y: auto;
34
- }
35
-
36
- .filterOption {
37
- padding: var(--spacing-1);
38
- border-radius: var(--radius);
39
- }
40
- .filterOption:hover {
41
- background: var(--surface-accent);
42
- }
43
-
44
- .filterInput {
45
- width: 100%;
46
- }
47
-
48
- .filterSelect {
49
- width: 100%;
50
- }
51
-
52
- .filterActions {
53
- display: flex;
54
- gap: var(--spacing-1);
55
- margin-top: var(--spacing-2);
56
- padding-top: var(--spacing-2);
57
- border-top: var(--border-width) solid var(--card-border);
1
+ @layer doom.components {
2
+ .filterContent {
3
+ min-width: 20ch;
4
+ max-width: 30ch;
5
+ border: var(--surface-border-width) solid var(--card-border);
6
+ border-radius: var(--radius-md);
7
+ box-shadow: var(--shadow-md);
8
+ }
9
+ .filterCount {
10
+ color: currentColor;
11
+ font-size: var(--text-xs);
12
+ font-weight: 700;
13
+ line-height: 1;
14
+ }
15
+ .filterHeader {
16
+ display: flex;
17
+ align-items: center;
18
+ justify-content: space-between;
19
+ padding: var(--space-2);
20
+ border-bottom: var(--surface-border-width) solid var(--card-border);
21
+ }
22
+ .filterBody {
23
+ padding: var(--space-2);
24
+ }
25
+ .filterOptions {
26
+ display: flex;
27
+ flex-direction: column;
28
+ gap: var(--space-1);
29
+ max-height: 200px;
30
+ overflow-y: auto;
31
+ }
32
+ .filterOption {
33
+ padding: var(--space-1);
34
+ border-radius: var(--radius-md);
35
+ }
36
+ .filterOption:hover {
37
+ background: var(--surface-accent);
38
+ }
39
+ .filterInput {
40
+ width: 100%;
41
+ }
42
+ .filterSelect {
43
+ width: 100%;
44
+ }
45
+ .filterActions {
46
+ display: flex;
47
+ gap: var(--space-1);
48
+ margin-top: var(--space-2);
49
+ padding-top: var(--space-2);
50
+ border-top: var(--surface-border-width) solid var(--card-border);
51
+ }
58
52
  }
@@ -1,89 +1,88 @@
1
- @keyframes fadeIn {
2
- from {
3
- opacity: 0;
1
+ @layer doom.components {
2
+ @keyframes fadeIn {
3
+ from {
4
+ opacity: 0;
5
+ }
6
+ to {
7
+ opacity: 1;
8
+ }
4
9
  }
5
- to {
6
- opacity: 1;
7
- }
8
- }
9
- .tabsList {
10
- display: flex;
11
- margin-bottom: 0;
12
- padding-left: var(--spacing-4);
13
- position: relative;
14
- gap: var(--spacing-2);
15
- overflow-x: auto;
16
- -webkit-overflow-scrolling: touch;
17
- max-width: 100%;
18
- scrollbar-width: none;
19
- }
20
- .tabsList::-webkit-scrollbar {
21
- display: none;
22
- }
23
- .tabsList.align-left {
24
- justify-content: flex-start;
25
- }
26
- .tabsList.align-right {
27
- justify-content: flex-end;
28
- padding-right: var(--spacing-4);
29
- padding-left: 0;
30
- }
31
- @media (max-width: 640px) {
32
10
  .tabsList {
11
+ display: flex;
12
+ margin-bottom: 0;
13
+ padding-left: var(--space-4);
14
+ position: relative;
15
+ gap: var(--space-2);
16
+ overflow-x: auto;
17
+ -webkit-overflow-scrolling: touch;
18
+ max-width: 100%;
19
+ scrollbar-width: none;
20
+ }
21
+ .tabsList::-webkit-scrollbar {
22
+ display: none;
23
+ }
24
+ .tabsList.align-left {
25
+ justify-content: flex-start;
26
+ }
27
+ .tabsList.align-right {
28
+ justify-content: flex-end;
29
+ padding-right: var(--space-4);
33
30
  padding-left: 0;
34
- padding-right: 0;
35
- gap: var(--spacing-1);
36
31
  }
37
- }
38
-
39
- .tabsTrigger {
40
- flex-shrink: 0;
41
- padding: var(--spacing-3) var(--spacing-6);
42
- font-size: var(--text-sm);
43
- font-weight: 700;
44
- text-transform: uppercase;
45
- letter-spacing: 0.05em;
46
- background-color: var(--card-bg);
47
- color: var(--foreground);
48
- border: var(--border-width) solid var(--card-border);
49
- border-bottom: none;
50
- border-radius: var(--radius) var(--radius) 0 0;
51
- cursor: pointer;
52
- position: relative;
53
- transition: background-color 0.2s ease;
54
- white-space: nowrap;
55
- }
56
- @media (max-width: 640px) {
32
+ @media (max-width: 640px) {
33
+ .tabsList {
34
+ padding-left: 0;
35
+ padding-right: 0;
36
+ gap: var(--space-1);
37
+ }
38
+ }
57
39
  .tabsTrigger {
58
- padding: var(--spacing-3) var(--spacing-4);
40
+ flex-shrink: 0;
41
+ padding: var(--space-3) var(--space-6);
42
+ font-size: var(--text-sm);
43
+ font-weight: 700;
44
+ text-transform: uppercase;
45
+ letter-spacing: 0.05em;
46
+ background-color: var(--card-bg);
47
+ color: var(--foreground);
48
+ border: var(--surface-border-width) solid var(--card-border);
49
+ border-bottom: none;
50
+ border-radius: var(--radius-md) var(--radius-md) 0 0;
51
+ cursor: pointer;
52
+ position: relative;
53
+ transition: background-color 0.2s ease;
54
+ white-space: nowrap;
55
+ }
56
+ @media (max-width: 640px) {
57
+ .tabsTrigger {
58
+ padding: var(--space-3) var(--space-4);
59
+ }
60
+ }
61
+ .tabsTrigger:hover {
62
+ background-color: color-mix(in srgb, var(--primary), transparent 90%);
63
+ }
64
+ .tabsTrigger.active {
65
+ background-color: var(--primary);
66
+ color: var(--primary-foreground);
67
+ }
68
+ .tabsTrigger.active:hover {
69
+ filter: brightness(1.05);
59
70
  }
60
- }
61
- .tabsTrigger:hover {
62
- background-color: color-mix(in srgb, var(--primary), transparent 90%);
63
- }
64
- .tabsTrigger.active {
65
- background-color: var(--primary);
66
- color: var(--primary-foreground);
67
- }
68
- .tabsTrigger.active:hover {
69
- filter: brightness(1.05);
70
- }
71
-
72
- .tabsBody {
73
- background: var(--card-bg);
74
- border: var(--border-width) solid var(--card-border);
75
- border-radius: var(--radius);
76
- padding: 2.5rem;
77
- box-shadow: var(--shadow-hard);
78
- position: relative;
79
- margin-top: -3px;
80
- }
81
- @media (max-width: 640px) {
82
71
  .tabsBody {
83
- padding: var(--spacing-4);
72
+ background: var(--card-bg);
73
+ border: var(--surface-border-width) solid var(--card-border);
74
+ border-radius: var(--radius-md);
75
+ padding: 2.5rem;
76
+ box-shadow: var(--shadow-md);
77
+ position: relative;
78
+ margin-top: -3px;
79
+ }
80
+ @media (max-width: 640px) {
81
+ .tabsBody {
82
+ padding: var(--space-4);
83
+ }
84
+ }
85
+ .tabsContent {
86
+ animation: fadeIn 0.3s ease-out forwards;
84
87
  }
85
- }
86
-
87
- .tabsContent {
88
- animation: fadeIn 0.3s ease-out forwards;
89
88
  }