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,49 +1,51 @@
1
- .badge {
2
- display: inline-flex;
3
- align-items: center;
4
- justify-content: center;
5
- border-radius: var(--radius);
6
- font-weight: 700;
7
- text-transform: uppercase;
8
- border: var(--border-width) solid var(--card-border);
9
- box-shadow: var(--border-width) var(--border-width) 0px 0px var(--card-border);
10
- line-height: 1;
11
- }
12
- .badge.sm {
13
- padding: var(--spacing-half) var(--spacing-2);
14
- font-size: var(--text-2xs);
15
- }
16
- .badge.md {
17
- padding: var(--spacing-1) var(--spacing-3);
18
- font-size: var(--text-xs);
19
- }
20
- .badge.lg {
21
- padding: var(--spacing-1) var(--spacing-4);
22
- font-size: var(--text-sm);
23
- }
24
- .badge.primary {
25
- background-color: var(--primary);
26
- color: var(--primary-foreground);
27
- }
28
- .badge.success {
29
- background-color: var(--success);
30
- color: var(--success-foreground);
31
- }
32
- .badge.warning {
33
- background-color: var(--warning);
34
- color: var(--warning-foreground);
35
- }
36
- .badge.error {
37
- background-color: var(--error);
38
- color: var(--error-foreground);
39
- }
40
- .badge.secondary {
41
- background-color: var(--secondary);
42
- color: var(--secondary-foreground);
43
- }
44
- .badge.outline {
45
- background-color: transparent;
46
- color: var(--muted-foreground);
47
- border-color: var(--border-strong);
48
- box-shadow: none;
1
+ @layer doom.components {
2
+ .badge {
3
+ display: inline-flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ border-radius: var(--radius-md);
7
+ font-weight: 700;
8
+ text-transform: uppercase;
9
+ border: var(--surface-border-width) solid var(--card-border);
10
+ box-shadow: var(--surface-border-width) var(--surface-border-width) 0px 0px var(--card-border);
11
+ line-height: 1;
12
+ }
13
+ .badge.sm {
14
+ padding: var(--space-0\.5) var(--space-2);
15
+ font-size: var(--text-2xs);
16
+ }
17
+ .badge.md {
18
+ padding: var(--space-1) var(--space-3);
19
+ font-size: var(--text-xs);
20
+ }
21
+ .badge.lg {
22
+ padding: var(--space-1) var(--space-4);
23
+ font-size: var(--text-sm);
24
+ }
25
+ .badge.primary {
26
+ background-color: var(--primary);
27
+ color: var(--primary-foreground);
28
+ }
29
+ .badge.success {
30
+ background-color: var(--success);
31
+ color: var(--success-foreground);
32
+ }
33
+ .badge.warning {
34
+ background-color: var(--warning);
35
+ color: var(--warning-foreground);
36
+ }
37
+ .badge.error {
38
+ background-color: var(--error);
39
+ color: var(--error-foreground);
40
+ }
41
+ .badge.secondary {
42
+ background-color: var(--secondary);
43
+ color: var(--secondary-foreground);
44
+ }
45
+ .badge.outline {
46
+ background-color: transparent;
47
+ color: var(--muted-foreground);
48
+ border-color: var(--border-strong);
49
+ box-shadow: none;
50
+ }
49
51
  }
@@ -1,34 +1,33 @@
1
- .nav {
2
- display: flex;
3
- align-items: center;
4
- font-size: var(--text-sm);
5
- color: var(--muted-foreground);
6
- }
7
-
8
- .list {
9
- display: flex;
10
- flex-wrap: wrap;
11
- align-items: center;
12
- padding: 0;
13
- margin: 0;
14
- list-style: none;
15
- gap: var(--spacing-2);
16
- }
17
-
18
- .li {
19
- display: inline-flex;
20
- align-items: center;
21
- gap: var(--spacing-2);
22
- }
23
- .li:not(:last-child)::after {
24
- content: "/";
25
- margin-left: var(--spacing-1);
26
- color: var(--muted-foreground);
27
- opacity: 0.5;
28
- font-weight: 700;
29
- }
30
-
31
- .currentPage {
32
- font-weight: 700;
33
- color: var(--foreground);
1
+ @layer doom.components {
2
+ .nav {
3
+ display: flex;
4
+ align-items: center;
5
+ font-size: var(--text-sm);
6
+ color: var(--muted-foreground);
7
+ }
8
+ .list {
9
+ display: flex;
10
+ flex-wrap: wrap;
11
+ align-items: center;
12
+ padding: 0;
13
+ margin: 0;
14
+ list-style: none;
15
+ gap: var(--space-2);
16
+ }
17
+ .li {
18
+ display: inline-flex;
19
+ align-items: center;
20
+ gap: var(--space-2);
21
+ }
22
+ .li:not(:last-child)::after {
23
+ content: "/";
24
+ margin-left: var(--space-1);
25
+ color: var(--muted-foreground);
26
+ opacity: 0.5;
27
+ font-weight: 700;
28
+ }
29
+ .currentPage {
30
+ font-weight: 700;
31
+ color: var(--foreground);
32
+ }
34
33
  }
@@ -1,9 +1,9 @@
1
1
  import React from "react";
2
+ import type { ControlSize } from "../../styles/types";
2
3
  type ButtonVariant = "primary" | "secondary" | "ghost" | "outline" | "success" | "danger";
3
- type ButtonSize = "sm" | "md" | "lg";
4
4
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
5
5
  variant?: ButtonVariant;
6
- size?: ButtonSize;
6
+ size?: ControlSize;
7
7
  loading?: boolean;
8
8
  }
9
9
  export declare function Button({ children, variant, size, loading, className, disabled, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
@@ -16,6 +16,6 @@ import { Spinner } from "../Spinner/index.js";
16
16
  import styles from "./Button.module.css";
17
17
  export function Button(_a) {
18
18
  var { children, variant = "primary", size = "md", loading = false, className, disabled } = _a, props = __rest(_a, ["children", "variant", "size", "loading", "className", "disabled"]);
19
- const buttonClass = clsx(styles.button, styles[variant], styles[size], loading && styles.loading, className);
19
+ const buttonClass = clsx(styles.button, styles[variant], size !== "md" && styles[size], loading && styles.loading, className);
20
20
  return (_jsxs("button", Object.assign({ className: buttonClass, disabled: disabled || loading }, props, { children: [loading && _jsx(Spinner, { className: styles.spinnerIcon, size: "sm" }), children] })));
21
21
  }
@@ -1,153 +1,151 @@
1
- .button {
2
- --btn-focus-border: var(--primary);
3
- --btn-focus-shadow: var(--shadow-primary);
4
- display: inline-flex;
5
- align-items: center;
6
- justify-content: center;
7
- border-radius: var(--radius);
8
- font-weight: 700;
9
- text-transform: uppercase;
10
- letter-spacing: 0.05em;
11
- transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
12
- cursor: pointer;
13
- border: var(--border-width) solid var(--card-border);
14
- box-shadow: var(--shadow-hard);
15
- background-color: var(--card-bg);
16
- color: var(--foreground);
17
- font-size: var(--text-base);
18
- position: relative;
19
- }
20
- .button:hover {
21
- transform: translate(-2px, -2px);
22
- box-shadow: 6px 6px 0px 0px var(--shadow-base);
23
- }
24
- .button:focus-visible {
25
- outline: none;
26
- box-shadow: 7px 7px 0px 0px var(--btn-focus-shadow);
27
- transform: translate(calc(-1 * var(--spacing-half)), calc(-1 * var(--spacing-half)));
28
- border-color: var(--btn-focus-border);
29
- }
30
- .button:active {
31
- transition: none;
32
- transform: translate(var(--spacing-half), var(--spacing-half));
33
- box-shadow: none;
34
- }
35
- .button:disabled {
36
- opacity: 0.6;
37
- cursor: not-allowed !important;
38
- background-image: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(0, 0, 0, 0.05) 10px, rgba(0, 0, 0, 0.05) 20px) !important;
39
- }
40
- .button:disabled:hover {
41
- transform: none !important;
42
- filter: none !important;
43
- }
44
- .button:disabled {
45
- transform: none;
46
- box-shadow: var(--shadow-hard);
47
- }
48
-
49
- /* Variants */
50
- .primary {
51
- --btn-focus-border: var(--card-border);
52
- --btn-focus-shadow: var(--shadow-base);
53
- background-color: var(--primary);
54
- color: var(--primary-foreground);
55
- border-color: var(--border-strong);
56
- }
57
- .primary:hover:not(:disabled) {
58
- filter: brightness(1.1);
59
- }
60
-
61
- .secondary {
62
- --btn-focus-border: var(--card-border);
63
- --btn-focus-shadow: var(--shadow-base);
64
- background-color: var(--secondary);
65
- color: var(--secondary-foreground);
66
- border-color: var(--border-strong);
67
- }
68
- .secondary:hover:not(:disabled) {
69
- filter: brightness(1.1);
70
- }
71
-
72
- .success {
73
- --btn-focus-border: var(--card-border);
74
- --btn-focus-shadow: var(--shadow-base);
75
- background-color: var(--success);
76
- color: var(--success-foreground);
77
- border-color: var(--border-strong);
78
- }
79
- .success:hover:not(:disabled) {
80
- filter: brightness(1.1);
81
- }
82
-
83
- .danger {
84
- --btn-focus-border: var(--card-border);
85
- --btn-focus-shadow: var(--shadow-base);
86
- background-color: var(--error);
87
- color: var(--error-foreground);
88
- border-color: var(--border-strong);
89
- }
90
- .danger:hover:not(:disabled) {
91
- filter: brightness(1.1);
92
- }
93
-
94
- .outline {
95
- background-color: transparent;
96
- border-color: currentColor;
97
- }
98
-
99
- .ghost {
100
- background-color: transparent;
101
- border-color: transparent;
102
- box-shadow: none;
103
- }
104
- .ghost:hover:not(:disabled), .ghost:focus-visible:not(:disabled) {
105
- background-color: color-mix(in srgb, var(--primary), transparent 90%);
106
- color: var(--primary);
107
- transform: none;
108
- box-shadow: none;
109
- border-color: transparent;
110
- outline: none;
111
- }
112
- .ghost:disabled {
113
- box-shadow: none;
114
- }
115
- .ghost:active {
116
- transform: scale(0.95);
117
- transition: none;
118
- }
119
-
120
- /* Sizes */
121
- .sm {
122
- padding: var(--spacing-1);
123
- font-size: var(--text-sm);
124
- min-width: var(--spacing-6);
125
- min-height: var(--control-height-sm);
126
- box-sizing: border-box;
127
- justify-content: center;
128
- }
129
-
130
- .md {
131
- padding: var(--spacing-3) var(--spacing-6);
132
- font-size: var(--text-base);
133
- min-height: var(--control-height-md);
134
- box-sizing: border-box;
135
- }
136
-
137
- .lg {
138
- padding: var(--spacing-4) var(--spacing-8);
139
- font-size: var(--text-lg);
140
- min-height: var(--control-height-lg);
141
- box-sizing: border-box;
142
- }
143
-
144
- /* Loading State */
145
- .loading {
146
- cursor: wait;
147
- opacity: 0.8;
148
- pointer-events: none;
149
- }
150
-
151
- .spinnerIcon {
152
- margin-right: var(--spacing-2);
1
+ @layer doom.components {
2
+ .button {
3
+ --btn-focus-border: var(--primary);
4
+ --btn-focus-shadow: var(--shadow-primary);
5
+ display: inline-flex;
6
+ align-items: center;
7
+ justify-content: center;
8
+ font-weight: 700;
9
+ text-transform: uppercase;
10
+ letter-spacing: 0.05em;
11
+ cursor: pointer;
12
+ background-color: var(--card-bg);
13
+ color: var(--foreground);
14
+ position: relative;
15
+ height: var(--control-height);
16
+ padding: var(--control-padding-y) var(--control-padding-x);
17
+ font-size: var(--control-font-size);
18
+ border: var(--surface-border-width) solid var(--card-border);
19
+ border-radius: var(--control-radius);
20
+ box-shadow: var(--shadow-md);
21
+ transition: all var(--duration-fast) var(--ease-in-out);
22
+ outline: none;
23
+ }
24
+ .button:hover {
25
+ transform: translate(calc(-1 * var(--space-0\.5)), calc(-1 * var(--space-0\.5)));
26
+ box-shadow: var(--shadow-lg);
27
+ }
28
+ .button:focus-visible {
29
+ outline: none;
30
+ transform: translate(calc(-1 * var(--space-0\.5)), calc(-1 * var(--space-0\.5)));
31
+ box-shadow: var(--shadow-offset-xl) var(--shadow-primary);
32
+ border-color: var(--primary);
33
+ }
34
+ .button:focus {
35
+ outline: none;
36
+ }
37
+ .button:active {
38
+ transition: none;
39
+ transform: translate(var(--space-0\.5), var(--space-0\.5));
40
+ box-shadow: none;
41
+ }
42
+ .button:focus-visible {
43
+ border-color: var(--btn-focus-border);
44
+ }
45
+ .button:disabled {
46
+ opacity: 0.6;
47
+ cursor: not-allowed !important;
48
+ background-image: repeating-linear-gradient(45deg, transparent, transparent 10px, rgba(0, 0, 0, 0.05) 10px, rgba(0, 0, 0, 0.05) 20px) !important;
49
+ }
50
+ .button:disabled:hover {
51
+ transform: none !important;
52
+ filter: none !important;
53
+ }
54
+ .button:disabled {
55
+ transform: none;
56
+ box-shadow: var(--shadow-md);
57
+ }
58
+ /* Variants */
59
+ .primary {
60
+ --btn-focus-border: var(--card-border);
61
+ --btn-focus-shadow: var(--shadow-base);
62
+ background-color: var(--primary);
63
+ color: var(--primary-foreground);
64
+ border-color: var(--border-strong);
65
+ }
66
+ .primary:hover:not(:disabled) {
67
+ filter: brightness(1.1);
68
+ }
69
+ .secondary {
70
+ --btn-focus-border: var(--card-border);
71
+ --btn-focus-shadow: var(--shadow-base);
72
+ background-color: var(--secondary);
73
+ color: var(--secondary-foreground);
74
+ border-color: var(--border-strong);
75
+ }
76
+ .secondary:hover:not(:disabled) {
77
+ filter: brightness(1.1);
78
+ }
79
+ .success {
80
+ --btn-focus-border: var(--card-border);
81
+ --btn-focus-shadow: var(--shadow-base);
82
+ background-color: var(--success);
83
+ color: var(--success-foreground);
84
+ border-color: var(--border-strong);
85
+ }
86
+ .success:hover:not(:disabled) {
87
+ filter: brightness(1.1);
88
+ }
89
+ .danger {
90
+ --btn-focus-border: var(--card-border);
91
+ --btn-focus-shadow: var(--shadow-base);
92
+ background-color: var(--error);
93
+ color: var(--error-foreground);
94
+ border-color: var(--border-strong);
95
+ }
96
+ .danger:hover:not(:disabled) {
97
+ filter: brightness(1.1);
98
+ }
99
+ .outline {
100
+ background-color: transparent;
101
+ border-color: currentColor;
102
+ }
103
+ .ghost {
104
+ background-color: transparent;
105
+ border-color: transparent;
106
+ box-shadow: none;
107
+ }
108
+ .ghost:hover:not(:disabled), .ghost:focus-visible:not(:disabled) {
109
+ background-color: color-mix(in srgb, var(--primary), transparent 90%);
110
+ color: var(--primary);
111
+ transform: none;
112
+ box-shadow: none;
113
+ border-color: transparent;
114
+ outline: none;
115
+ }
116
+ .ghost:disabled {
117
+ box-shadow: none;
118
+ }
119
+ .ghost:active {
120
+ transform: scale(0.95);
121
+ transition: none;
122
+ }
123
+ /* Sizes */
124
+ .sm {
125
+ --control-height: var(--size-7);
126
+ --control-padding-x: var(--space-2);
127
+ --control-padding-y: var(--space-1);
128
+ --control-font-size: var(--text-xs);
129
+ --control-icon-size: var(--size-4);
130
+ --control-gap: var(--space-1);
131
+ --control-radius: var(--radius-sm);
132
+ }
133
+ .lg {
134
+ --control-height: var(--size-10);
135
+ --control-padding-x: var(--space-4);
136
+ --control-padding-y: var(--space-2);
137
+ --control-font-size: var(--text-base);
138
+ --control-icon-size: var(--size-5);
139
+ --control-gap: var(--space-2);
140
+ --control-radius: var(--radius-md);
141
+ }
142
+ /* Loading State */
143
+ .loading {
144
+ cursor: wait;
145
+ opacity: 0.8;
146
+ pointer-events: none;
147
+ }
148
+ .spinnerIcon {
149
+ margin-right: var(--space-2);
150
+ }
153
151
  }
@@ -1,40 +1,38 @@
1
- .root {
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
- min-width: 0;
7
- display: flex;
8
- flex-direction: column;
9
- }
10
- .root > *:first-child {
11
- border-top-left-radius: calc(var(--radius) - var(--border-width));
12
- border-top-right-radius: calc(var(--radius) - var(--border-width));
13
- }
14
- .root > *:last-child {
15
- border-bottom-left-radius: calc(var(--radius) - var(--border-width));
16
- border-bottom-right-radius: calc(var(--radius) - var(--border-width));
17
- }
18
-
19
- .padded {
20
- padding: var(--spacing-6);
21
- }
22
-
23
- .header {
24
- padding: var(--spacing-6);
25
- border-bottom: var(--border-width) solid var(--card-border);
26
- background-color: var(--card-bg);
27
- border-radius: calc(var(--radius) - var(--border-width)) calc(var(--radius) - var(--border-width)) 0 0;
28
- }
29
-
30
- .body {
31
- padding: var(--spacing-6);
32
- flex: 1;
33
- }
34
-
35
- .footer {
36
- padding: var(--spacing-6);
37
- border-top: var(--border-width) solid var(--card-border);
38
- background-color: var(--card-bg);
39
- border-radius: 0 0 calc(var(--radius) - var(--border-width)) calc(var(--radius) - var(--border-width));
1
+ @layer doom.components {
2
+ .root {
3
+ background-color: var(--card-bg);
4
+ border: var(--surface-border-width) solid var(--card-border);
5
+ border-radius: var(--surface-radius);
6
+ box-shadow: var(--shadow-md);
7
+ min-width: 0;
8
+ display: flex;
9
+ flex-direction: column;
10
+ }
11
+ .root > *:first-child {
12
+ border-top-left-radius: calc(var(--surface-radius) - var(--surface-border-width));
13
+ border-top-right-radius: calc(var(--surface-radius) - var(--surface-border-width));
14
+ }
15
+ .root > *:last-child {
16
+ border-bottom-left-radius: calc(var(--surface-radius) - var(--surface-border-width));
17
+ border-bottom-right-radius: calc(var(--surface-radius) - var(--surface-border-width));
18
+ }
19
+ .padded {
20
+ padding: var(--surface-padding);
21
+ }
22
+ .header {
23
+ padding: var(--surface-padding);
24
+ border-bottom: var(--surface-border-width) solid var(--card-border);
25
+ background-color: var(--card-bg);
26
+ border-radius: calc(var(--surface-radius) - var(--surface-border-width)) calc(var(--surface-radius) - var(--surface-border-width)) 0 0;
27
+ }
28
+ .body {
29
+ padding: var(--surface-padding);
30
+ flex: 1;
31
+ }
32
+ .footer {
33
+ padding: var(--surface-padding);
34
+ border-top: var(--surface-border-width) solid var(--card-border);
35
+ background-color: var(--card-bg);
36
+ border-radius: 0 0 calc(var(--surface-radius) - var(--surface-border-width)) calc(var(--surface-radius) - var(--surface-border-width));
37
+ }
40
38
  }