@moduix/react 2.0.0 → 2.1.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.
- package/README.md +100 -172
- package/dist/components/accordion/Accordion.css +4 -4
- package/dist/components/alert/Alert.css +5 -5
- package/dist/components/angle-slider/AngleSlider.css +9 -9
- package/dist/components/badge/Badge.css +11 -10
- package/dist/components/breadcrumbs/Breadcrumbs.css +8 -7
- package/dist/components/button/Button.css +24 -24
- package/dist/components/card/Card.css +1 -1
- package/dist/components/carousel/Carousel.css +17 -17
- package/dist/components/checkbox/Checkbox.css +13 -13
- package/dist/components/clipboard/Clipboard.css +10 -10
- package/dist/components/close-button/CloseButton.css +7 -7
- package/dist/components/collapsible/Collapsible.css +4 -4
- package/dist/components/color-picker/ColorPicker.css +31 -24
- package/dist/components/combobox/Combobox.css +36 -49
- package/dist/components/command-palette/CommandPalette.css +29 -28
- package/dist/components/date-input/DateInput.css +5 -4
- package/dist/components/date-picker/DatePicker.css +40 -47
- package/dist/components/dialog/Dialog.css +5 -4
- package/dist/components/drawer/Drawer.css +6 -5
- package/dist/components/editable/Editable.css +12 -10
- package/dist/components/empty/Empty.css +2 -2
- package/dist/components/field/Field.css +6 -4
- package/dist/components/file-upload/FileUpload.css +22 -22
- package/dist/components/floating-panel/FloatingPanel.css +30 -30
- package/dist/components/floating-panel/FloatingPanel.d.ts +1 -1
- package/dist/components/highlight/Highlight.css +1 -1
- package/dist/components/hover-card/HoverCard.css +5 -5
- package/dist/components/image-cropper/ImageCropper.css +15 -11
- package/dist/components/input/Input.css +9 -9
- package/dist/components/input-group/InputGroup.css +29 -29
- package/dist/components/kbd/Kbd.css +2 -2
- package/dist/components/lightbox/Lightbox.css +7 -7
- package/dist/components/listbox/Listbox.css +34 -32
- package/dist/components/menu/Menu.css +40 -37
- package/dist/components/native-select/NativeSelect.css +17 -12
- package/dist/components/number-input/NumberInput.css +17 -18
- package/dist/components/pagination/Pagination.css +11 -11
- package/dist/components/password-input/PasswordInput.css +4 -4
- package/dist/components/pin-input/PinInput.css +6 -6
- package/dist/components/popover/Popover.css +9 -8
- package/dist/components/progress-circular/ProgressCircular.css +2 -2
- package/dist/components/progress-linear/ProgressLinear.css +1 -1
- package/dist/components/qr-code/QrCode.css +7 -7
- package/dist/components/radio-group/RadioGroup.css +12 -12
- package/dist/components/rating-group/RatingGroup.css +7 -7
- package/dist/components/scroll-area/ScrollArea.css +5 -5
- package/dist/components/segment-group/SegmentGroup.css +4 -4
- package/dist/components/select/Select.css +59 -42
- package/dist/components/select/Select.js +1 -1
- package/dist/components/separator/Separator.css +6 -6
- package/dist/components/sidebar/Sidebar.css +33 -32
- package/dist/components/signature-pad/SignaturePad.css +7 -6
- package/dist/components/skeleton/Skeleton.css +1 -1
- package/dist/components/slider/Slider.css +13 -11
- package/dist/components/spinner/Spinner.css +5 -5
- package/dist/components/split-button/SplitButton.css +10 -10
- package/dist/components/splitter/Splitter.css +6 -6
- package/dist/components/steps/Steps.css +20 -19
- package/dist/components/switch/Switch.css +15 -15
- package/dist/components/tabs/Tabs.css +19 -19
- package/dist/components/tag/Tag.css +14 -14
- package/dist/components/tags-input/TagsInput.css +17 -16
- package/dist/components/textarea/Textarea.css +4 -3
- package/dist/components/timer/Timer.css +7 -7
- package/dist/components/toast/Toast.css +16 -15
- package/dist/components/toggle/Toggle.css +20 -20
- package/dist/components/tooltip/Tooltip.css +9 -8
- package/dist/components/tour/Tour.css +17 -17
- package/dist/components/tree-view/TreeView.css +23 -20
- package/dist/components/typeset/Typeset.css +317 -0
- package/dist/components/typeset/Typeset.d.ts +7 -0
- package/dist/components/typeset/Typeset.js +33 -0
- package/dist/components/typeset/Typeset.module.js +8 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -1
- package/dist/lib/moduix/presets/contrast.css +65 -0
- package/dist/lib/moduix/presets/dense.css +78 -0
- package/dist/lib/moduix/presets/soft.css +77 -0
- package/dist/lib/moduix/styles/reset.css +33 -0
- package/dist/lib/moduix/styles/style.css +17 -4
- package/dist/presets/contrast.d.ts +1 -0
- package/dist/presets/contrast.js +1 -0
- package/dist/presets/dense.d.ts +1 -0
- package/dist/presets/dense.js +1 -0
- package/dist/presets/soft.d.ts +1 -0
- package/dist/presets/soft.js +1 -0
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -1,124 +1,45 @@
|
|
|
1
1
|

