@openwarelabs/ui 0.0.0-stage → 0.1.1

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 (144) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +100 -2
  3. package/dist/components/Accordion/Accordion.d.cts +54 -0
  4. package/dist/components/Accordion/Accordion.d.ts +54 -0
  5. package/dist/components/Alert/Alert.d.cts +18 -0
  6. package/dist/components/Alert/Alert.d.ts +18 -0
  7. package/dist/components/Avatar/Avatar.d.cts +14 -0
  8. package/dist/components/Avatar/Avatar.d.ts +14 -0
  9. package/dist/components/Avatar/AvatarGroup.d.cts +28 -0
  10. package/dist/components/Avatar/AvatarGroup.d.ts +28 -0
  11. package/dist/components/Badge/Badge.d.cts +13 -0
  12. package/dist/components/Badge/Badge.d.ts +13 -0
  13. package/dist/components/Breadcrumbs/Breadcrumbs.d.cts +33 -0
  14. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +33 -0
  15. package/dist/components/Button/Button.d.cts +42 -0
  16. package/dist/components/Button/Button.d.ts +42 -0
  17. package/dist/components/Button/ButtonGroup.d.cts +33 -0
  18. package/dist/components/Button/ButtonGroup.d.ts +33 -0
  19. package/dist/components/Calendar/Calendar.d.cts +31 -0
  20. package/dist/components/Calendar/Calendar.d.ts +31 -0
  21. package/dist/components/Calendar/DatePicker.d.cts +21 -0
  22. package/dist/components/Calendar/DatePicker.d.ts +21 -0
  23. package/dist/components/Calendar/dates.d.cts +15 -0
  24. package/dist/components/Calendar/dates.d.ts +15 -0
  25. package/dist/components/Card/Card.d.cts +18 -0
  26. package/dist/components/Card/Card.d.ts +18 -0
  27. package/dist/components/Checkbox/Checkbox.d.cts +59 -0
  28. package/dist/components/Checkbox/Checkbox.d.ts +59 -0
  29. package/dist/components/ChoiceCard/ChoiceCard.d.cts +14 -0
  30. package/dist/components/ChoiceCard/ChoiceCard.d.ts +14 -0
  31. package/dist/components/CodeBlock/CodeBlock.d.cts +50 -0
  32. package/dist/components/CodeBlock/CodeBlock.d.ts +50 -0
  33. package/dist/components/ColorPicker/ColorPicker.d.cts +62 -0
  34. package/dist/components/ColorPicker/ColorPicker.d.ts +62 -0
  35. package/dist/components/Combobox/Combobox.d.cts +42 -0
  36. package/dist/components/Combobox/Combobox.d.ts +42 -0
  37. package/dist/components/CommandPalette/CommandPalette.d.cts +27 -0
  38. package/dist/components/CommandPalette/CommandPalette.d.ts +27 -0
  39. package/dist/components/CommandPalette/filterCommands.d.cts +3 -0
  40. package/dist/components/CommandPalette/filterCommands.d.ts +3 -0
  41. package/dist/components/Dialog/Dialog.d.cts +42 -0
  42. package/dist/components/Dialog/Dialog.d.ts +42 -0
  43. package/dist/components/Drawer/Drawer.d.cts +23 -0
  44. package/dist/components/Drawer/Drawer.d.ts +23 -0
  45. package/dist/components/EmptyState/EmptyState.d.cts +18 -0
  46. package/dist/components/EmptyState/EmptyState.d.ts +18 -0
  47. package/dist/components/Field/Field.d.cts +18 -0
  48. package/dist/components/Field/Field.d.ts +18 -0
  49. package/dist/components/FileDropZone/FileDropZone.d.cts +29 -0
  50. package/dist/components/FileDropZone/FileDropZone.d.ts +29 -0
  51. package/dist/components/FileTree/FileTree.d.cts +29 -0
  52. package/dist/components/FileTree/FileTree.d.ts +29 -0
  53. package/dist/components/Input/Input.d.cts +18 -0
  54. package/dist/components/Input/Input.d.ts +18 -0
  55. package/dist/components/InputOTP/InputOTP.d.cts +31 -0
  56. package/dist/components/InputOTP/InputOTP.d.ts +31 -0
  57. package/dist/components/Kbd/Kbd.d.cts +5 -0
  58. package/dist/components/Kbd/Kbd.d.ts +5 -0
  59. package/dist/components/Layout/Layout.d.cts +50 -0
  60. package/dist/components/Layout/Layout.d.ts +50 -0
  61. package/dist/components/Marketing/Marketing.d.cts +39 -0
  62. package/dist/components/Marketing/Marketing.d.ts +39 -0
  63. package/dist/components/Menu/Menu.d.cts +43 -0
  64. package/dist/components/Menu/Menu.d.ts +43 -0
  65. package/dist/components/NavList/NavList.d.cts +27 -0
  66. package/dist/components/NavList/NavList.d.ts +27 -0
  67. package/dist/components/NumberField/NumberField.d.cts +23 -0
  68. package/dist/components/NumberField/NumberField.d.ts +23 -0
  69. package/dist/components/Pagination/Pagination.d.cts +24 -0
  70. package/dist/components/Pagination/Pagination.d.ts +24 -0
  71. package/dist/components/Popover/Popover.d.cts +30 -0
  72. package/dist/components/Popover/Popover.d.ts +30 -0
  73. package/dist/components/Progress/Progress.d.cts +41 -0
  74. package/dist/components/Progress/Progress.d.ts +41 -0
  75. package/dist/components/RadioGroup/RadioGroup.d.cts +36 -0
  76. package/dist/components/RadioGroup/RadioGroup.d.ts +36 -0
  77. package/dist/components/SearchField/SearchField.d.cts +17 -0
  78. package/dist/components/SearchField/SearchField.d.ts +17 -0
  79. package/dist/components/SegmentedControl/SegmentedControl.d.cts +32 -0
  80. package/dist/components/SegmentedControl/SegmentedControl.d.ts +32 -0
  81. package/dist/components/Select/Select.d.cts +40 -0
  82. package/dist/components/Select/Select.d.ts +40 -0
  83. package/dist/components/Skeleton/Skeleton.d.cts +26 -0
  84. package/dist/components/Skeleton/Skeleton.d.ts +26 -0
  85. package/dist/components/Slider/Slider.d.cts +33 -0
  86. package/dist/components/Slider/Slider.d.ts +33 -0
  87. package/dist/components/Spinner/Spinner.d.cts +14 -0
  88. package/dist/components/Spinner/Spinner.d.ts +14 -0
  89. package/dist/components/Stat/Stat.d.cts +20 -0
  90. package/dist/components/Stat/Stat.d.ts +20 -0
  91. package/dist/components/Steps/Steps.d.cts +27 -0
  92. package/dist/components/Steps/Steps.d.ts +27 -0
  93. package/dist/components/Switch/Switch.d.cts +9 -0
  94. package/dist/components/Switch/Switch.d.ts +9 -0
  95. package/dist/components/Table/Table.d.cts +55 -0
  96. package/dist/components/Table/Table.d.ts +55 -0
  97. package/dist/components/Tabs/Tabs.d.cts +35 -0
  98. package/dist/components/Tabs/Tabs.d.ts +35 -0
  99. package/dist/components/Tag/Tag.d.cts +40 -0
  100. package/dist/components/Tag/Tag.d.ts +40 -0
  101. package/dist/components/Textarea/Textarea.d.cts +12 -0
  102. package/dist/components/Textarea/Textarea.d.ts +12 -0
  103. package/dist/components/Toast/Toast.d.cts +41 -0
  104. package/dist/components/Toast/Toast.d.ts +41 -0
  105. package/dist/components/Tooltip/Tooltip.d.cts +19 -0
  106. package/dist/components/Tooltip/Tooltip.d.ts +19 -0
  107. package/dist/components.css +5236 -0
  108. package/dist/fonts.css +3 -0
  109. package/dist/hooks/useControllableState.d.cts +5 -0
  110. package/dist/hooks/useControllableState.d.ts +5 -0
  111. package/dist/hooks/useFloating.d.cts +26 -0
  112. package/dist/hooks/useFloating.d.ts +26 -0
  113. package/dist/hooks/useIndicator.d.cts +8 -0
  114. package/dist/hooks/useIndicator.d.ts +8 -0
  115. package/dist/hooks/useMenuKeyboard.d.cts +12 -0
  116. package/dist/hooks/useMenuKeyboard.d.ts +12 -0
  117. package/dist/hooks/useModalDialog.d.cts +9 -0
  118. package/dist/hooks/useModalDialog.d.ts +9 -0
  119. package/dist/hooks/usePresence.d.cts +13 -0
  120. package/dist/hooks/usePresence.d.ts +13 -0
  121. package/dist/icons.d.cts +33 -0
  122. package/dist/icons.d.ts +33 -0
  123. package/dist/index.cjs +4622 -0
  124. package/dist/index.cjs.map +7 -0
  125. package/dist/index.d.cts +114 -0
  126. package/dist/index.d.ts +114 -0
  127. package/dist/index.js +4650 -0
  128. package/dist/index.js.map +7 -0
  129. package/dist/openware-ui.iife.js +8 -0
  130. package/dist/styles.css +5664 -0
  131. package/dist/tailwind.css +145 -0
  132. package/dist/tokens.css +427 -0
  133. package/dist/tokens.json +1163 -0
  134. package/dist/utils/brand.d.cts +30 -0
  135. package/dist/utils/brand.d.ts +30 -0
  136. package/dist/utils/copyText.d.cts +2 -0
  137. package/dist/utils/copyText.d.ts +2 -0
  138. package/dist/utils/cx.d.cts +4 -0
  139. package/dist/utils/cx.d.ts +4 -0
  140. package/dist/utils/resizeTextArea.d.cts +2 -0
  141. package/dist/utils/resizeTextArea.d.ts +2 -0
  142. package/dist/utils/text.d.cts +4 -0
  143. package/dist/utils/text.d.ts +4 -0
  144. package/package.json +83 -4
