@moduix/react 2.0.0 → 2.2.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 (108) hide show
  1. package/README.md +100 -173
  2. package/dist/components/accordion/Accordion.css +47 -47
  3. package/dist/components/alert/Alert.css +62 -46
  4. package/dist/components/angle-slider/AngleSlider.css +65 -64
  5. package/dist/components/aspect-ratio/AspectRatio.css +2 -2
  6. package/dist/components/avatar/Avatar.css +26 -26
  7. package/dist/components/badge/Badge.css +34 -33
  8. package/dist/components/bleed/Bleed.css +13 -13
  9. package/dist/components/breadcrumbs/Breadcrumbs.css +29 -28
  10. package/dist/components/button/Button.css +81 -78
  11. package/dist/components/card/Card.css +46 -46
  12. package/dist/components/carousel/Carousel.css +57 -57
  13. package/dist/components/checkbox/Checkbox.css +40 -40
  14. package/dist/components/clipboard/Clipboard.css +68 -59
  15. package/dist/components/close-button/CloseButton.css +17 -17
  16. package/dist/components/collapsible/Collapsible.css +40 -38
  17. package/dist/components/color-picker/ColorPicker.css +162 -151
  18. package/dist/components/combobox/Combobox.css +120 -130
  19. package/dist/components/command-palette/CommandPalette.css +173 -177
  20. package/dist/components/command-palette/CommandPalette.module.js +0 -1
  21. package/dist/components/container/Container.css +12 -12
  22. package/dist/components/date-input/DateInput.css +41 -39
  23. package/dist/components/date-picker/DatePicker.css +181 -186
  24. package/dist/components/dialog/Dialog.css +84 -78
  25. package/dist/components/drawer/Drawer.css +126 -107
  26. package/dist/components/editable/Editable.css +64 -60
  27. package/dist/components/empty/Empty.css +25 -25
  28. package/dist/components/field/Field.css +46 -44
  29. package/dist/components/fieldset/Fieldset.css +22 -22
  30. package/dist/components/file-upload/FileUpload.css +128 -125
  31. package/dist/components/floating-panel/FloatingPanel.css +114 -110
  32. package/dist/components/floating-panel/FloatingPanel.d.ts +1 -1
  33. package/dist/components/heading/Heading.css +26 -26
  34. package/dist/components/highlight/Highlight.css +8 -8
  35. package/dist/components/hover-card/HoverCard.css +49 -47
  36. package/dist/components/image/Image.css +2 -2
  37. package/dist/components/image-cropper/ImageCropper.css +63 -56
  38. package/dist/components/input/Input.css +47 -46
  39. package/dist/components/input-group/InputGroup.css +71 -70
  40. package/dist/components/kbd/Kbd.css +16 -16
  41. package/dist/components/lightbox/Lightbox.css +80 -77
  42. package/dist/components/list/List.css +32 -32
  43. package/dist/components/listbox/Listbox.css +121 -116
  44. package/dist/components/marquee/Marquee.css +16 -16
  45. package/dist/components/menu/Menu.css +122 -118
  46. package/dist/components/native-select/NativeSelect.css +48 -42
  47. package/dist/components/number-input/NumberInput.css +62 -60
  48. package/dist/components/pagination/Pagination.css +35 -34
  49. package/dist/components/password-input/PasswordInput.css +60 -59
  50. package/dist/components/pin-input/PinInput.css +35 -35
  51. package/dist/components/popover/Popover.css +81 -76
  52. package/dist/components/progress-circular/ProgressCircular.css +20 -20
  53. package/dist/components/progress-linear/ProgressLinear.css +29 -28
  54. package/dist/components/qr-code/QrCode.css +39 -35
  55. package/dist/components/radio-group/RadioGroup.css +48 -48
  56. package/dist/components/rating-group/RatingGroup.css +30 -30
  57. package/dist/components/scroll-area/ScrollArea.css +34 -34
  58. package/dist/components/segment-group/SegmentGroup.css +37 -37
  59. package/dist/components/select/Select.css +137 -128
  60. package/dist/components/select/Select.d.ts +0 -5
  61. package/dist/components/select/Select.js +1 -9
  62. package/dist/components/select/Select.module.js +0 -1
  63. package/dist/components/separator/Separator.css +13 -13
  64. package/dist/components/sidebar/Sidebar.css +143 -142
  65. package/dist/components/signature-pad/SignaturePad.css +51 -50
  66. package/dist/components/skeleton/Skeleton.css +7 -5
  67. package/dist/components/slider/Slider.css +61 -59
  68. package/dist/components/spinner/Spinner.css +12 -12
  69. package/dist/components/split-button/SplitButton.css +12 -12
  70. package/dist/components/splitter/Splitter.css +63 -62
  71. package/dist/components/splitter/Splitter.js +2 -2
  72. package/dist/components/stack/Stack.css +4 -4
  73. package/dist/components/stack/Stack.js +3 -3
  74. package/dist/components/steps/Steps.css +89 -88
  75. package/dist/components/swap/Swap.css +7 -7
  76. package/dist/components/switch/Switch.css +59 -57
  77. package/dist/components/table/Table.css +58 -56
  78. package/dist/components/tabs/Tabs.css +64 -62
  79. package/dist/components/tag/Tag.css +45 -45
  80. package/dist/components/tags-input/TagsInput.css +93 -86
  81. package/dist/components/text/Text.css +23 -23
  82. package/dist/components/text/Text.js +1 -1
  83. package/dist/components/textarea/Textarea.css +27 -25
  84. package/dist/components/timer/Timer.css +38 -37
  85. package/dist/components/toast/Toast.css +94 -78
  86. package/dist/components/toggle/Toggle.css +66 -66
  87. package/dist/components/toggle-group/ToggleGroup.css +16 -16
  88. package/dist/components/tooltip/Tooltip.css +56 -52
  89. package/dist/components/tour/Tour.css +121 -117
  90. package/dist/components/tree-view/TreeView.css +91 -86
  91. package/dist/components/typeset/Typeset.css +317 -0
  92. package/dist/components/typeset/Typeset.d.ts +7 -0
  93. package/dist/components/typeset/Typeset.js +33 -0
  94. package/dist/components/typeset/Typeset.module.js +8 -0
  95. package/dist/index.d.ts +3 -1
  96. package/dist/index.js +3 -1
  97. package/dist/lib/moduix/presets/contrast.css +64 -0
  98. package/dist/lib/moduix/presets/dense.css +77 -0
  99. package/dist/lib/moduix/presets/soft.css +76 -0
  100. package/dist/lib/moduix/styles/reset.css +34 -1
  101. package/dist/lib/moduix/styles/style.css +230 -213
  102. package/dist/presets/contrast.d.ts +1 -0
  103. package/dist/presets/contrast.js +1 -0
  104. package/dist/presets/dense.d.ts +1 -0
  105. package/dist/presets/dense.js +1 -0
  106. package/dist/presets/soft.d.ts +1 -0
  107. package/dist/presets/soft.js +1 -0
  108. package/package.json +4 -1