|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/@moduix/react)
|
|
4
|
+
[](./LICENSE.md)
|
|
4
5
|
[](https://www.typescriptlang.org/)
|
|
5
|
-
[](https://turbo.build/)
|
|
6
6
|
|
|
7
|
-
# moduix
|
|
7
|
+
# @moduix/react
|
|
8
8
|
|
|
9
|
-
React
|
|
10
|
-
[Ark UI](https://ark-ui.com/)
|
|
9
|
+
Polished React components for product interfaces, built on
|
|
10
|
+
[Ark UI](https://ark-ui.com/) and styled with native CSS.
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
The package combines Ark's accessible interaction model with shadcn-inspired clarity: calm defaults,
|
|
13
|
+
explicit named parts, consistent states, and a token-first theme contract. No styling framework is
|
|
14
|
+
required.
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
[Documentation](https://moduix.dev/) ·
|
|
17
|
+
[Quick start](https://moduix.dev/docs/quick-start) ·
|
|
18
|
+
[Components](https://moduix.dev/docs/components) ·
|
|
19
|
+
[Tokens](https://moduix.dev/docs/tokens)
|
|
17
20
|
|
|
18
|
-
|
|
19
|
-
runtime surface, and CSS that can be owned by the application. The library is public and actively
|
|
20
|
-
developed around Ark UI primitives, shadcn-compatible source delivery, and practical defaults for
|
|
21
|
-
teams that need consistent interfaces.
|
|
21
|
+
## Highlights
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
- Ark-aligned composition, controlled and uncontrolled state, context, callbacks, and form behavior.
|
|
24
|
+
- Consistent `36px` primary controls and `32px` popup rows through shared size tokens.
|
|
25
|
+
- Native CSS, CSS Modules, cascade layers, semantic tokens, and component-level variables.
|
|
26
|
+
- Stable moduix `data-slot` hooks alongside Ark part and state attributes.
|
|
27
|
+
- Optional reset and curated `dense`, `soft`, and `contrast` presets.
|
|
28
|
+
- React 18 and 19 support.
|
|
29
|
+
- A matching hosted shadcn registry when source ownership is the better workflow.
|
|
24
30
|
|
|
25
|
-
|
|
26
|
-
reimplementing low-level interaction behavior.
|
|
27
|
-
- **Small dependency surface.** Ark UI is the only external UI primitive layer. The package
|
|
28
|
-
keeps the runtime stack intentionally small and does not bring a styling framework with it.
|
|
29
|
-
- **Two installation paths.** Use moduix as an npm package, or copy component source into your
|
|
30
|
-
project when direct ownership is more important than package-managed updates.
|
|
31
|
-
- **Composable API.** Components are exposed as named parts, so complex UI can be assembled
|
|
32
|
-
without hiding important structure.
|
|
33
|
-
- **Native CSS.** Styles are distributed as CSS, use CSS custom properties, and are designed to
|
|
34
|
-
work with your existing styling approach.
|
|
35
|
-
- **shadcn-compatible source delivery.** shadcn/ui remains a major inspiration for readable
|
|
36
|
-
component composition. moduix keeps that ownership model available through its registry.
|
|
31
|
+
## Install
|
|
37
32
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
moduix supports two installation paths:
|
|
41
|
-
|
|
42
|
-
- Install the library as a regular npm package when you want package-managed updates.
|
|
43
|
-
- Install component source into your own project with `shadcn` when you want direct ownership.
|
|
44
|
-
|
|
45
|
-
| Choose this path | When it fits best |
|
|
46
|
-
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
|
|
47
|
-
| npm package | You want the fastest setup, package-managed updates, imports from `@moduix/react`, and styles from `@moduix/react/style.css`. |
|
|
48
|
-
| `shadcn` copy-owned install | You want generated source files inside your app, direct local customization, and imports from `@/components/moduix/*`. |
|
|
49
|
-
|
|
50
|
-
### npm package
|
|
33
|
+
Install the package and its Ark UI peer dependency:
|
|
51
34
|
|
|
52
35
|
```bash
|
|
53
36
|
npm install @moduix/react @ark-ui/react
|
|
54
37
|
```
|
|
55
38
|
|
|
56
|
-
`react`, `react-dom`, and `@ark-ui/react` are peer dependencies
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
### shadcn copy-owned install
|
|
60
|
-
|
|
61
|
-
`shadcn` can install selected moduix components from the hosted registry directly into your
|
|
62
|
-
project. The files become part of your codebase instead of staying in `node_modules`.
|
|
63
|
-
|
|
64
|
-
Make sure your project resolves the `@/*` alias to `src/*` in both `tsconfig.json` and
|
|
65
|
-
`tsconfig.app.json`, and mirror it in your bundler config.
|
|
66
|
-
|
|
67
|
-
Create `components.json` in the project root when your app does not already have one:
|
|
68
|
-
|
|
69
|
-
```json
|
|
70
|
-
{
|
|
71
|
-
"$schema": "https://ui.shadcn.com/schema.json",
|
|
72
|
-
"style": "new-york",
|
|
73
|
-
"rsc": false,
|
|
74
|
-
"tsx": true,
|
|
75
|
-
"tailwind": {
|
|
76
|
-
"config": "",
|
|
77
|
-
"css": "src/index.css",
|
|
78
|
-
"baseColor": "neutral",
|
|
79
|
-
"cssVariables": true,
|
|
80
|
-
"prefix": ""
|
|
81
|
-
},
|
|
82
|
-
"iconLibrary": "lucide",
|
|
83
|
-
"rtl": false,
|
|
84
|
-
"aliases": {
|
|
85
|
-
"components": "@/components",
|
|
86
|
-
"utils": "@/lib/utils",
|
|
87
|
-
"ui": "@/components/ui",
|
|
88
|
-
"lib": "@/lib",
|
|
89
|
-
"hooks": "@/hooks"
|
|
90
|
-
},
|
|
91
|
-
"registries": {
|
|
92
|
-
"@moduix-react": "https://moduix.dev/r/react/{name}.json"
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
npx shadcn@latest add @moduix-react/button
|
|
99
|
-
npx shadcn@latest add @moduix-react/accordion
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
The registry install also pulls in the shared moduix foundation files those components need, such as
|
|
103
|
-
styles, icons, and small utilities.
|
|
104
|
-
|
|
105
|
-
Import the generated foundation stylesheet once in your application entry point:
|
|
106
|
-
|
|
107
|
-
```tsx
|
|
108
|
-
import '@/lib/moduix/styles/style.css';
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
If you want the optional reset in the copy-owned path, import it explicitly before the main
|
|
112
|
-
stylesheet:
|
|
113
|
-
|
|
114
|
-
```tsx
|
|
115
|
-
import '@/lib/moduix/styles/reset.css';
|
|
116
|
-
import '@/lib/moduix/styles/style.css';
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
With the aliases above, generated files land in `src/components/moduix/*` and `src/lib/moduix/*`.
|
|
39
|
+
`react`, `react-dom`, and `@ark-ui/react` are peer dependencies, so the package does not ship
|
|
40
|
+
duplicate framework or primitive runtimes.
|
|
120
41
|
|
|
121
|
-
##
|
|
42
|
+
## Add Styles
|
|
122
43
|
|
|
123
44
|
Import the required foundation stylesheet once in your application entry point:
|
|
124
45
|
|
|
@@ -126,17 +47,19 @@ Import the required foundation stylesheet once in your application entry point:
|
|
|
126
47
|
import '@moduix/react/style.css';
|
|
127
48
|
```
|
|
128
49
|
|
|
129
|
-
This
|
|
130
|
-
CSS
|
|
50
|
+
This entrypoint provides shared design tokens and base styles. Component imports bring along their
|
|
51
|
+
own CSS.
|
|
131
52
|
|
|
132
|
-
|
|
53
|
+
The reset is optional and intentionally separate:
|
|
133
54
|
|
|
134
55
|
```tsx
|
|
135
56
|
import '@moduix/react/reset.css';
|
|
136
57
|
import '@moduix/react/style.css';
|
|
137
58
|
```
|
|
138
59
|
|
|
139
|
-
|
|
60
|
+
## Use Components
|
|
61
|
+
|
|
62
|
+
Import public components from the package barrel and compose their named parts:
|
|
140
63
|
|
|
141
64
|
```tsx
|
|
142
65
|
import { Button, Dialog } from '@moduix/react';
|
|
@@ -145,12 +68,20 @@ export function Example() {
|
|
|
145
68
|
return (
|
|
146
69
|
<Dialog.Root>
|
|
147
70
|
<Dialog.Trigger asChild>
|
|
148
|
-
<Button>Open
|
|
71
|
+
<Button>Open settings</Button>
|
|
149
72
|
</Dialog.Trigger>
|
|
150
73
|
<Dialog.Backdrop />
|
|
151
74
|
<Dialog.Positioner>
|
|
152
75
|
<Dialog.Content>
|
|
153
|
-
<Dialog.
|
|
76
|
+
<Dialog.Header>
|
|
77
|
+
<Dialog.Title>Project settings</Dialog.Title>
|
|
78
|
+
<Dialog.Description>Update how this workspace behaves.</Dialog.Description>
|
|
79
|
+
</Dialog.Header>
|
|
80
|
+
<Dialog.Footer>
|
|
81
|
+
<Dialog.CloseTrigger asChild>
|
|
82
|
+
<Button variant="outline">Done</Button>
|
|
83
|
+
</Dialog.CloseTrigger>
|
|
84
|
+
</Dialog.Footer>
|
|
154
85
|
</Dialog.Content>
|
|
155
86
|
</Dialog.Positioner>
|
|
156
87
|
</Dialog.Root>
|
|
@@ -158,95 +89,92 @@ export function Example() {
|
|
|
158
89
|
}
|
|
159
90
|
```
|
|
160
91
|
|
|
161
|
-
|
|
162
|
-
|
|
92
|
+
moduix keeps important Ark anatomy visible. Higher-level convenience parts are documented as the
|
|
93
|
+
recommended path where they exist, while low-level composition remains available for advanced
|
|
94
|
+
cases.
|
|
163
95
|
|
|
164
|
-
##
|
|
96
|
+
## Theme the System
|
|
165
97
|
|
|
166
|
-
|
|
167
|
-
|
|
98
|
+
Theme values are CSS custom properties. Change broad semantic decisions first and use component
|
|
99
|
+
aliases for deliberate exceptions:
|
|
168
100
|
|
|
169
101
|
```css
|
|
170
102
|
:root {
|
|
171
|
-
--
|
|
172
|
-
--
|
|
103
|
+
--primary: oklch(0.52 0.18 145);
|
|
104
|
+
--radius: 0.75rem;
|
|
105
|
+
--size-md: 36px;
|
|
106
|
+
--size-sm: 32px;
|
|
173
107
|
}
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
Library CSS is organized with cascade layers:
|
|
177
108
|
|
|
178
|
-
|
|
179
|
-
|
|
109
|
+
.compact-toolbar {
|
|
110
|
+
--button-size-md: 32px;
|
|
111
|
+
}
|
|
180
112
|
```
|
|
181
113
|
|
|
182
|
-
|
|
183
|
-
classes, or component-level variables.
|
|
114
|
+
The token hierarchy is:
|
|
184
115
|
|
|
185
|
-
|
|
116
|
+
1. theme primitives such as `--primary`, `--spacing-2`, `--size-md`, and `--radius`;
|
|
117
|
+
2. semantic aliases such as `--color-primary`, `--spacing-md`, and `--radius-md`;
|
|
118
|
+
3. shared family defaults such as `--popup-item-min-height` and `--focus-ring-width`;
|
|
119
|
+
4. component aliases such as `--input-height` and `--select-item-min-height`.
|
|
186
120
|
|
|
187
|
-
|
|
188
|
-
Button, Checkbox, Combobox, Dialog, Drawer, Field, FileUpload, Menu, NumberInput, Popover,
|
|
189
|
-
QrCode, Select, Tabs, Toast, Tooltip, TreeView, and supporting layout and display primitives.
|
|
121
|
+
Library styles use predictable cascade layers:
|
|
190
122
|
|
|
191
|
-
|
|
123
|
+
```css
|
|
124
|
+
@layer ui.reset, ui.tokens, ui.base, ui.components;
|
|
125
|
+
```
|
|
192
126
|
|
|
193
|
-
-
|
|
194
|
-
|
|
195
|
-
- React package README: `packages/react/README.md`
|
|
196
|
-
- Docs app README: `apps/docs/README.md`
|
|
127
|
+
Components also expose `className`, `data-slot`, and the Ark `data-scope`, `data-part`, and
|
|
128
|
+
state attributes supported by their primitives.
|
|
197
129
|
|
|
198
|
-
##
|
|
130
|
+
## Optional Presets
|
|
199
131
|
|
|
200
|
-
|
|
132
|
+
Import one preset after `style.css` and activate it on the document root:
|
|
201
133
|
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
npm run dev
|
|
134
|
+
```tsx
|
|
135
|
+
import '@moduix/react/style.css';
|
|
136
|
+
import '@moduix/react/presets/soft.css';
|
|
206
137
|
```
|
|
207
138
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
- [Ark UI](https://ark-ui.com/) for the composition and accessibility primitives now shaping the library contract.
|
|
213
|
-
- [shadcn/ui](https://ui.shadcn.com/) for the API inspiration and the culture of practical,
|
|
214
|
-
readable component composition.
|
|
215
|
-
- [Tailwind CSS](https://tailwindcss.com/) for the reset.css implementation.
|
|
216
|
-
- [Fumadocs](https://fumadocs.dev/) for the documentation foundation.
|
|
217
|
-
- [TanStack](https://tanstack.com/) for the application tooling used by the docs.
|
|
218
|
-
- [Voidzero](https://voidzero.dev/) for the JavaScript tooling used by the workspace.
|
|
139
|
+
```html
|
|
140
|
+
<html data-moduix-theme="soft"></html>
|
|
141
|
+
```
|
|
219
142
|
|
|
220
|
-
|
|
143
|
+
Available presets are `dense`, `soft`, and `contrast`. See
|
|
144
|
+
[Themes](https://moduix.dev/docs/themes) before combining presets or creating a reusable custom
|
|
145
|
+
theme.
|
|
221
146
|
|
|
222
|
-
|
|
223
|
-
improvements, and focused component improvements.
|
|
147
|
+
## Prefer to Own the Source?
|
|
224
148
|
|
|
225
|
-
|
|
149
|
+
The moduix registry uses the shadcn distribution format while preserving the same Ark-aligned
|
|
150
|
+
component contracts:
|
|
226
151
|
|
|
227
|
-
|
|
152
|
+
```bash
|
|
153
|
+
npx shadcn@latest init
|
|
154
|
+
npx shadcn@latest registry add '@moduix-react=https://moduix.dev/r/react/{name}.json'
|
|
155
|
+
npx shadcn@latest add @moduix-react/button @moduix-react/dialog
|
|
156
|
+
```
|
|
228
157
|
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
158
|
+
Generated files are installed under `@/components/moduix/*` and `@/lib/moduix/*`. Read the
|
|
159
|
+
[complete Quick Start](https://moduix.dev/docs/quick-start) for alias setup, registry inspection,
|
|
160
|
+
dry runs, and generated stylesheet imports.
|
|
232
161
|
|
|
233
|
-
|
|
162
|
+
## Acknowledgements
|
|
234
163
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
164
|
+
- [Ark UI](https://ark-ui.com/) provides the primitive behavior and composition model.
|
|
165
|
+
- [Chakra UI](https://chakra-ui.com/) informs Ark-aligned ergonomics and design-system craft.
|
|
166
|
+
- [shadcn/ui](https://ui.shadcn.com/) inspires open-code delivery, beautiful defaults, and practical
|
|
167
|
+
documentation.
|
|
168
|
+
- [UnoCSS](https://unocss.dev/) and [Tailwind CSS](https://tailwindcss.com/) provide foundations
|
|
169
|
+
adapted by the optional reset.
|
|
238
170
|
|
|
239
|
-
|
|
171
|
+
## Links
|
|
240
172
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
```
|
|
173
|
+
- [Documentation](https://moduix.dev/)
|
|
174
|
+
- [npm package](https://www.npmjs.com/package/@moduix/react)
|
|
175
|
+
- [Source repository](https://github.com/Blinks44/moduix)
|
|
176
|
+
- [Issues](https://github.com/Blinks44/moduix/issues)
|
|
246
177
|
|
|
247
|
-
|
|
248
|
-
local component notes, public docs, and registry output so the package and docs stay in sync.
|
|
178
|
+
## License
|
|
249
179
|
|
|
250
|
-
|
|
251
|
-
agent-assisted changes should still preserve the library's direct Ark-first component contracts,
|
|
252
|
-
small APIs, and readable implementation style.
|
|
180
|
+
[MIT](./LICENSE.md)
|
|
@@ -113,8 +113,8 @@
|
|
|
113
113
|
|
|
114
114
|
&:focus-visible {
|
|
115
115
|
z-index: 1;
|
|
116
|
-
outline: var(--accordion-focus-ring-width, var(--border-width-md))
|
|
117
|
-
var(--accordion-focus-ring-color, var(--color-ring));
|
|
116
|
+
outline: var(--accordion-focus-ring-width, var(--focus-ring-width, var(--border-width-md)))
|
|
117
|
+
solid var(--accordion-focus-ring-color, var(--color-ring));
|
|
118
118
|
outline-offset: calc(var(--accordion-focus-ring-offset, var(--border-width-sm)) * -1);
|
|
119
119
|
position: relative;
|
|
120
120
|
}
|
|
@@ -134,8 +134,8 @@
|
|
|
134
134
|
|
|
135
135
|
.tIMeYW_itemIndicator {
|
|
136
136
|
box-sizing: border-box;
|
|
137
|
-
width: var(--accordion-icon-size,
|
|
138
|
-
height: var(--accordion-icon-size,
|
|
137
|
+
width: var(--accordion-icon-size, var(--spacing-3));
|
|
138
|
+
height: var(--accordion-icon-size, var(--spacing-3));
|
|
139
139
|
transition: transform var(--accordion-icon-transition, var(--transition-default));
|
|
140
140
|
flex-shrink: 0;
|
|
141
141
|
justify-content: center;
|
|
@@ -65,17 +65,17 @@
|
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
.ZXk2dW_indicator {
|
|
68
|
-
width: var(--alert-indicator-size,
|
|
69
|
-
height: var(--alert-indicator-size,
|
|
68
|
+
width: var(--alert-indicator-size, var(--spacing-4));
|
|
69
|
+
height: var(--alert-indicator-size, var(--spacing-4));
|
|
70
70
|
color: var(--alert-indicator-color, var(--alert-indicator-color-default, currentColor));
|
|
71
71
|
justify-content: center;
|
|
72
72
|
align-items: center;
|
|
73
|
-
margin-block-start: var(--alert-indicator-offset,
|
|
73
|
+
margin-block-start: var(--alert-indicator-offset, var(--spacing-0-5));
|
|
74
74
|
display: inline-flex;
|
|
75
75
|
|
|
76
76
|
& :where(svg) {
|
|
77
|
-
width: var(--alert-indicator-size,
|
|
78
|
-
height: var(--alert-indicator-size,
|
|
77
|
+
width: var(--alert-indicator-size, var(--spacing-4));
|
|
78
|
+
height: var(--alert-indicator-size, var(--spacing-4));
|
|
79
79
|
pointer-events: none;
|
|
80
80
|
flex-shrink: 0;
|
|
81
81
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
.vn7zXa_root {
|
|
3
3
|
box-sizing: border-box;
|
|
4
4
|
align-items: center;
|
|
5
|
-
gap: var(--angle-slider-gap,
|
|
5
|
+
gap: var(--angle-slider-gap, var(--spacing-3));
|
|
6
6
|
min-width: 0;
|
|
7
7
|
color: var(--angle-slider-color, var(--color-foreground));
|
|
8
8
|
flex-direction: column;
|
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
|
|
55
55
|
&:before {
|
|
56
56
|
z-index: 1;
|
|
57
|
-
width: var(--angle-slider-center-dot-size,
|
|
58
|
-
height: var(--angle-slider-center-dot-size,
|
|
57
|
+
width: var(--angle-slider-center-dot-size, var(--spacing-1-5));
|
|
58
|
+
height: var(--angle-slider-center-dot-size, var(--spacing-1-5));
|
|
59
59
|
border-radius: inherit;
|
|
60
60
|
background: var(--angle-slider-center-dot-color, var(--angle-slider-color, var(--color-foreground)));
|
|
61
61
|
content: "";
|
|
@@ -92,8 +92,8 @@
|
|
|
92
92
|
&:before {
|
|
93
93
|
top: var(--angle-slider-ring-thickness, .875rem);
|
|
94
94
|
box-sizing: border-box;
|
|
95
|
-
width: var(--angle-slider-thumb-size,
|
|
96
|
-
height: var(--angle-slider-thumb-size,
|
|
95
|
+
width: var(--angle-slider-thumb-size, var(--spacing-4));
|
|
96
|
+
height: var(--angle-slider-thumb-size, var(--spacing-4));
|
|
97
97
|
border: var(--angle-slider-thumb-border-width, var(--border-width-sm)) solid
|
|
98
98
|
var(--angle-slider-thumb-border-color, var(--color-border));
|
|
99
99
|
border-radius: var(--angle-slider-thumb-radius, var(--radius-full));
|
|
@@ -110,11 +110,11 @@
|
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
&:after {
|
|
113
|
-
top: calc(var(--angle-slider-ring-thickness, .875rem) +
|
|
114
|
-
|
|
113
|
+
top: calc(var(--angle-slider-ring-thickness, .875rem) +
|
|
114
|
+
var(--angle-slider-thumb-size, var(--spacing-4)) + var(--spacing-1));
|
|
115
115
|
width: var(--angle-slider-thumb-line-width, .1875rem);
|
|
116
|
-
height: calc(50% - var(--angle-slider-ring-thickness, .875rem) -
|
|
117
|
-
|
|
116
|
+
height: calc(50% - var(--angle-slider-ring-thickness, .875rem) -
|
|
117
|
+
var(--angle-slider-thumb-size, var(--spacing-4)) - var(--spacing-1-5));
|
|
118
118
|
border-radius: var(--radius-full);
|
|
119
119
|
background: linear-gradient(to bottom,
|
|
120
120
|
var(--angle-slider-indicator-bg, var(--color-primary)),
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
.NXa69G_root {
|
|
3
3
|
justify-content: center;
|
|
4
4
|
align-items: center;
|
|
5
|
-
gap: var(--badge-gap,
|
|
5
|
+
gap: var(--badge-gap, var(--spacing-1-5));
|
|
6
6
|
border: var(--badge-border-width, var(--border-width-sm)) solid
|
|
7
7
|
var(--badge-border-color, transparent);
|
|
8
8
|
border-radius: var(--badge-radius, var(--radius-full));
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
min-width: 0;
|
|
11
11
|
max-width: 100%;
|
|
12
12
|
padding-block: var(--badge-padding-y, 0);
|
|
13
|
-
padding-inline: var(--badge-padding-x,
|
|
13
|
+
padding-inline: var(--badge-padding-x, var(--spacing-2-5));
|
|
14
14
|
background-color: var(--badge-bg, var(--color-primary));
|
|
15
15
|
color: var(--badge-color, var(--color-primary-foreground));
|
|
16
16
|
font-size: var(--badge-font-size, var(--text-xs));
|
|
@@ -33,8 +33,9 @@
|
|
|
33
33
|
cursor: pointer;
|
|
34
34
|
|
|
35
35
|
&:focus-visible {
|
|
36
|
-
outline: var(--
|
|
37
|
-
|
|
36
|
+
outline: var(--badge-focus-ring-width, var(--focus-ring-width, var(--border-width-md)))
|
|
37
|
+
solid var(--badge-focus-ring-color, var(--color-ring));
|
|
38
|
+
outline-offset: var(--badge-focus-ring-offset, var(--focus-ring-offset));
|
|
38
39
|
}
|
|
39
40
|
|
|
40
41
|
&[data-variant="default"], &[data-variant="secondary"], &[data-variant="destructive"] {
|
|
@@ -58,8 +59,8 @@
|
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
& > svg {
|
|
61
|
-
width: var(--badge-icon-size,
|
|
62
|
-
height: var(--badge-icon-size,
|
|
62
|
+
width: var(--badge-icon-size, var(--spacing-3));
|
|
63
|
+
height: var(--badge-icon-size, var(--spacing-3));
|
|
63
64
|
pointer-events: none;
|
|
64
65
|
flex-shrink: 0;
|
|
65
66
|
}
|
|
@@ -71,7 +72,7 @@
|
|
|
71
72
|
|
|
72
73
|
&[data-variant="destructive"] {
|
|
73
74
|
background-color: var(--badge-bg, var(--color-destructive));
|
|
74
|
-
color: var(--badge-color, var(--color-
|
|
75
|
+
color: var(--badge-color, var(--color-destructive-foreground));
|
|
75
76
|
}
|
|
76
77
|
|
|
77
78
|
&[data-variant="outline"], &[data-variant="ghost"], &[data-variant="link"] {
|
|
@@ -91,7 +92,7 @@
|
|
|
91
92
|
color: var(--badge-color, var(--color-primary));
|
|
92
93
|
text-decoration: underline;
|
|
93
94
|
text-decoration-color: color-mix(in oklab, currentColor 55%, transparent);
|
|
94
|
-
text-underline-offset: .15em;
|
|
95
|
+
text-underline-offset: var(--badge-link-underline-offset, .15em);
|
|
95
96
|
border-color: #0000;
|
|
96
97
|
padding-inline: 0;
|
|
97
98
|
text-decoration-thickness: from-font;
|
|
@@ -100,8 +101,8 @@
|
|
|
100
101
|
}
|
|
101
102
|
|
|
102
103
|
.NXa69G_dot {
|
|
103
|
-
width: var(--badge-dot-size,
|
|
104
|
-
height: var(--badge-dot-size,
|
|
104
|
+
width: var(--badge-dot-size, var(--spacing-1-5));
|
|
105
|
+
height: var(--badge-dot-size, var(--spacing-1-5));
|
|
105
106
|
background-color: currentColor;
|
|
106
107
|
border-radius: 50%;
|
|
107
108
|
flex-shrink: 0;
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
.WoRWWa_link[data-scope="breadcrumbs"][data-part="link"], .WoRWWa_page[data-scope="breadcrumbs"][data-part="page"] {
|
|
33
33
|
min-width: 0;
|
|
34
34
|
max-width: 100%;
|
|
35
|
-
padding-inline: var(--breadcrumbs-item-padding-x,
|
|
35
|
+
padding-inline: var(--breadcrumbs-item-padding-x, var(--spacing-1));
|
|
36
36
|
white-space: nowrap;
|
|
37
37
|
display: block;
|
|
38
38
|
}
|
|
@@ -58,7 +58,8 @@
|
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
&:focus-visible {
|
|
61
|
-
box-shadow: 0 0 0
|
|
61
|
+
box-shadow: 0 0 0
|
|
62
|
+
var(--breadcrumbs-focus-ring-width, var(--focus-ring-inset-width, var(--border-width-sm)))
|
|
62
63
|
var(--breadcrumbs-focus-ring-color, var(--color-ring));
|
|
63
64
|
}
|
|
64
65
|
}
|
|
@@ -78,15 +79,15 @@
|
|
|
78
79
|
}
|
|
79
80
|
|
|
80
81
|
.WoRWWa_separatorIcon {
|
|
82
|
+
width: var(--breadcrumbs-separator-icon-size, 1em);
|
|
83
|
+
height: var(--breadcrumbs-separator-icon-size, 1em);
|
|
81
84
|
flex: none;
|
|
82
|
-
width: 1em;
|
|
83
|
-
height: 1em;
|
|
84
85
|
}
|
|
85
86
|
|
|
86
87
|
.WoRWWa_ellipsis[data-scope="breadcrumbs"][data-part="ellipsis"] {
|
|
87
|
-
min-width: var(--breadcrumbs-ellipsis-size,
|
|
88
|
-
min-height: var(--breadcrumbs-ellipsis-size,
|
|
89
|
-
padding-inline: var(--breadcrumbs-item-padding-x,
|
|
88
|
+
min-width: var(--breadcrumbs-ellipsis-size, var(--spacing-4));
|
|
89
|
+
min-height: var(--breadcrumbs-ellipsis-size, var(--spacing-4));
|
|
90
|
+
padding-inline: var(--breadcrumbs-item-padding-x, var(--spacing-1));
|
|
90
91
|
color: var(--breadcrumbs-ellipsis-color, var(--color-muted-foreground));
|
|
91
92
|
border-radius: var(--breadcrumbs-ellipsis-radius, var(--radius-sm));
|
|
92
93
|
justify-content: center;
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
display: inline-flex;
|
|
27
27
|
|
|
28
28
|
&:focus-visible {
|
|
29
|
-
outline: var(--button-focus-ring-width, var(--border-width-md)) solid
|
|
29
|
+
outline: var(--button-focus-ring-width, var(--focus-ring-width, var(--border-width-md))) solid
|
|
30
30
|
var(--button-focus-ring-color, var(--color-ring));
|
|
31
31
|
outline-offset: calc(var(--button-focus-ring-offset, var(--button-border-width, var(--border-width-sm))) * -1);
|
|
32
32
|
}
|
|
@@ -46,8 +46,8 @@
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
& :where(svg) {
|
|
49
|
-
width: var(--button-icon-size,
|
|
50
|
-
height: var(--button-icon-size,
|
|
49
|
+
width: var(--button-icon-size, var(--spacing-4));
|
|
50
|
+
height: var(--button-icon-size, var(--spacing-4));
|
|
51
51
|
flex-shrink: 0;
|
|
52
52
|
}
|
|
53
53
|
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
&[data-variant="destructive"] {
|
|
98
98
|
border-color: var(--button-destructive-border-color, var(--color-destructive));
|
|
99
99
|
background-color: var(--button-destructive-bg, var(--color-destructive));
|
|
100
|
-
color: var(--button-destructive-color, var(--color-
|
|
100
|
+
color: var(--button-destructive-color, var(--color-destructive-foreground));
|
|
101
101
|
|
|
102
102
|
@media (hover: hover) {
|
|
103
103
|
&:not([data-disabled]):hover {
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
@media (hover: hover) {
|
|
115
115
|
&:not([data-disabled]):hover {
|
|
116
116
|
background-color: var(--button-destructive-outline-bg-hover, var(--color-destructive));
|
|
117
|
-
color: var(--button-destructive-outline-color-hover, var(--button-destructive-color, var(--color-
|
|
117
|
+
color: var(--button-destructive-outline-color-hover, var(--button-destructive-color, var(--color-destructive-foreground)));
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
}
|
|
@@ -148,36 +148,36 @@
|
|
|
148
148
|
|
|
149
149
|
&[data-size="xs"] {
|
|
150
150
|
min-height: var(--button-size-xs, var(--size-xs));
|
|
151
|
-
padding-block: var(--button-padding-y-xs,
|
|
152
|
-
padding-inline: var(--button-padding-x-xs,
|
|
151
|
+
padding-block: var(--button-padding-y-xs, var(--spacing-0-5));
|
|
152
|
+
padding-inline: var(--button-padding-x-xs, var(--spacing-2-5));
|
|
153
153
|
font-size: var(--button-font-size-xs, var(--text-xs));
|
|
154
154
|
line-height: var(--button-line-height-xs, var(--line-height-text-xs));
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
&[data-size="sm"] {
|
|
158
158
|
min-height: var(--button-size-sm, var(--size-sm));
|
|
159
|
-
padding-block: var(--button-padding-y-sm,
|
|
160
|
-
padding-inline: var(--button-padding-x-sm,
|
|
159
|
+
padding-block: var(--button-padding-y-sm, var(--spacing-1));
|
|
160
|
+
padding-inline: var(--button-padding-x-sm, var(--spacing-3));
|
|
161
161
|
}
|
|
162
162
|
|
|
163
163
|
&[data-size="md"] {
|
|
164
|
-
min-height: var(--button-size-md, var(--size-
|
|
165
|
-
padding-block: var(--button-padding-y-md,
|
|
166
|
-
padding-inline: var(--button-padding-x-md,
|
|
164
|
+
min-height: var(--button-size-md, var(--size-md));
|
|
165
|
+
padding-block: var(--button-padding-y-md, var(--spacing-1));
|
|
166
|
+
padding-inline: var(--button-padding-x-md, var(--spacing-4));
|
|
167
167
|
}
|
|
168
168
|
|
|
169
169
|
&[data-size="lg"] {
|
|
170
|
-
min-height: var(--button-size-lg, var(--size-
|
|
171
|
-
padding-block: var(--button-padding-y-lg,
|
|
172
|
-
padding-inline: var(--button-padding-x-lg,
|
|
170
|
+
min-height: var(--button-size-lg, var(--size-lg));
|
|
171
|
+
padding-block: var(--button-padding-y-lg, var(--spacing-1-5));
|
|
172
|
+
padding-inline: var(--button-padding-x-lg, var(--spacing-5));
|
|
173
173
|
font-size: var(--button-font-size-lg, var(--text-md));
|
|
174
174
|
line-height: var(--button-line-height-lg, var(--line-height-text-md));
|
|
175
175
|
}
|
|
176
176
|
|
|
177
177
|
&[data-size="xl"] {
|
|
178
|
-
min-height: var(--button-size-xl,
|
|
179
|
-
padding-block: var(--button-padding-y-xl,
|
|
180
|
-
padding-inline: var(--button-padding-x-xl,
|
|
178
|
+
min-height: var(--button-size-xl, var(--size-xl));
|
|
179
|
+
padding-block: var(--button-padding-y-xl, var(--spacing-2));
|
|
180
|
+
padding-inline: var(--button-padding-x-xl, var(--spacing-6));
|
|
181
181
|
font-size: var(--button-font-size-xl, var(--text-lg));
|
|
182
182
|
line-height: var(--button-line-height-xl, var(--line-height-text-lg));
|
|
183
183
|
}
|
|
@@ -194,15 +194,15 @@
|
|
|
194
194
|
}
|
|
195
195
|
|
|
196
196
|
&[data-size="icon-md"] {
|
|
197
|
-
width: var(--button-size-icon-md, var(--size-
|
|
198
|
-
min-width: var(--button-size-icon-md, var(--size-
|
|
199
|
-
height: var(--button-size-icon-md, var(--size-
|
|
197
|
+
width: var(--button-size-icon-md, var(--size-md));
|
|
198
|
+
min-width: var(--button-size-icon-md, var(--size-md));
|
|
199
|
+
height: var(--button-size-icon-md, var(--size-md));
|
|
200
200
|
}
|
|
201
201
|
|
|
202
202
|
&[data-size="icon-lg"] {
|
|
203
|
-
width: var(--button-size-icon-lg, var(--size-
|
|
204
|
-
min-width: var(--button-size-icon-lg, var(--size-
|
|
205
|
-
height: var(--button-size-icon-lg, var(--size-
|
|
203
|
+
width: var(--button-size-icon-lg, var(--size-lg));
|
|
204
|
+
min-width: var(--button-size-icon-lg, var(--size-lg));
|
|
205
|
+
height: var(--button-size-icon-lg, var(--size-lg));
|
|
206
206
|
}
|
|
207
207
|
|
|
208
208
|
&[data-variant="link"] {
|