@@ -0,0 +1,145 @@
1
+ /* Generated by scripts/build-tokens.mjs. Opt-in Tailwind v4 theme: @import "@openwarelabs/ui/tailwind.css" after "tailwindcss". */
2
+
3
+ @custom-variant dark (&:where([data-theme="dark"], [data-theme="dark"] *));
4
+
5
+ @theme inline {
6
+ --color-brand-50: var(--ow-brand-50);
7
+ --color-brand-100: var(--ow-brand-100);
8
+ --color-brand-200: var(--ow-brand-200);
9
+ --color-brand-300: var(--ow-brand-300);
10
+ --color-brand-400: var(--ow-brand-400);
11
+ --color-brand-500: var(--ow-brand-500);
12
+ --color-brand-600: var(--ow-brand-600);
13
+ --color-brand-700: var(--ow-brand-700);
14
+ --color-brand-800: var(--ow-brand-800);
15
+ --color-brand-900: var(--ow-brand-900);
16
+ --color-brand-950: var(--ow-brand-950);
17
+ --color-gray-50: var(--ow-gray-50);
18
+ --color-gray-100: var(--ow-gray-100);
19
+ --color-gray-200: var(--ow-gray-200);
20
+ --color-gray-300: var(--ow-gray-300);
21
+ --color-gray-400: var(--ow-gray-400);
22
+ --color-gray-500: var(--ow-gray-500);
23
+ --color-gray-600: var(--ow-gray-600);
24
+ --color-gray-700: var(--ow-gray-700);
25
+ --color-gray-800: var(--ow-gray-800);
26
+ --color-gray-900: var(--ow-gray-900);
27
+ --color-gray-950: var(--ow-gray-950);
28
+ --color-canvas: var(--ow-canvas);
29
+ --color-paper: var(--ow-paper);
30
+ --color-surface: var(--ow-surface);
31
+ --color-surface-muted: var(--ow-surface-muted);
32
+ --color-control: var(--ow-control);
33
+ --color-control-shade: var(--ow-control-shade);
34
+ --color-control-shade-hover: var(--ow-control-shade-hover);
35
+ --color-hover: var(--ow-hover);
36
+ --color-disabled: var(--ow-disabled);
37
+ --color-icon: var(--ow-icon);
38
+ --color-border: var(--ow-border);
39
+ --color-border-strong: var(--ow-border-strong);
40
+ --color-border-hover: var(--ow-border-hover);
41
+ --color-text: var(--ow-text);
42
+ --color-text-soft: var(--ow-text-soft);
43
+ --color-text-muted: var(--ow-text-muted);
44
+ --color-text-disabled: var(--ow-text-disabled);
45
+ --color-primary: var(--ow-primary);
46
+ --color-primary-hover: var(--ow-primary-hover);
47
+ --color-primary-active: var(--ow-primary-active);
48
+ --color-on-primary: var(--ow-on-primary);
49
+ --color-primary-text: var(--ow-primary-text);
50
+ --color-primary-subtle: var(--ow-primary-subtle);
51
+ --color-primary-soft: var(--ow-primary-soft);
52
+ --color-primary-border: var(--ow-primary-border);
53
+ --color-primary-focus: var(--ow-primary-focus);
54
+ --color-focus-border: var(--ow-focus-border);
55
+ --color-focus-ring: var(--ow-focus-ring);
56
+ --color-brass: var(--ow-brass);
57
+ --color-brass-deep: var(--ow-brass-deep);
58
+ --color-brass-soft: var(--ow-brass-soft);
59
+ --color-danger-surface: var(--ow-danger-surface);
60
+ --color-danger-wash: var(--ow-danger-wash);
61
+ --color-danger-border: var(--ow-danger-border);
62
+ --color-danger-line: var(--ow-danger-line);
63
+ --color-danger-solid: var(--ow-danger-solid);
64
+ --color-danger-fill: var(--ow-danger-fill);
65
+ --color-danger-fill-border: var(--ow-danger-fill-border);
66
+ --color-danger-text: var(--ow-danger-text);
67
+ --color-success-surface: var(--ow-success-surface);
68
+ --color-success-border: var(--ow-success-border);
69
+ --color-success-solid: var(--ow-success-solid);
70
+ --color-success-text: var(--ow-success-text);
71
+ --color-warning-surface: var(--ow-warning-surface);
72
+ --color-warning-border: var(--ow-warning-border);
73
+ --color-warning-solid: var(--ow-warning-solid);
74
+ --color-warning-text: var(--ow-warning-text);
75
+ --color-tooltip: var(--ow-tooltip);
76
+ --color-on-tooltip: var(--ow-on-tooltip);
77
+ --color-switch-off: var(--ow-switch-off);
78
+ --color-skeleton: var(--ow-skeleton);
79
+ --color-skeleton-soft: var(--ow-skeleton-soft);
80
+ --color-avatar-empty: var(--ow-avatar-empty);
81
+ --color-on-avatar-empty: var(--ow-on-avatar-empty);
82
+ --color-code-ground: var(--ow-code-ground);
83
+ --color-key-ground: var(--ow-key-ground);
84
+ --color-track: var(--ow-track);
85
+ --color-thumb: var(--ow-thumb);
86
+ --color-meter-track: var(--ow-meter-track);
87
+ --color-progress: var(--ow-progress);
88
+ --color-code-block: var(--ow-code-block);
89
+ --color-code-block-header: var(--ow-code-block-header);
90
+ --color-code-block-border: var(--ow-code-block-border);
91
+ --color-on-code-block: var(--ow-on-code-block);
92
+ --color-on-code-block-muted: var(--ow-on-code-block-muted);
93
+ --color-backdrop: var(--ow-backdrop);
94
+ --color-dot: var(--ow-dot);
95
+ --color-header-glass: var(--ow-header-glass);
96
+ --radius-sm: var(--ow-radius-sm);
97
+ --radius-code: var(--ow-radius-code);
98
+ --radius-md: var(--ow-radius-md);
99
+ --radius-lg: var(--ow-radius-lg);
100
+ --radius-form: var(--ow-radius-form);
101
+ --radius-tile: var(--ow-radius-tile);
102
+ --radius-container: var(--ow-radius-container);
103
+ --radius-panel: var(--ow-radius-panel);
104
+ --radius-card: var(--ow-radius-card);
105
+ --radius-section: var(--ow-radius-section);
106
+ --radius-pill: var(--ow-radius-pill);
107
+ --spacing-3xs: var(--ow-space-3xs);
108
+ --spacing-2xs: var(--ow-space-2xs);
109
+ --spacing-xs: var(--ow-space-xs);
110
+ --spacing-sm: var(--ow-space-sm);
111
+ --spacing-md: var(--ow-space-md);
112
+ --spacing-lg: var(--ow-space-lg);
113
+ --spacing-xl: var(--ow-space-xl);
114
+ --spacing-2xl: var(--ow-space-2xl);
115
+ --spacing-3xl: var(--ow-space-3xl);
116
+ --spacing-4xl: var(--ow-space-4xl);
117
+ --spacing-5xl: var(--ow-space-5xl);
118
+ --spacing-6xl: var(--ow-space-6xl);
119
+ --spacing-7xl: var(--ow-space-7xl);
120
+ --shadow-button: var(--ow-shadow-button);
121
+ --shadow-button-secondary: var(--ow-shadow-button-secondary);
122
+ --shadow-button-danger: var(--ow-shadow-button-danger);
123
+ --shadow-pressed: var(--ow-shadow-pressed);
124
+ --shadow-pressed-secondary: var(--ow-shadow-pressed-secondary);
125
+ --shadow-control: var(--ow-shadow-control);
126
+ --shadow-menu: var(--ow-shadow-menu);
127
+ --shadow-focus: var(--ow-shadow-focus);
128
+ --shadow-focus-danger: var(--ow-shadow-focus-danger);
129
+ --shadow-header: var(--ow-shadow-header);
130
+ --shadow-lift: var(--ow-shadow-lift);
131
+ --font-weight-regular: var(--ow-weight-regular);
132
+ --font-weight-control: var(--ow-weight-control);
133
+ --font-weight-emphasis: var(--ow-weight-emphasis);
134
+ --font-weight-label: var(--ow-weight-label);
135
+ --font-weight-heavy: var(--ow-weight-heavy);
136
+ --font-weight-title: var(--ow-weight-title);
137
+ --font-weight-action: var(--ow-weight-action);
138
+ --font-weight-subheading: var(--ow-weight-subheading);
139
+ --font-weight-strong: var(--ow-weight-strong);
140
+ --font-weight-display: var(--ow-weight-display);
141
+ --font-sans: var(--ow-font-sans);
142
+ --font-mono: var(--ow-font-mono);
143
+ --ease-standard: var(--ow-ease-standard);
144
+ --ease-emphasized: var(--ow-ease-emphasized);
145
+ }
@@ -0,0 +1,427 @@
1
+ /* Generated from tokens/tokens.json by scripts/build-tokens.mjs. Don't edit by hand. */
2
+
3
+ :root,
4
+ [data-theme="light"] {
5
+ --ow-brand-50: #f2f3fc;
6
+ --ow-brand-100: #e7e9f9;
7
+ --ow-brand-200: #d4d7f4;
8
+ --ow-brand-300: #b7bbea;
9
+ --ow-brand-400: #898cd0;
10
+ --ow-brand-500: #5856ad;
11
+ --ow-brand-600: #312c7e;
12
+ --ow-brand-700: #1e1b4b;
13
+ --ow-brand-800: #18163d;
14
+ --ow-brand-900: #13112f;
15
+ --ow-brand-950: #0b0a20;
16
+ --ow-gray-50: #f8fafc;
17
+ --ow-gray-100: #f1f5f9;
18
+ --ow-gray-200: #e2e8f0;
19
+ --ow-gray-300: #cbd5e1;
20
+ --ow-gray-400: #94a3b8;
21
+ --ow-gray-500: #64748b;
22
+ --ow-gray-600: #475569;
23
+ --ow-gray-700: #334155;
24
+ --ow-gray-800: #1e293b;
25
+ --ow-gray-900: #0f172a;
26
+ --ow-gray-950: #020617;
27
+ --ow-canvas: var(--ow-gray-100);
28
+ --ow-paper: #f8f8f7;
29
+ --ow-surface: #ffffff;
30
+ --ow-surface-muted: var(--ow-gray-50);
31
+ --ow-control: #ffffff;
32
+ --ow-control-shade: var(--ow-gray-50);
33
+ --ow-control-shade-hover: var(--ow-gray-100);
34
+ --ow-hover: var(--ow-gray-100);
35
+ --ow-disabled: var(--ow-gray-100);
36
+ --ow-icon: var(--ow-gray-400);
37
+ --ow-border: var(--ow-gray-200);
38
+ --ow-border-strong: var(--ow-gray-300);
39
+ --ow-border-hover: var(--ow-gray-400);
40
+ --ow-text: var(--ow-gray-900);
41
+ --ow-text-soft: var(--ow-gray-700);
42
+ --ow-text-muted: #5f6b7d;
43
+ --ow-text-disabled: var(--ow-gray-400);
44
+ --ow-primary: var(--ow-brand-600);
45
+ --ow-primary-hover: var(--ow-brand-700);
46
+ --ow-primary-active: var(--ow-brand-800);
47
+ --ow-on-primary: #ffffff;
48
+ --ow-primary-text: var(--ow-brand-600);
49
+ --ow-primary-subtle: var(--ow-brand-50);
50
+ --ow-primary-soft: var(--ow-brand-100);
51
+ --ow-primary-border: var(--ow-brand-200);
52
+ --ow-primary-focus: var(--ow-brand-300);
53
+ --ow-focus-border: var(--ow-brand-500);
54
+ --ow-focus-ring: var(--ow-brand-500);
55
+ --ow-brass: #d4a72c;
56
+ --ow-brass-deep: #8a6a12;
57
+ --ow-brass-soft: #faf3df;
58
+ --ow-danger-surface: #fff7f7;
59
+ --ow-danger-wash: #ffe2e2;
60
+ --ow-danger-border: #ffc9c9;
61
+ --ow-danger-line: #ffa2a2;
62
+ --ow-danger-solid: #fb2c36;
63
+ --ow-danger-fill: #e7000b;
64
+ --ow-danger-fill-border: #c10007;
65
+ --ow-danger-text: #c10007;
66
+ --ow-success-surface: #eef8f2;
67
+ --ow-success-border: #b9d8c2;
68
+ --ow-success-solid: #00bc7d;
69
+ --ow-success-text: #006045;
70
+ --ow-warning-surface: #fffbeb;
71
+ --ow-warning-border: #d7ca9f;
72
+ --ow-warning-solid: #fe9a00;
73
+ --ow-warning-text: #973c00;
74
+ --ow-tooltip: var(--ow-gray-900);
75
+ --ow-on-tooltip: #ffffff;
76
+ --ow-switch-off: var(--ow-gray-400);
77
+ --ow-skeleton: var(--ow-gray-200);
78
+ --ow-skeleton-soft: var(--ow-gray-100);
79
+ --ow-avatar-empty: var(--ow-gray-200);
80
+ --ow-on-avatar-empty: var(--ow-gray-600);
81
+ --ow-code-ground: var(--ow-gray-100);
82
+ --ow-key-ground: var(--ow-gray-50);
83
+ --ow-track: var(--ow-gray-100);
84
+ --ow-thumb: #ffffff;
85
+ --ow-meter-track: var(--ow-gray-200);
86
+ --ow-progress: var(--ow-brand-600);
87
+ --ow-code-block: #15171c;
88
+ --ow-code-block-header: #1c1f26;
89
+ --ow-code-block-border: #15171c;
90
+ --ow-on-code-block: #e6edf3;
91
+ --ow-on-code-block-muted: #8b919c;
92
+ --ow-backdrop: rgba(15,23,42,0.4);
93
+ --ow-dot: rgba(15,23,42,0.11);
94
+ --ow-header-glass: rgba(255,255,255,0.85);
95
+ --ow-shadow-button: inset 0 1px 0 rgba(255,255,255,0.18), inset 0 -1px 0 rgba(0,0,0,0.2), 0 1px 2px color-mix(in srgb, var(--ow-brand-700) 30%, transparent), 0 4px 10px -4px color-mix(in srgb, var(--ow-brand-600) 50%, transparent);
96
+ --ow-shadow-button-secondary: inset 0 1px 0 rgba(255,255,255,0.7), 0 1px 2px rgba(15,23,42,0.08);
97
+ --ow-shadow-button-danger: inset 0 1px 0 rgba(255,255,255,0.25), inset 0 -1px 0 rgba(0,0,0,0.12), 0 1px 2px rgba(127,29,29,0.25), 0 4px 10px -4px rgba(220,38,38,0.5);
98
+ --ow-shadow-pressed: inset 0 2px 4px rgba(0,0,0,0.18);
99
+ --ow-shadow-pressed-secondary: inset 0 1px 2px rgba(15,23,42,0.1);
100
+ --ow-shadow-control: 0 1px 2px rgba(0,0,0,0.06);
101
+ --ow-shadow-menu: 0 12px 24px rgba(0,0,0,0.12), 0 1px 3px rgba(0,0,0,0.08);
102
+ --ow-shadow-focus: 0 0 0 3px color-mix(in srgb, var(--ow-brand-600) 14%, transparent);
103
+ --ow-shadow-focus-danger: 0 0 0 3px rgba(239,68,68,0.12);
104
+ --ow-shadow-header: 0 1px 2px rgba(0,0,0,0.04), 0 6px 20px rgba(0,0,0,0.04);
105
+ --ow-shadow-lift: 0 20px 40px color-mix(in srgb, var(--ow-brand-700) 35%, transparent);
106
+ color-scheme: light;
107
+ }
108
+
109
+ [data-theme="dark"] {
110
+ --ow-canvas: #15171c;
111
+ --ow-paper: #15171c;
112
+ --ow-surface: #1c1f26;
113
+ --ow-surface-muted: #262a33;
114
+ --ow-control: #2a2f38;
115
+ --ow-control-shade: #23272f;
116
+ --ow-control-shade-hover: #1f232a;
117
+ --ow-hover: #2a2f38;
118
+ --ow-disabled: #23272f;
119
+ --ow-icon: #7d8593;
120
+ --ow-border: #2c313a;
121
+ --ow-border-strong: #434a56;
122
+ --ow-border-hover: #5b6472;
123
+ --ow-text: #f3f4f6;
124
+ --ow-text-soft: #cfd3da;
125
+ --ow-text-muted: #959ba6;
126
+ --ow-text-disabled: #626a77;
127
+ --ow-primary: var(--ow-brand-500);
128
+ --ow-primary-hover: var(--ow-brand-600);
129
+ --ow-primary-active: var(--ow-brand-700);
130
+ --ow-primary-text: var(--ow-brand-300);
131
+ --ow-primary-subtle: color-mix(in srgb, var(--ow-brand-400) 14%, transparent);
132
+ --ow-primary-soft: color-mix(in srgb, var(--ow-brand-400) 22%, transparent);
133
+ --ow-primary-border: color-mix(in srgb, var(--ow-brand-400) 40%, transparent);
134
+ --ow-primary-focus: var(--ow-brand-400);
135
+ --ow-focus-border: var(--ow-brand-400);
136
+ --ow-focus-ring: var(--ow-brand-300);
137
+ --ow-brass-deep: var(--ow-brass);
138
+ --ow-brass-soft: rgba(212,167,44,0.14);
139
+ --ow-danger-surface: rgba(251,44,54,0.12);
140
+ --ow-danger-wash: rgba(251,44,54,0.18);
141
+ --ow-danger-border: rgba(255,100,103,0.38);
142
+ --ow-danger-line: #ff6467;
143
+ --ow-danger-text: #ffa2a2;
144
+ --ow-success-surface: rgba(0,188,125,0.12);
145
+ --ow-success-border: rgba(0,212,146,0.32);
146
+ --ow-success-text: #5ee9b5;
147
+ --ow-warning-surface: rgba(254,154,0,0.12);
148
+ --ow-warning-border: rgba(255,185,0,0.32);
149
+ --ow-warning-text: #ffd230;
150
+ --ow-tooltip: #f3f4f6;
151
+ --ow-on-tooltip: #15171c;
152
+ --ow-switch-off: #5b6472;
153
+ --ow-skeleton: #2c313a;
154
+ --ow-skeleton-soft: #252932;
155
+ --ow-avatar-empty: #2c313a;
156
+ --ow-on-avatar-empty: #cfd3da;
157
+ --ow-code-ground: #262a33;
158
+ --ow-key-ground: #22262e;
159
+ --ow-track: #14161b;
160
+ --ow-thumb: #2f3541;
161
+ --ow-meter-track: #2c313a;
162
+ --ow-progress: var(--ow-brand-400);
163
+ --ow-code-block-border: #2c313a;
164
+ --ow-backdrop: rgba(0,0,0,0.6);
165
+ --ow-dot: rgba(255,255,255,0.09);
166
+ --ow-header-glass: rgba(28,31,38,0.85);
167
+ --ow-shadow-button: inset 0 1px 0 rgba(255,255,255,0.18), inset 0 -1px 0 rgba(0,0,0,0.2), 0 1px 2px rgba(0,0,0,0.45), 0 4px 10px -4px rgba(0,0,0,0.7);
168
+ --ow-shadow-button-secondary: inset 0 1px 0 rgba(255,255,255,0.06), 0 1px 2px rgba(0,0,0,0.4);
169
+ --ow-shadow-button-danger: inset 0 1px 0 rgba(255,255,255,0.25), inset 0 -1px 0 rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.45), 0 4px 10px -4px rgba(0,0,0,0.7);
170
+ --ow-shadow-pressed-secondary: inset 0 1px 2px rgba(0,0,0,0.4);
171
+ --ow-shadow-control: 0 1px 2px rgba(0,0,0,0.4);
172
+ --ow-shadow-menu: 0 12px 24px rgba(0,0,0,0.5), 0 1px 3px rgba(0,0,0,0.4);
173
+ --ow-shadow-focus: 0 0 0 3px color-mix(in srgb, var(--ow-brand-400) 28%, transparent);
174
+ --ow-shadow-focus-danger: 0 0 0 3px rgba(239,68,68,0.24);
175
+ --ow-shadow-header: 0 1px 2px rgba(0,0,0,0.3), 0 6px 20px rgba(0,0,0,0.3);
176
+ --ow-shadow-lift: 0 20px 40px rgba(0,0,0,0.6);
177
+ color-scheme: dark;
178
+ }
179
+
180
+ @media (prefers-color-scheme: dark) {
181
+ [data-theme="system"] {
182
+ --ow-canvas: #15171c;
183
+ --ow-paper: #15171c;
184
+ --ow-surface: #1c1f26;
185
+ --ow-surface-muted: #262a33;
186
+ --ow-control: #2a2f38;
187
+ --ow-control-shade: #23272f;
188
+ --ow-control-shade-hover: #1f232a;
189
+ --ow-hover: #2a2f38;
190
+ --ow-disabled: #23272f;
191
+ --ow-icon: #7d8593;
192
+ --ow-border: #2c313a;
193
+ --ow-border-strong: #434a56;
194
+ --ow-border-hover: #5b6472;
195
+ --ow-text: #f3f4f6;
196
+ --ow-text-soft: #cfd3da;
197
+ --ow-text-muted: #959ba6;
198
+ --ow-text-disabled: #626a77;
199
+ --ow-primary: var(--ow-brand-500);
200
+ --ow-primary-hover: var(--ow-brand-600);
201
+ --ow-primary-active: var(--ow-brand-700);
202
+ --ow-primary-text: var(--ow-brand-300);
203
+ --ow-primary-subtle: color-mix(in srgb, var(--ow-brand-400) 14%, transparent);
204
+ --ow-primary-soft: color-mix(in srgb, var(--ow-brand-400) 22%, transparent);
205
+ --ow-primary-border: color-mix(in srgb, var(--ow-brand-400) 40%, transparent);
206
+ --ow-primary-focus: var(--ow-brand-400);
207
+ --ow-focus-border: var(--ow-brand-400);
208
+ --ow-focus-ring: var(--ow-brand-300);
209
+ --ow-brass-deep: var(--ow-brass);
210
+ --ow-brass-soft: rgba(212,167,44,0.14);
211
+ --ow-danger-surface: rgba(251,44,54,0.12);
212
+ --ow-danger-wash: rgba(251,44,54,0.18);
213
+ --ow-danger-border: rgba(255,100,103,0.38);
214
+ --ow-danger-line: #ff6467;
215
+ --ow-danger-text: #ffa2a2;
216
+ --ow-success-surface: rgba(0,188,125,0.12);
217
+ --ow-success-border: rgba(0,212,146,0.32);
218
+ --ow-success-text: #5ee9b5;
219
+ --ow-warning-surface: rgba(254,154,0,0.12);
220
+ --ow-warning-border: rgba(255,185,0,0.32);
221
+ --ow-warning-text: #ffd230;
222
+ --ow-tooltip: #f3f4f6;
223
+ --ow-on-tooltip: #15171c;
224
+ --ow-switch-off: #5b6472;
225
+ --ow-skeleton: #2c313a;
226
+ --ow-skeleton-soft: #252932;
227
+ --ow-avatar-empty: #2c313a;
228
+ --ow-on-avatar-empty: #cfd3da;
229
+ --ow-code-ground: #262a33;
230
+ --ow-key-ground: #22262e;
231
+ --ow-track: #14161b;
232
+ --ow-thumb: #2f3541;
233
+ --ow-meter-track: #2c313a;
234
+ --ow-progress: var(--ow-brand-400);
235
+ --ow-code-block-border: #2c313a;
236
+ --ow-backdrop: rgba(0,0,0,0.6);
237
+ --ow-dot: rgba(255,255,255,0.09);
238
+ --ow-header-glass: rgba(28,31,38,0.85);
239
+ --ow-shadow-button: inset 0 1px 0 rgba(255,255,255,0.18), inset 0 -1px 0 rgba(0,0,0,0.2), 0 1px 2px rgba(0,0,0,0.45), 0 4px 10px -4px rgba(0,0,0,0.7);
240
+ --ow-shadow-button-secondary: inset 0 1px 0 rgba(255,255,255,0.06), 0 1px 2px rgba(0,0,0,0.4);
241
+ --ow-shadow-button-danger: inset 0 1px 0 rgba(255,255,255,0.25), inset 0 -1px 0 rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.45), 0 4px 10px -4px rgba(0,0,0,0.7);
242
+ --ow-shadow-pressed-secondary: inset 0 1px 2px rgba(0,0,0,0.4);
243
+ --ow-shadow-control: 0 1px 2px rgba(0,0,0,0.4);
244
+ --ow-shadow-menu: 0 12px 24px rgba(0,0,0,0.5), 0 1px 3px rgba(0,0,0,0.4);
245
+ --ow-shadow-focus: 0 0 0 3px color-mix(in srgb, var(--ow-brand-400) 28%, transparent);
246
+ --ow-shadow-focus-danger: 0 0 0 3px rgba(239,68,68,0.24);
247
+ --ow-shadow-header: 0 1px 2px rgba(0,0,0,0.3), 0 6px 20px rgba(0,0,0,0.3);
248
+ --ow-shadow-lift: 0 20px 40px rgba(0,0,0,0.6);
249
+ color-scheme: dark;
250
+ }
251
+ }
252
+
253
+ :root {
254
+ --ow-space-3xs: 3px;
255
+ --ow-space-2xs: 4px;
256
+ --ow-space-xs: 6px;
257
+ --ow-space-sm: 8px;
258
+ --ow-space-md: 10px;
259
+ --ow-space-lg: 12px;
260
+ --ow-space-xl: 14px;
261
+ --ow-space-2xl: 16px;
262
+ --ow-space-3xl: 18px;
263
+ --ow-space-4xl: 20px;
264
+ --ow-space-5xl: 22px;
265
+ --ow-space-6xl: 26px;
266
+ --ow-space-7xl: 28px;
267
+ --ow-page-max: 1200px;
268
+ --ow-page-gutter: 20px;
269
+ --ow-header-height: 56px;
270
+ --ow-section-y: 96px;
271
+ --ow-radius-sm: 4px;
272
+ --ow-radius-code: 5px;
273
+ --ow-radius-md: 6px;
274
+ --ow-radius-lg: 8px;
275
+ --ow-radius-form: 8px;
276
+ --ow-radius-tile: 10px;
277
+ --ow-radius-container: 12px;
278
+ --ow-radius-panel: 14px;
279
+ --ow-radius-card: 18px;
280
+ --ow-radius-section: 22px;
281
+ --ow-radius-pill: 999px;
282
+ --ow-duration-fast: 120ms;
283
+ --ow-duration-base: 180ms;
284
+ --ow-duration-slow: 260ms;
285
+ --ow-duration-exit: 140ms;
286
+ --ow-duration-panel: 340ms;
287
+ --ow-ease-standard: cubic-bezier(0.2, 0, 0, 1);
288
+ --ow-ease-emphasized: cubic-bezier(0.16, 1, 0.3, 1);
289
+ --ow-ease-exit: cubic-bezier(0.4, 0, 1, 1);
290
+ --ow-ease-spring: cubic-bezier(0.34, 1.4, 0.64, 1);
291
+ --ow-weight-regular: 400;
292
+ --ow-weight-control: 500;
293
+ --ow-weight-emphasis: 600;
294
+ --ow-weight-label: 680;
295
+ --ow-weight-heavy: 700;
296
+ --ow-weight-title: 720;
297
+ --ow-weight-action: 730;
298
+ --ow-weight-subheading: 740;
299
+ --ow-weight-strong: 750;
300
+ --ow-weight-display: 760;
301
+ --ow-font-sans: "Inter Variable", Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
302
+ --ow-font-mono: "Geist Mono Variable", "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;
303
+ }
304
+
305
+ .ow-type-hero {
306
+ font-family: var(--ow-font-sans);
307
+ font-size: 76px;
308
+ line-height: 0.98;
309
+ font-weight: 500;
310
+ letter-spacing: -0.045em;
311
+ }
312
+
313
+ .ow-type-page-title {
314
+ font-family: var(--ow-font-sans);
315
+ font-size: 56px;
316
+ line-height: 1.05;
317
+ font-weight: 500;
318
+ letter-spacing: -0.035em;
319
+ }
320
+
321
+ .ow-type-section-title {
322
+ font-family: var(--ow-font-sans);
323
+ font-size: 44px;
324
+ line-height: 1.1;
325
+ font-weight: 500;
326
+ letter-spacing: -0.03em;
327
+ }
328
+
329
+ .ow-type-heading {
330
+ font-family: var(--ow-font-sans);
331
+ font-size: 24px;
332
+ line-height: 1.25;
333
+ font-weight: 600;
334
+ letter-spacing: -0.02em;
335
+ }
336
+
337
+ .ow-type-lead {
338
+ font-family: var(--ow-font-sans);
339
+ font-size: 17px;
340
+ line-height: 1.6;
341
+ font-weight: 400;
342
+ }
343
+
344
+ .ow-type-prose {
345
+ font-family: var(--ow-font-sans);
346
+ font-size: 16.5px;
347
+ line-height: 1.7;
348
+ font-weight: 400;
349
+ }
350
+
351
+ .ow-type-dialog-title {
352
+ font-family: var(--ow-font-sans);
353
+ font-size: 16px;
354
+ line-height: 1.3;
355
+ font-weight: 760;
356
+ }
357
+
358
+ .ow-type-card-title {
359
+ font-family: var(--ow-font-sans);
360
+ font-size: 15px;
361
+ line-height: 1.3;
362
+ font-weight: 600;
363
+ }
364
+
365
+ .ow-type-body {
366
+ font-family: var(--ow-font-sans);
367
+ font-size: 14px;
368
+ line-height: 1.45;
369
+ font-weight: 400;
370
+ }
371
+
372
+ .ow-type-copy {
373
+ font-family: var(--ow-font-sans);
374
+ font-size: 14px;
375
+ line-height: 1.55;
376
+ font-weight: 400;
377
+ }
378
+
379
+ .ow-type-label {
380
+ font-family: var(--ow-font-sans);
381
+ font-size: 14px;
382
+ line-height: 1.4;
383
+ font-weight: 600;
384
+ }
385
+
386
+ .ow-type-button {
387
+ font-family: var(--ow-font-sans);
388
+ font-size: 14px;
389
+ line-height: 1.1;
390
+ font-weight: 730;
391
+ }
392
+
393
+ .ow-type-caption {
394
+ font-family: var(--ow-font-sans);
395
+ font-size: 12px;
396
+ line-height: 1.35;
397
+ font-weight: 400;
398
+ }
399
+
400
+ .ow-type-badge {
401
+ font-family: var(--ow-font-sans);
402
+ font-size: 12px;
403
+ line-height: 1;
404
+ font-weight: 750;
405
+ }
406
+
407
+ .ow-type-overline {
408
+ font-family: var(--ow-font-sans);
409
+ font-size: 11px;
410
+ line-height: 1.35;
411
+ font-weight: 600;
412
+ letter-spacing: 0.025em;
413
+ }
414
+
415
+ .ow-type-code {
416
+ font-family: var(--ow-font-mono);
417
+ font-size: 14px;
418
+ line-height: 1.5;
419
+ font-weight: 400;
420
+ }
421
+
422
+ .ow-type-kbd {
423
+ font-family: var(--ow-font-mono);
424
+ font-size: 12px;
425
+ line-height: 1;
426
+ font-weight: 500;
427
+ }