package/README.md CHANGED
@@ -1,124 +1,45 @@
1
- ![moduix banner](https://raw.githubusercontent.com/Blinks44/moduix/main/apps/docs/public/banner.png)
1
+ ![moduix banner](https://raw.githubusercontent.com/Blinks44/moduix/main/apps/docs/docs/public/banner.png)
2
2
 
3
3
  [![npm](https://img.shields.io/npm/v/@moduix/react?logo=npm&label=npm)](https://www.npmjs.com/package/@moduix/react)
4
+ [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](./LICENSE.md)
4
5
  [![TypeScript](https://img.shields.io/badge/TypeScript-Ready-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
5
- [![Turborepo](https://img.shields.io/badge/Monorepo-Turborepo-EF4444)](https://turbo.build/)
6
6
 
7
- # moduix
7
+ # @moduix/react
8
8
 
9
- React implementation of the moduix component system for product interfaces, built on top of
10
- [Ark UI](https://ark-ui.com/) primitives.
9
+ Polished React components for product interfaces, built on
10
+ [Ark UI](https://ark-ui.com/) and styled with native CSS.
11
11
 
12
- moduix gives you ready-made components with accessible behavior, native CSS styles, and a
13
- composition-first API. It supports two production workflows: install the package for managed
14
- updates, or copy registry component source when your application needs direct ownership.
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
- ## Why It Exists
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
- moduix is built for real product screens: predictable behavior, readable composition, small
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
- ## Principles
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
- - **Ark UI underneath.** Components target Ark UI composition and accessibility primitives instead of
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
- ## Installation
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. They stay in your application
57
- bundle, so moduix does not ship duplicate React or Ark UI runtimes.
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
- ## Usage
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 stylesheet is required. It provides the shared design tokens and base styles that component
130
- CSS depends on.
50
+ This entrypoint provides shared design tokens and base styles. Component imports bring along their
51
+ own CSS.
131
52
 
132
- If you want the optional reset, import it explicitly before the main stylesheet:
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
- Then import and compose the components you need:
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 dialog</Button>
71
+ <Button>Open settings</Button>
149
72
  </Dialog.Trigger>
150
73
  <Dialog.Backdrop />
151
74
  <Dialog.Positioner>
152
75
  <Dialog.Content>
153
- <Dialog.Title>Project settings</Dialog.Title>
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,91 @@ export function Example() {
158
89
  }
159
90
  ```
160
91
 
161
- `style.css` ships the shared design tokens and base styles. Component imports still bring along only
162
- the component CSS they use.
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
- ## Styling
96
+ ## Theme the System
165
97
 
166
- Components accept `className` where customization is expected and expose stable `data-slot`
167
- attributes for targeted styling. Theme values are regular CSS custom properties:
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
- --color-primary: oklch(0.205 0 0);
172
- --button-radius: 0.5rem;
103
+ --moduix-primary: oklch(0.52 0.18 145);
104
+ --moduix-radius: 0.75rem;
105
+ --moduix-size-md: 36px;
106
+ --moduix-size-sm: 32px;
173
107
  }
174
- ```
175
108
 
176
- Library CSS is organized with cascade layers:
177
-
178
- ```css
179
- @layer ui.reset, ui.tokens, ui.base, ui.components;
109
+ .compact-toolbar {
110
+ --moduix-button-size-md: 32px;
111
+ }
180
112
  ```
181
113
 
182
- This keeps defaults predictable while still letting application styles override tokens,
183
- classes, or component-level variables.
114
+ The token hierarchy is:
184
115
 
185
- ## What Is Included
116
+ 1. theme primitives such as `--moduix-primary`, `--moduix-spacing-2`, `--moduix-size-md`, and `--moduix-radius`;
117
+ 2. semantic aliases such as `--moduix-color-primary`, `--moduix-spacing-md`, and `--moduix-radius-md`;
118
+ 3. shared family defaults such as `--moduix-popup-item-min-height` and `--moduix-focus-ring-width`;
119
+ 4. component aliases such as `--moduix-input-height` and `--moduix-select-item-min-height`.
186
120
 
187
- The package exports composed components for common product UI needs, including Accordion, Avatar,
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
- ## Documentation
123
+ ```css
124
+ @layer moduix.reset, moduix.tokens, moduix.base, moduix.components;
125
+ ```
192
126
 
193
- - Documentation: https://moduix.dev/
194
- - npm package: https://www.npmjs.com/package/@moduix/react
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
- ## Repository Quick Start
130
+ ## Optional Presets
199
131
 
200
- From the monorepo root:
132
+ Import one preset after `style.css` and activate it on the document root:
201
133
 
202
- ```bash
203
- npm install
204
- npm run build:react
205
- npm run dev
134
+ ```tsx
135
+ import '@moduix/react/style.css';
136
+ import '@moduix/react/presets/soft.css';
206
137
  ```
207
138
 
208
- ## Acknowledgements
209
-
210
- This project could not exist without the work of these teams and communities:
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
- ## Contributing
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
- Contributions are welcome, especially bug reports, accessibility fixes, documentation
223
- improvements, and focused component improvements.
147
+ ## Prefer to Own the Source?
224
148
 
225
- Before opening a pull request:
149
+ The moduix registry uses the shadcn distribution format while preserving the same Ark-aligned
150
+ component contracts. Create the ready-to-use `components.json` from the
151
+ [complete Quick Start](https://moduix.dev/docs/quick-start), then add the components you need:
226
152
 
227
- 1. Install dependencies from the repository root:
153
+ ```bash
154
+ npx shadcn@latest add @moduix-react/button @moduix-react/dialog
155
+ ```
228
156
 
229
- ```bash
230
- npm install
231
- ```
157
+ Generated files are installed under `@/components/moduix/*` and `@/lib/moduix/*`. Read the
158
+ [complete Quick Start](https://moduix.dev/docs/quick-start) for alias setup, registry inspection,
159
+ dry runs, and generated stylesheet imports.
232
160
 
233
- 2. Build the React package when your change affects `packages/react` or documentation examples:
161
+ ## Acknowledgements
234
162
 
235
- ```bash
236
- npm run build:react
237
- ```
163
+ - [Ark UI](https://ark-ui.com/) provides the primitive behavior and composition model.
164
+ - [Chakra UI](https://chakra-ui.com/) informs Ark-aligned ergonomics and design-system craft.
165
+ - [shadcn/ui](https://ui.shadcn.com/) inspires open-code delivery, beautiful defaults, and practical
166
+ documentation.
167
+ - [UnoCSS](https://unocss.dev/) and [Tailwind CSS](https://tailwindcss.com/) provide foundations
168
+ adapted by the optional reset.
238
169
 
239
- 3. Run the required checks:
170
+ ## Links
240
171
 
241
- ```bash
242
- npm run fmt:fix
243
- npm run lint:check
244
- npm run tsc:check
245
- ```
172
+ - [Documentation](https://moduix.dev/)
173
+ - [npm package](https://www.npmjs.com/package/@moduix/react)
174
+ - [Source repository](https://github.com/Blinks44/moduix)
175
+ - [Issues](https://github.com/Blinks44/moduix/issues)
246
176
 
247
- Keep pull requests small and specific. For component changes, update the related stories, exports,
248
- local component notes, public docs, and registry output so the package and docs stay in sync.
177
+ ## License
249
178
 
250
- Agent-facing repository guidance lives in `AGENTS.md` and `.agents/skills`. Generated or
251
- agent-assisted changes should still preserve the library's direct Ark-first component contracts,
252
- small APIs, and readable implementation style.
179
+ [MIT](./LICENSE.md)
@@ -1,65 +1,65 @@
1
- @layer ui.components {
1
+ @layer moduix.components {
2
2
  @keyframes tIMeYW_accordion-item-content-open {
3
3
  from {
4
4
  height: 0;
5
- opacity: var(--accordion-item-content-closed-opacity, .01);
5
+ opacity: var(--moduix-accordion-item-content-closed-opacity, .01);
6
6
  }
7
7
 
8
8
  to {
9
9
  height: var(--height);
10
- opacity: var(--accordion-item-content-open-opacity, 1);
10
+ opacity: var(--moduix-accordion-item-content-open-opacity, 1);
11
11
  }
12
12
  }
13
13
 
14
14
  @keyframes tIMeYW_accordion-item-content-closed {
15
15
  from {
16
16
  height: var(--height);
17
- opacity: var(--accordion-item-content-open-opacity, 1);
17
+ opacity: var(--moduix-accordion-item-content-open-opacity, 1);
18
18
  }
19
19
 
20
20
  to {
21
21
  height: 0;
22
- opacity: var(--accordion-item-content-closed-opacity, .01);
22
+ opacity: var(--moduix-accordion-item-content-closed-opacity, .01);
23
23
  }
24
24
  }
25
25
 
26
26
  @keyframes tIMeYW_accordion-item-content-open-horizontal {
27
27
  from {
28
28
  width: 0;
29
- opacity: var(--accordion-item-content-closed-opacity, .01);
29
+ opacity: var(--moduix-accordion-item-content-closed-opacity, .01);
30
30
  }
31
31
 
32
32
  to {
33
33
  width: var(--width);
34
- opacity: var(--accordion-item-content-open-opacity, 1);
34
+ opacity: var(--moduix-accordion-item-content-open-opacity, 1);
35
35
  }
36
36
  }
37
37
 
38
38
  @keyframes tIMeYW_accordion-item-content-closed-horizontal {
39
39
  from {
40
40
  width: var(--width);
41
- opacity: var(--accordion-item-content-open-opacity, 1);
41
+ opacity: var(--moduix-accordion-item-content-open-opacity, 1);
42
42
  }
43
43
 
44
44
  to {
45
45
  width: 0;
46
- opacity: var(--accordion-item-content-closed-opacity, .01);
46
+ opacity: var(--moduix-accordion-item-content-closed-opacity, .01);
47
47
  }
48
48
  }
49
49
 
50
50
  .tIMeYW_root {
51
51
  box-sizing: border-box;
52
- width: var(--accordion-width, 100%);
53
- max-width: var(--accordion-max-width, 100%);
52
+ width: var(--moduix-accordion-width, 100%);
53
+ max-width: var(--moduix-accordion-max-width, 100%);
54
54
  min-width: 0;
55
- color: var(--accordion-color, var(--color-foreground));
55
+ color: var(--moduix-accordion-color, var(--moduix-color-foreground));
56
56
  flex-direction: column;
57
57
  display: flex;
58
58
 
59
59
  &[data-orientation="horizontal"] {
60
- width: var(--accordion-horizontal-width, auto);
61
- height: var(--accordion-horizontal-height, 20rem);
62
- max-height: var(--accordion-horizontal-max-height, 100%);
60
+ width: var(--moduix-accordion-horizontal-width, auto);
61
+ height: var(--moduix-accordion-horizontal-height, 20rem);
62
+ max-height: var(--moduix-accordion-horizontal-max-height, 100%);
63
63
  flex-direction: row;
64
64
  }
65
65
  }
@@ -68,16 +68,16 @@
68
68
  overflow-anchor: none;
69
69
 
70
70
  &[data-orientation="vertical"]:not(:last-child) {
71
- border-bottom: var(--accordion-item-border-width, var(--border-width-sm)) solid
72
- var(--accordion-item-border-color, var(--color-border));
71
+ border-bottom: var(--moduix-accordion-item-border-width, var(--moduix-border-width-sm)) solid
72
+ var(--moduix-accordion-item-border-color, var(--moduix-color-border));
73
73
  }
74
74
 
75
75
  &[data-orientation="horizontal"] {
76
76
  display: flex;
77
77
 
78
78
  &:not(:last-child) {
79
- border-inline-end: var(--accordion-item-border-width, var(--border-width-sm)) solid
80
- var(--accordion-item-border-color, var(--color-border));
79
+ border-inline-end: var(--moduix-accordion-item-border-width, var(--moduix-border-width-sm))
80
+ solid var(--moduix-accordion-item-border-color, var(--moduix-color-border));
81
81
  }
82
82
  }
83
83
  }
@@ -86,20 +86,20 @@
86
86
  box-sizing: border-box;
87
87
  justify-content: space-between;
88
88
  align-items: center;
89
- gap: var(--accordion-trigger-gap, var(--spacing-4));
89
+ gap: var(--moduix-accordion-trigger-gap, var(--moduix-spacing-4));
90
90
  width: 100%;
91
- padding-block: var(--accordion-trigger-padding-y, var(--spacing-2));
92
- padding-inline: var(--accordion-trigger-padding-x, var(--spacing-3));
93
- background-color: var(--accordion-trigger-bg, var(--color-muted));
91
+ padding-block: var(--moduix-accordion-trigger-padding-y, var(--moduix-spacing-2));
92
+ padding-inline: var(--moduix-accordion-trigger-padding-x, var(--moduix-spacing-3));
93
+ background-color: var(--moduix-accordion-trigger-bg, var(--moduix-color-muted));
94
94
  color: inherit;
95
95
  font: inherit;
96
- font-size: var(--accordion-trigger-font-size, var(--text-md));
97
- line-height: var(--accordion-trigger-line-height, var(--line-height-text-md));
96
+ font-size: var(--moduix-accordion-trigger-font-size, var(--moduix-text-md));
97
+ line-height: var(--moduix-accordion-trigger-line-height, var(--moduix-line-height-text-md));
98
98
  text-align: left;
99
99
  user-select: none;
100
100
  cursor: pointer;
101
- transition: background-color var(--transition-default),
102
- color var(--transition-default);
101
+ transition: background-color var(--moduix-transition-default),
102
+ color var(--moduix-transition-default);
103
103
  border: 0;
104
104
  outline: 0;
105
105
  margin: 0;
@@ -107,25 +107,25 @@
107
107
 
108
108
  @media (hover: hover) {
109
109
  &:hover {
110
- background-color: var(--accordion-trigger-bg-hover, var(--color-accent));
110
+ background-color: var(--moduix-accordion-trigger-bg-hover, var(--moduix-color-accent));
111
111
  }
112
112
  }
113
113
 
114
114
  &:focus-visible {
115
115
  z-index: 1;
116
- outline: var(--accordion-focus-ring-width, var(--border-width-md)) solid
117
- var(--accordion-focus-ring-color, var(--color-ring));
118
- outline-offset: calc(var(--accordion-focus-ring-offset, var(--border-width-sm)) * -1);
116
+ outline: var(--moduix-accordion-focus-ring-width, var(--moduix-focus-ring-width, var(--moduix-border-width-md)))
117
+ solid var(--moduix-accordion-focus-ring-color, var(--moduix-color-ring));
118
+ outline-offset: calc(var(--moduix-accordion-focus-ring-offset, var(--moduix-border-width-sm)) * -1);
119
119
  position: relative;
120
120
  }
121
121
 
122
122
  &:is([disabled], [data-disabled]) {
123
123
  cursor: default;
124
- opacity: var(--accordion-disabled-opacity, var(--opacity-disabled));
124
+ opacity: var(--moduix-accordion-disabled-opacity, var(--moduix-opacity-disabled));
125
125
  }
126
126
 
127
127
  &[data-orientation="horizontal"] {
128
- width: var(--accordion-horizontal-trigger-width, 2.5rem);
128
+ width: var(--moduix-accordion-horizontal-trigger-width, 2.5rem);
129
129
  writing-mode: sideways-lr;
130
130
  justify-content: center;
131
131
  height: 100%;
@@ -134,9 +134,9 @@
134
134
 
135
135
  .tIMeYW_itemIndicator {
136
136
  box-sizing: border-box;
137
- width: var(--accordion-icon-size, .75rem);
138
- height: var(--accordion-icon-size, .75rem);
139
- transition: transform var(--accordion-icon-transition, var(--transition-default));
137
+ width: var(--moduix-accordion-icon-size, var(--moduix-spacing-3));
138
+ height: var(--moduix-accordion-icon-size, var(--moduix-spacing-3));
139
+ transition: transform var(--moduix-accordion-icon-transition, var(--moduix-transition-default));
140
140
  flex-shrink: 0;
141
141
  justify-content: center;
142
142
  align-items: center;
@@ -148,15 +148,15 @@
148
148
  }
149
149
 
150
150
  &[data-state="open"] {
151
- transform: var(--accordion-icon-open-transform, rotate(45deg) scale(1.1));
151
+ transform: var(--moduix-accordion-icon-open-transform, rotate(45deg) scale(1.1));
152
152
  }
153
153
  }
154
154
 
155
155
  .tIMeYW_itemContent {
156
156
  box-sizing: border-box;
157
- color: var(--accordion-item-content-color, var(--color-muted-foreground));
158
- font-size: var(--accordion-item-content-font-size, var(--text-md));
159
- line-height: var(--accordion-item-content-line-height, var(--line-height-text-md));
157
+ color: var(--moduix-accordion-item-content-color, var(--moduix-color-muted-foreground));
158
+ font-size: var(--moduix-accordion-item-content-font-size, var(--moduix-text-md));
159
+ line-height: var(--moduix-accordion-item-content-line-height, var(--moduix-line-height-text-md));
160
160
  overflow: hidden;
161
161
 
162
162
  &[hidden]:not([hidden="until-found"]) {
@@ -165,33 +165,33 @@
165
165
 
166
166
  &[data-state="open"][data-orientation="vertical"] {
167
167
  animation: tIMeYW_accordion-item-content-open
168
- var(--accordion-item-content-transition, var(--transition-default));
168
+ var(--moduix-accordion-item-content-transition, var(--moduix-transition-default));
169
169
  }
170
170
 
171
171
  &[data-state="closed"][data-orientation="vertical"] {
172
172
  animation: tIMeYW_accordion-item-content-closed
173
- var(--accordion-item-content-transition, var(--transition-default));
173
+ var(--moduix-accordion-item-content-transition, var(--moduix-transition-default));
174
174
  }
175
175
 
176
176
  &[data-state="open"][data-orientation="horizontal"] {
177
177
  animation: tIMeYW_accordion-item-content-open-horizontal
178
- var(--accordion-item-content-transition, var(--transition-default));
178
+ var(--moduix-accordion-item-content-transition, var(--moduix-transition-default));
179
179
  }
180
180
 
181
181
  &[data-state="closed"][data-orientation="horizontal"] {
182
182
  animation: tIMeYW_accordion-item-content-closed-horizontal
183
- var(--accordion-item-content-transition, var(--transition-default));
183
+ var(--moduix-accordion-item-content-transition, var(--moduix-transition-default));
184
184
  }
185
185
 
186
186
  &[data-orientation="horizontal"] > * {
187
- width: var(--accordion-horizontal-content-width, 16rem);
187
+ width: var(--moduix-accordion-horizontal-content-width, 16rem);
188
188
  }
189
189
  }
190
190
 
191
191
  .tIMeYW_itemBody {
192
- gap: var(--accordion-item-body-gap, var(--spacing-3));
192
+ gap: var(--moduix-accordion-item-body-gap, var(--moduix-spacing-3));
193
193
  min-width: 0;
194
- padding: var(--accordion-item-body-padding, var(--spacing-3));
194
+ padding: var(--moduix-accordion-item-body-padding, var(--moduix-spacing-3));
195
195
  display: grid;
196
196
  }
197
197
  }