@moduix/react 2.5.0 → 2.5.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.
- package/README.md +44 -86
- package/dist/components/carousel/Carousel_module.css +3 -3
- package/dist/components/date-picker/DatePicker_module.css +9 -2
- package/dist/components/lightbox/Lightbox_module.css +0 -1
- package/dist/components/sidebar/Sidebar.d.ts +10 -8
- package/dist/components/sidebar/Sidebar.js +59 -33
- package/dist/components/sidebar/Sidebar_module.css +109 -79
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -6,28 +6,18 @@
|
|
|
6
6
|
|
|
7
7
|
# @moduix/react
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
React components built on [Ark UI](https://ark-ui.com/), with accessible behavior, explicit
|
|
10
|
+
composition, and CSS Modules styling.
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
moduix gives Ark UI primitives a coherent visual system without adding a styling runtime. Components
|
|
13
|
+
are composed from named parts, styled with regular CSS, and customizable through CSS custom
|
|
14
|
+
properties, `className`, stable `data-slot` hooks, and Ark state attributes.
|
|
15
15
|
|
|
16
16
|
[Documentation](https://moduix.dev/) ·
|
|
17
17
|
[Quick start](https://moduix.dev/docs/quick-start) ·
|
|
18
18
|
[Components](https://moduix.dev/docs/components) ·
|
|
19
19
|
[Tokens](https://moduix.dev/docs/tokens)
|
|
20
20
|
|
|
21
|
-
## Highlights
|
|
22
|
-
|
|
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.
|
|
30
|
-
|
|
31
21
|
## Install
|
|
32
22
|
|
|
33
23
|
Install the package and its Ark UI peer dependency:
|
|
@@ -36,42 +26,35 @@ Install the package and its Ark UI peer dependency:
|
|
|
36
26
|
npm install @moduix/react @ark-ui/react
|
|
37
27
|
```
|
|
38
28
|
|
|
39
|
-
`react`, `react-dom`, and `@ark-ui/react` are peer dependencies
|
|
40
|
-
duplicate framework or primitive runtimes.
|
|
41
|
-
|
|
42
|
-
## Compatibility
|
|
29
|
+
`react`, `react-dom`, and `@ark-ui/react` are peer dependencies. moduix supports React 18 and 19.
|
|
43
30
|
|
|
44
|
-
|
|
45
|
-
| ----------- | ------------------------------------------------------------------------- |
|
|
46
|
-
| React | 18 and 19 |
|
|
47
|
-
| Browsers | The latest two stable releases of Chrome, Edge, and Firefox; Safari 16.4+ |
|
|
48
|
-
| SSR | Node.js 20+ with native ESM imports |
|
|
31
|
+
The optional `Chart` component also requires its TanStack peer dependency:
|
|
49
32
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
33
|
+
```bash
|
|
34
|
+
npm install @tanstack/charts
|
|
35
|
+
```
|
|
53
36
|
|
|
54
|
-
## Add
|
|
37
|
+
## Add styles
|
|
55
38
|
|
|
56
|
-
Import the
|
|
39
|
+
Import the shared foundation stylesheet once in your application entry point:
|
|
57
40
|
|
|
58
41
|
```tsx
|
|
59
42
|
import '@moduix/react/style.css';
|
|
60
43
|
```
|
|
61
44
|
|
|
62
|
-
|
|
63
|
-
|
|
45
|
+
It provides the shared tokens and base layer styles. Component imports carry their own CSS Modules,
|
|
46
|
+
so their styles follow the components that use them.
|
|
64
47
|
|
|
65
|
-
The reset is optional
|
|
48
|
+
The reset is optional. Import it first when you choose to use it:
|
|
66
49
|
|
|
67
50
|
```tsx
|
|
68
51
|
import '@moduix/react/reset.css';
|
|
69
52
|
import '@moduix/react/style.css';
|
|
70
53
|
```
|
|
71
54
|
|
|
72
|
-
## Use
|
|
55
|
+
## Use components
|
|
73
56
|
|
|
74
|
-
Import
|
|
57
|
+
Import component subpaths and compose their named parts:
|
|
75
58
|
|
|
76
59
|
```tsx
|
|
77
60
|
import { Button } from '@moduix/react/button';
|
|
@@ -79,7 +62,7 @@ import { Dialog } from '@moduix/react/dialog';
|
|
|
79
62
|
|
|
80
63
|
export function Example() {
|
|
81
64
|
return (
|
|
82
|
-
<Dialog
|
|
65
|
+
<Dialog>
|
|
83
66
|
<Dialog.Trigger asChild>
|
|
84
67
|
<Button>Open settings</Button>
|
|
85
68
|
</Dialog.Trigger>
|
|
@@ -97,52 +80,39 @@ export function Example() {
|
|
|
97
80
|
</Dialog.Footer>
|
|
98
81
|
</Dialog.Content>
|
|
99
82
|
</Dialog.Positioner>
|
|
100
|
-
</Dialog
|
|
83
|
+
</Dialog>
|
|
101
84
|
);
|
|
102
85
|
}
|
|
103
86
|
```
|
|
104
87
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
cases.
|
|
88
|
+
Use the short root alias, such as `Dialog`, in application code. The matching `Dialog.Root` export is
|
|
89
|
+
available when an explicit namespace improves a local abstraction, but it is not required.
|
|
108
90
|
|
|
109
|
-
##
|
|
91
|
+
## Customize deliberately
|
|
110
92
|
|
|
111
|
-
|
|
112
|
-
|
|
93
|
+
CSS Modules keep the package defaults locally scoped while leaving clear extension points for your
|
|
94
|
+
application:
|
|
113
95
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
--moduix-size-md: 36px;
|
|
119
|
-
--moduix-size-sm: 32px;
|
|
120
|
-
}
|
|
96
|
+
- use `className` on a root or named part for local CSS;
|
|
97
|
+
- use stable moduix `data-slot` hooks and Ark state attributes for structural or state-specific
|
|
98
|
+
selectors;
|
|
99
|
+
- override public CSS custom properties at the theme, semantic, or component layer.
|
|
121
100
|
|
|
122
|
-
|
|
123
|
-
--moduix-button-size-md: 32px;
|
|
124
|
-
}
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
The token hierarchy is:
|
|
128
|
-
|
|
129
|
-
1. theme primitives such as `--moduix-primary`, `--moduix-spacing-2`, `--moduix-size-md`, and `--moduix-radius`;
|
|
130
|
-
2. semantic aliases such as `--moduix-color-primary`, `--moduix-spacing-md`, and `--moduix-radius-md`;
|
|
131
|
-
3. shared family defaults such as `--moduix-popup-item-min-height` and `--moduix-focus-ring-width`;
|
|
132
|
-
4. component aliases such as `--moduix-input-height` and `--moduix-select-item-min-height`.
|
|
133
|
-
|
|
134
|
-
Library styles use predictable cascade layers:
|
|
101
|
+
For example, set product-level theme primitives in your own stylesheet:
|
|
135
102
|
|
|
136
103
|
```css
|
|
137
|
-
|
|
104
|
+
:root {
|
|
105
|
+
--moduix-primary: oklch(0.5 0.17 285);
|
|
106
|
+
--moduix-radius: 0.875rem;
|
|
107
|
+
}
|
|
138
108
|
```
|
|
139
109
|
|
|
140
|
-
|
|
141
|
-
|
|
110
|
+
See [Tokens](https://moduix.dev/docs/tokens) and [Themes](https://moduix.dev/docs/themes) for the
|
|
111
|
+
token hierarchy and component-specific variables.
|
|
142
112
|
|
|
143
|
-
## Optional
|
|
113
|
+
## Optional presets
|
|
144
114
|
|
|
145
|
-
Import one preset after `style.css` and
|
|
115
|
+
Import one preset after `style.css` and enable it on the document root:
|
|
146
116
|
|
|
147
117
|
```tsx
|
|
148
118
|
import '@moduix/react/style.css';
|
|
@@ -153,32 +123,20 @@ import '@moduix/react/presets/soft.css';
|
|
|
153
123
|
<html data-moduix-theme="soft"></html>
|
|
154
124
|
```
|
|
155
125
|
|
|
156
|
-
|
|
157
|
-
[Themes](https://moduix.dev/docs/themes) before combining presets or creating a reusable custom
|
|
158
|
-
theme.
|
|
126
|
+
The available presets are `dense`, `soft`, and `contrast`.
|
|
159
127
|
|
|
160
|
-
## Prefer to
|
|
128
|
+
## Prefer to own the source?
|
|
161
129
|
|
|
162
|
-
The
|
|
163
|
-
|
|
164
|
-
|
|
130
|
+
The hosted shadcn-compatible registry provides the same Ark-aligned component contracts in source
|
|
131
|
+
form. Set up `components.json` with the [Quick start](https://moduix.dev/docs/quick-start), then add
|
|
132
|
+
the components you need:
|
|
165
133
|
|
|
166
134
|
```bash
|
|
167
135
|
npx shadcn@latest add @moduix-react/button @moduix-react/dialog
|
|
168
136
|
```
|
|
169
137
|
|
|
170
|
-
Generated files
|
|
171
|
-
|
|
172
|
-
dry runs, and generated stylesheet imports.
|
|
173
|
-
|
|
174
|
-
## Acknowledgements
|
|
175
|
-
|
|
176
|
-
- [Ark UI](https://ark-ui.com/) provides the primitive behavior and composition model.
|
|
177
|
-
- [Chakra UI](https://chakra-ui.com/) informs Ark-aligned ergonomics and design-system craft.
|
|
178
|
-
- [shadcn/ui](https://ui.shadcn.com/) inspires open-code delivery, beautiful defaults, and practical
|
|
179
|
-
documentation.
|
|
180
|
-
- [UnoCSS](https://unocss.dev/) and [Tailwind CSS](https://tailwindcss.com/) provide foundations
|
|
181
|
-
adapted by the optional reset.
|
|
138
|
+
Generated files include the component source, CSS Modules, and required supporting files. Their
|
|
139
|
+
destination paths are controlled by your `components.json` aliases.
|
|
182
140
|
|
|
183
141
|
## Links
|
|
184
142
|
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
user-select: none;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
.
|
|
50
|
+
.itemGroup-a7LtFI[data-orientation="vertical"] {
|
|
51
51
|
overscroll-behavior-x: auto;
|
|
52
52
|
overscroll-behavior-y: contain;
|
|
53
53
|
height: 100%;
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
display: flex;
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
.
|
|
133
|
+
.indicatorGroup-TO_gj_[data-orientation="vertical"] {
|
|
134
134
|
flex-direction: column;
|
|
135
135
|
}
|
|
136
136
|
|
|
@@ -170,7 +170,7 @@
|
|
|
170
170
|
opacity: var(--moduix-opacity-disabled);
|
|
171
171
|
}
|
|
172
172
|
|
|
173
|
-
|
|
173
|
+
.indicator-cjLdPK[data-orientation="vertical"][data-current] {
|
|
174
174
|
width: var(--moduix-carousel-indicator-size, var(--moduix-spacing-2));
|
|
175
175
|
height: calc(var(--moduix-carousel-indicator-size, var(--moduix-spacing-2)) * 3);
|
|
176
176
|
}
|
|
@@ -111,12 +111,12 @@
|
|
|
111
111
|
cursor: default;
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
-
.control-pfUmnK:has(.input-c9DrcO
|
|
114
|
+
.control-pfUmnK:has(.input-c9DrcO[data-index="1"]) .input-c9DrcO {
|
|
115
115
|
min-width: min(var(--moduix-date-picker-range-input-min-width, 7.5rem), 100%);
|
|
116
116
|
padding-inline-end: var(--moduix-date-picker-input-padding-x-start, var(--moduix-spacing-3-5));
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
-
.control-pfUmnK
|
|
119
|
+
.control-pfUmnK .input-c9DrcO[data-index="1"] {
|
|
120
120
|
padding-inline-end: var(--moduix-date-picker-input-padding-x-end, 4.25rem);
|
|
121
121
|
}
|
|
122
122
|
|
|
@@ -246,6 +246,13 @@
|
|
|
246
246
|
pointer-events: none;
|
|
247
247
|
}
|
|
248
248
|
|
|
249
|
+
@media (prefers-reduced-motion: reduce) {
|
|
250
|
+
.content-pUiIqD[data-state] {
|
|
251
|
+
animation-duration: 1ms;
|
|
252
|
+
animation-delay: 0s;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
|
|
249
256
|
.root-sgMq4I[data-inline] .content-pUiIqD {
|
|
250
257
|
min-width: var(--moduix-date-picker-inline-content-min-width, 18rem);
|
|
251
258
|
box-shadow: var(--moduix-date-picker-inline-content-shadow, none);
|
|
@@ -119,7 +119,6 @@
|
|
|
119
119
|
|
|
120
120
|
.gallery-d_JY9F {
|
|
121
121
|
--moduix-carousel-gap: var(--moduix-lightbox-gallery-gap, var(--moduix-spacing-4));
|
|
122
|
-
width: auto;
|
|
123
122
|
max-width: min(var(--moduix-lightbox-gallery-max-width, 72rem),
|
|
124
123
|
calc(100vw - var(--moduix-lightbox-positioner-padding, var(--moduix-spacing-4)) * 2));
|
|
125
124
|
justify-self: center;
|
|
@@ -27,6 +27,8 @@ declare const Sidebar: import("react").ForwardRefExoticComponent<Omit<SidebarRoo
|
|
|
27
27
|
}, "ref"> & import("react").RefAttributes<HTMLInputElement>, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
|
|
28
28
|
Header: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLElement>>;
|
|
29
29
|
Content: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
30
|
+
ExpandedContent: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
31
|
+
CollapsedContent: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
30
32
|
Footer: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLElement>>;
|
|
31
33
|
Separator: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & {
|
|
32
34
|
orientation?: "horizontal" | "vertical";
|
|
@@ -37,22 +39,22 @@ declare const Sidebar: import("react").ForwardRefExoticComponent<Omit<SidebarRoo
|
|
|
37
39
|
GroupLabel: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLHeadingElement>>;
|
|
38
40
|
GroupAction: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
39
41
|
GroupContent: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
NavigationList: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLUListElement>>;
|
|
43
|
+
NavigationItem: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLLIElement>>;
|
|
42
44
|
Tooltip: ({ children, content, openDelay, closeDelay, positioning, ...props }: Omit<ComponentProps<typeof Tooltip>, "children" | "disabled" | "positioning"> & {
|
|
43
45
|
children: ComponentProps<typeof Tooltip.Trigger>["children"];
|
|
44
46
|
content: ComponentProps<typeof Tooltip.Content>["children"];
|
|
45
47
|
positioning?: ComponentProps<typeof Tooltip>["positioning"];
|
|
46
48
|
}) => import("react").JSX.Element;
|
|
47
|
-
|
|
49
|
+
NavigationButton: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & {
|
|
48
50
|
active?: boolean;
|
|
49
51
|
size?: "sm" | "md" | "lg";
|
|
50
52
|
} & import("react").RefAttributes<HTMLButtonElement>>;
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
NavigationAction: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
54
|
+
NavigationBadge: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
55
|
+
NavigationSubList: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLUListElement>>;
|
|
56
|
+
NavigationSubItem: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & import("react").RefAttributes<HTMLLIElement>>;
|
|
57
|
+
NavigationSubButton: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & import("@ark-ui/react/factory").PolymorphicProps & {
|
|
56
58
|
active?: boolean;
|
|
57
59
|
} & import("react").RefAttributes<HTMLAnchorElement>>;
|
|
58
60
|
};
|
|
@@ -176,6 +176,30 @@ const Sidebar_SidebarContent = /*#__PURE__*/ forwardRef(function({ className, ..
|
|
|
176
176
|
...props
|
|
177
177
|
});
|
|
178
178
|
});
|
|
179
|
+
const Sidebar_SidebarExpandedContent = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
|
|
180
|
+
const { collapsed } = useSidebar();
|
|
181
|
+
return /*#__PURE__*/ jsx(ark.div, {
|
|
182
|
+
ref: ref,
|
|
183
|
+
"data-scope": "sidebar",
|
|
184
|
+
"data-part": "expanded-content",
|
|
185
|
+
"data-slot": "sidebar-expanded-content",
|
|
186
|
+
className: normalizeClassName(className),
|
|
187
|
+
...props,
|
|
188
|
+
hidden: collapsed
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
const Sidebar_SidebarCollapsedContent = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
|
|
192
|
+
const { collapsed } = useSidebar();
|
|
193
|
+
return /*#__PURE__*/ jsx(ark.div, {
|
|
194
|
+
ref: ref,
|
|
195
|
+
"data-scope": "sidebar",
|
|
196
|
+
"data-part": "collapsed-content",
|
|
197
|
+
"data-slot": "sidebar-collapsed-content",
|
|
198
|
+
className: normalizeClassName(className),
|
|
199
|
+
...props,
|
|
200
|
+
hidden: !collapsed
|
|
201
|
+
});
|
|
202
|
+
});
|
|
179
203
|
const Sidebar_SidebarFooter = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
|
|
180
204
|
return /*#__PURE__*/ jsx(ark.footer, {
|
|
181
205
|
ref: ref,
|
|
@@ -227,93 +251,93 @@ const Sidebar_SidebarGroupContent = /*#__PURE__*/ forwardRef(function({ classNam
|
|
|
227
251
|
...props
|
|
228
252
|
});
|
|
229
253
|
});
|
|
230
|
-
const
|
|
254
|
+
const Sidebar_SidebarNavigationList = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
|
|
231
255
|
return /*#__PURE__*/ jsx(ark.ul, {
|
|
232
256
|
ref: ref,
|
|
233
257
|
"data-scope": "sidebar",
|
|
234
|
-
"data-part": "
|
|
235
|
-
"data-slot": "sidebar-
|
|
258
|
+
"data-part": "navigation-list",
|
|
259
|
+
"data-slot": "sidebar-navigation-list",
|
|
236
260
|
className: clsx(Sidebar_module.menu, normalizeClassName(className)),
|
|
237
261
|
...props
|
|
238
262
|
});
|
|
239
263
|
});
|
|
240
|
-
const
|
|
264
|
+
const Sidebar_SidebarNavigationItem = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
|
|
241
265
|
return /*#__PURE__*/ jsx(ark.li, {
|
|
242
266
|
ref: ref,
|
|
243
267
|
"data-scope": "sidebar",
|
|
244
|
-
"data-part": "
|
|
245
|
-
"data-slot": "sidebar-
|
|
268
|
+
"data-part": "navigation-item",
|
|
269
|
+
"data-slot": "sidebar-navigation-item",
|
|
246
270
|
className: clsx(Sidebar_module.menuItem, normalizeClassName(className)),
|
|
247
271
|
...props
|
|
248
272
|
});
|
|
249
273
|
});
|
|
250
|
-
const
|
|
274
|
+
const Sidebar_SidebarNavigationButton = /*#__PURE__*/ forwardRef(function({ active = false, className, size = 'md', type = 'button', 'aria-current': ariaCurrent, ...props }, ref) {
|
|
251
275
|
return /*#__PURE__*/ jsx(ark.button, {
|
|
252
276
|
ref: ref,
|
|
253
277
|
type: type,
|
|
254
278
|
"aria-current": ariaCurrent ?? (active ? 'page' : void 0),
|
|
255
279
|
"data-scope": "sidebar",
|
|
256
|
-
"data-part": "
|
|
257
|
-
"data-slot": "sidebar-
|
|
280
|
+
"data-part": "navigation-button",
|
|
281
|
+
"data-slot": "sidebar-navigation-button",
|
|
258
282
|
"data-active": active ? '' : void 0,
|
|
259
283
|
"data-size": size,
|
|
260
284
|
className: clsx(Sidebar_module.menuButton, normalizeClassName(className)),
|
|
261
285
|
...props
|
|
262
286
|
});
|
|
263
287
|
});
|
|
264
|
-
const
|
|
288
|
+
const Sidebar_SidebarNavigationAction = /*#__PURE__*/ forwardRef(function({ className, type = 'button', ...props }, ref) {
|
|
265
289
|
return /*#__PURE__*/ jsx(ark.button, {
|
|
266
290
|
ref: ref,
|
|
267
291
|
type: type,
|
|
268
292
|
"data-scope": "sidebar",
|
|
269
|
-
"data-part": "
|
|
270
|
-
"data-slot": "sidebar-
|
|
293
|
+
"data-part": "navigation-action",
|
|
294
|
+
"data-slot": "sidebar-navigation-action",
|
|
271
295
|
className: clsx(Sidebar_module.menuAction, normalizeClassName(className)),
|
|
272
296
|
...props
|
|
273
297
|
});
|
|
274
298
|
});
|
|
275
|
-
const
|
|
299
|
+
const Sidebar_SidebarNavigationBadge = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
|
|
276
300
|
return /*#__PURE__*/ jsx(ark.div, {
|
|
277
301
|
ref: ref,
|
|
278
302
|
"data-scope": "sidebar",
|
|
279
|
-
"data-part": "
|
|
280
|
-
"data-slot": "sidebar-
|
|
303
|
+
"data-part": "navigation-badge",
|
|
304
|
+
"data-slot": "sidebar-navigation-badge",
|
|
281
305
|
className: clsx(Sidebar_module.menuBadge, normalizeClassName(className)),
|
|
282
306
|
...props
|
|
283
307
|
});
|
|
284
308
|
});
|
|
285
|
-
const
|
|
309
|
+
const Sidebar_SidebarNavigationSubList = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
|
|
286
310
|
return /*#__PURE__*/ jsx(ark.ul, {
|
|
287
311
|
ref: ref,
|
|
288
312
|
"data-scope": "sidebar",
|
|
289
|
-
"data-part": "
|
|
290
|
-
"data-slot": "sidebar-
|
|
313
|
+
"data-part": "navigation-sub-list",
|
|
314
|
+
"data-slot": "sidebar-navigation-sub-list",
|
|
291
315
|
className: clsx(Sidebar_module.menuSub, normalizeClassName(className)),
|
|
292
316
|
...props
|
|
293
317
|
});
|
|
294
318
|
});
|
|
295
|
-
const
|
|
319
|
+
const Sidebar_SidebarNavigationSubItem = /*#__PURE__*/ forwardRef(function({ className, ...props }, ref) {
|
|
296
320
|
return /*#__PURE__*/ jsx(ark.li, {
|
|
297
321
|
ref: ref,
|
|
298
322
|
"data-scope": "sidebar",
|
|
299
|
-
"data-part": "
|
|
300
|
-
"data-slot": "sidebar-
|
|
323
|
+
"data-part": "navigation-sub-item",
|
|
324
|
+
"data-slot": "sidebar-navigation-sub-item",
|
|
301
325
|
className: clsx(Sidebar_module.menuSubItem, normalizeClassName(className)),
|
|
302
326
|
...props
|
|
303
327
|
});
|
|
304
328
|
});
|
|
305
|
-
const
|
|
329
|
+
const Sidebar_SidebarNavigationSubButton = /*#__PURE__*/ forwardRef(function({ active = false, children, className, 'aria-current': ariaCurrent, ...props }, ref) {
|
|
306
330
|
return /*#__PURE__*/ jsx(ark.a, {
|
|
307
331
|
ref: ref,
|
|
308
332
|
"aria-current": ariaCurrent ?? (active ? 'page' : void 0),
|
|
309
333
|
"data-scope": "sidebar",
|
|
310
|
-
"data-part": "
|
|
311
|
-
"data-slot": "sidebar-
|
|
334
|
+
"data-part": "navigation-sub-button",
|
|
335
|
+
"data-slot": "sidebar-navigation-sub-button",
|
|
312
336
|
"data-active": active ? '' : void 0,
|
|
313
337
|
className: clsx(Sidebar_module.menuSubButton, normalizeClassName(className)),
|
|
314
338
|
...props,
|
|
315
339
|
children: 'string' == typeof children ? /*#__PURE__*/ jsx("span", {
|
|
316
|
-
"data-slot": "sidebar-
|
|
340
|
+
"data-slot": "sidebar-navigation-sub-label",
|
|
317
341
|
children: children
|
|
318
342
|
}) : children
|
|
319
343
|
});
|
|
@@ -369,20 +393,22 @@ const Sidebar = Object.assign(Sidebar_SidebarRoot, {
|
|
|
369
393
|
Input: Sidebar_SidebarInput,
|
|
370
394
|
Header: Sidebar_SidebarHeader,
|
|
371
395
|
Content: Sidebar_SidebarContent,
|
|
396
|
+
ExpandedContent: Sidebar_SidebarExpandedContent,
|
|
397
|
+
CollapsedContent: Sidebar_SidebarCollapsedContent,
|
|
372
398
|
Footer: Sidebar_SidebarFooter,
|
|
373
399
|
Separator: Sidebar_SidebarSeparator,
|
|
374
400
|
Group: Sidebar_SidebarGroup,
|
|
375
401
|
GroupLabel: Sidebar_SidebarGroupLabel,
|
|
376
402
|
GroupAction: Sidebar_SidebarGroupAction,
|
|
377
403
|
GroupContent: Sidebar_SidebarGroupContent,
|
|
378
|
-
|
|
379
|
-
|
|
404
|
+
NavigationList: Sidebar_SidebarNavigationList,
|
|
405
|
+
NavigationItem: Sidebar_SidebarNavigationItem,
|
|
380
406
|
Tooltip: Sidebar_SidebarTooltip,
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
407
|
+
NavigationButton: Sidebar_SidebarNavigationButton,
|
|
408
|
+
NavigationAction: Sidebar_SidebarNavigationAction,
|
|
409
|
+
NavigationBadge: Sidebar_SidebarNavigationBadge,
|
|
410
|
+
NavigationSubList: Sidebar_SidebarNavigationSubList,
|
|
411
|
+
NavigationSubItem: Sidebar_SidebarNavigationSubItem,
|
|
412
|
+
NavigationSubButton: Sidebar_SidebarNavigationSubButton
|
|
387
413
|
});
|
|
388
414
|
export { Sidebar, useSidebar };
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
display: flex;
|
|
25
25
|
position: relative;
|
|
26
26
|
overflow: hidden;
|
|
27
|
+
container-type: inline-size;
|
|
27
28
|
}
|
|
28
29
|
|
|
29
30
|
.panel-l44YAX[data-state="collapsed"] .header-YkNEAV, .panel-l44YAX[data-state="collapsed"] .footer-RydM38, .panel-l44YAX[data-state="collapsed"] .group-cwd3z7 {
|
|
@@ -34,6 +35,10 @@
|
|
|
34
35
|
justify-content: center;
|
|
35
36
|
}
|
|
36
37
|
|
|
38
|
+
.panel-l44YAX[data-state="collapsed"] .header-YkNEAV > :only-child {
|
|
39
|
+
width: auto;
|
|
40
|
+
}
|
|
41
|
+
|
|
37
42
|
.panel-l44YAX[data-state="collapsed"] .content-v0UxPJ {
|
|
38
43
|
scrollbar-gutter: auto;
|
|
39
44
|
scrollbar-width: none;
|
|
@@ -95,28 +100,39 @@
|
|
|
95
100
|
|
|
96
101
|
.trigger-_fUcgc {
|
|
97
102
|
box-sizing: border-box;
|
|
103
|
+
z-index: 4;
|
|
98
104
|
width: var(--moduix-sidebar-trigger-size, var(--moduix-spacing-7));
|
|
99
105
|
min-width: var(--moduix-sidebar-trigger-size, var(--moduix-spacing-7));
|
|
100
106
|
height: var(--moduix-sidebar-trigger-size, var(--moduix-spacing-7));
|
|
107
|
+
margin-inline: calc(var(--moduix-sidebar-trigger-size, var(--moduix-spacing-7)) * -.5);
|
|
108
|
+
border: var(--moduix-sidebar-trigger-border-width, var(--moduix-border-width-sm)) solid
|
|
109
|
+
var(--moduix-sidebar-trigger-border-color, var(--moduix-color-border));
|
|
101
110
|
border-radius: var(--moduix-sidebar-trigger-radius, var(--moduix-radius-full));
|
|
111
|
+
background-color: var(--moduix-sidebar-trigger-bg, var(--moduix-color-background));
|
|
102
112
|
color: var(--moduix-sidebar-muted-color, var(--moduix-color-muted-foreground));
|
|
103
113
|
appearance: none;
|
|
104
114
|
cursor: pointer;
|
|
115
|
+
translate: 0 var(--moduix-sidebar-trigger-offset-y, 40px);
|
|
116
|
+
box-shadow: var(--moduix-sidebar-trigger-shadow, var(--moduix-shadow-sm));
|
|
105
117
|
transition: background-color var(--moduix-sidebar-transition, var(--moduix-transition-default)),
|
|
106
118
|
color var(--moduix-sidebar-transition, var(--moduix-transition-default)),
|
|
107
119
|
box-shadow var(--moduix-sidebar-transition, var(--moduix-transition-default));
|
|
108
|
-
background-color: #0000;
|
|
109
|
-
border: 0;
|
|
110
120
|
flex: none;
|
|
111
121
|
justify-content: center;
|
|
112
122
|
align-items: center;
|
|
113
123
|
padding: 0;
|
|
114
124
|
display: inline-flex;
|
|
125
|
+
position: relative;
|
|
115
126
|
}
|
|
116
127
|
|
|
117
128
|
.trigger-_fUcgc > svg {
|
|
118
129
|
width: var(--moduix-sidebar-icon-size, var(--moduix-spacing-4));
|
|
119
130
|
height: var(--moduix-sidebar-icon-size, var(--moduix-spacing-4));
|
|
131
|
+
transition: transform var(--moduix-sidebar-transition, var(--moduix-transition-default));
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.trigger-_fUcgc[data-side="left"][data-state="collapsed"] > svg, .trigger-_fUcgc[data-side="right"][data-state="expanded"] > svg {
|
|
135
|
+
transform: rotate(180deg);
|
|
120
136
|
}
|
|
121
137
|
|
|
122
138
|
.trigger-_fUcgc:focus-visible {
|
|
@@ -137,30 +153,6 @@
|
|
|
137
153
|
}
|
|
138
154
|
}
|
|
139
155
|
|
|
140
|
-
.trigger-_fUcgc {
|
|
141
|
-
z-index: 4;
|
|
142
|
-
margin-block-start: 0;
|
|
143
|
-
margin-inline: calc(var(--moduix-sidebar-trigger-size, var(--moduix-spacing-7)) * -.5);
|
|
144
|
-
border: var(--moduix-sidebar-trigger-border-width, var(--moduix-border-width-sm)) solid
|
|
145
|
-
var(--moduix-sidebar-trigger-border-color, var(--moduix-color-border));
|
|
146
|
-
border-radius: var(--moduix-sidebar-trigger-radius, var(--moduix-radius-full));
|
|
147
|
-
background-color: var(--moduix-sidebar-trigger-bg, var(--moduix-color-background));
|
|
148
|
-
box-shadow: var(--moduix-sidebar-trigger-shadow, var(--moduix-shadow-sm));
|
|
149
|
-
position: relative;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
.trigger-_fUcgc[data-side="left"][data-state="collapsed"] > svg, .trigger-_fUcgc[data-side="right"][data-state="expanded"] > svg {
|
|
153
|
-
transform: rotate(180deg);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
.trigger-_fUcgc > svg {
|
|
157
|
-
transition: transform var(--moduix-sidebar-transition, var(--moduix-transition-default));
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
.trigger-_fUcgc {
|
|
161
|
-
translate: 0 var(--moduix-sidebar-trigger-offset-y, 40px);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
156
|
.label-trHnso, .groupLabel-IvBtsR {
|
|
165
157
|
text-overflow: ellipsis;
|
|
166
158
|
white-space: nowrap;
|
|
@@ -181,6 +173,10 @@
|
|
|
181
173
|
var(--moduix-sidebar-border-color, var(--moduix-color-border));
|
|
182
174
|
}
|
|
183
175
|
|
|
176
|
+
.header-YkNEAV > :only-child {
|
|
177
|
+
width: 100%;
|
|
178
|
+
}
|
|
179
|
+
|
|
184
180
|
.footer-RydM38 {
|
|
185
181
|
border-block-start: var(--moduix-sidebar-section-border-width, 0) solid
|
|
186
182
|
var(--moduix-sidebar-border-color, var(--moduix-color-border));
|
|
@@ -216,7 +212,7 @@
|
|
|
216
212
|
.groupAction-aoQPc4 {
|
|
217
213
|
width: var(--moduix-sidebar-group-action-size, var(--moduix-size-xs));
|
|
218
214
|
height: var(--moduix-sidebar-group-action-size, var(--moduix-size-xs));
|
|
219
|
-
border-radius: var(--moduix-sidebar-
|
|
215
|
+
border-radius: var(--moduix-sidebar-navigation-button-radius, var(--moduix-radius-md));
|
|
220
216
|
color: var(--moduix-sidebar-muted-color, var(--moduix-color-muted-foreground));
|
|
221
217
|
appearance: none;
|
|
222
218
|
cursor: pointer;
|
|
@@ -256,12 +252,16 @@
|
|
|
256
252
|
}
|
|
257
253
|
|
|
258
254
|
.group-cwd3z7:has(.groupAction-aoQPc4) .groupLabel-IvBtsR {
|
|
255
|
+
min-height: var(--moduix-sidebar-group-action-size, var(--moduix-size-xs));
|
|
259
256
|
grid-column: 1;
|
|
257
|
+
align-items: center;
|
|
258
|
+
display: flex;
|
|
260
259
|
}
|
|
261
260
|
|
|
262
261
|
.group-cwd3z7:has(.groupAction-aoQPc4) .groupAction-aoQPc4 {
|
|
263
262
|
grid-column: 2;
|
|
264
263
|
align-self: center;
|
|
264
|
+
margin-inline-end: var(--moduix-sidebar-navigation-button-padding-x, var(--moduix-spacing-2));
|
|
265
265
|
}
|
|
266
266
|
|
|
267
267
|
.groupContent-_s9yul {
|
|
@@ -273,8 +273,12 @@
|
|
|
273
273
|
grid-column: 1 / -1;
|
|
274
274
|
}
|
|
275
275
|
|
|
276
|
+
.group-cwd3z7:has(.groupAction-aoQPc4) .menu-UwagMF {
|
|
277
|
+
grid-column: 1 / -1;
|
|
278
|
+
}
|
|
279
|
+
|
|
276
280
|
.menu-UwagMF, .menuSub-xn2r86 {
|
|
277
|
-
gap: var(--moduix-sidebar-
|
|
281
|
+
gap: var(--moduix-sidebar-navigation-gap, var(--moduix-spacing-1));
|
|
278
282
|
flex-direction: column;
|
|
279
283
|
width: 100%;
|
|
280
284
|
min-width: 0;
|
|
@@ -284,15 +288,23 @@
|
|
|
284
288
|
display: flex;
|
|
285
289
|
}
|
|
286
290
|
|
|
287
|
-
.menuItem-ktGhRk
|
|
291
|
+
.menuItem-ktGhRk {
|
|
288
292
|
min-width: 0;
|
|
289
293
|
position: relative;
|
|
290
294
|
}
|
|
291
295
|
|
|
296
|
+
.menuSubItem-NeKVH5 {
|
|
297
|
+
min-width: 0;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
.menuItem-ktGhRk > [data-scope="select"][data-part="root"] {
|
|
301
|
+
--moduix-select-width: 100%;
|
|
302
|
+
}
|
|
303
|
+
|
|
292
304
|
.menuButton-OAl6eQ, .menuSubButton-MjeEfX {
|
|
293
305
|
box-sizing: border-box;
|
|
294
|
-
border: var(--moduix-sidebar-
|
|
295
|
-
border-radius: var(--moduix-sidebar-
|
|
306
|
+
border: var(--moduix-sidebar-navigation-button-border-width, 0) solid transparent;
|
|
307
|
+
border-radius: var(--moduix-sidebar-navigation-button-radius, var(--moduix-radius-md));
|
|
296
308
|
width: 100%;
|
|
297
309
|
min-width: 0;
|
|
298
310
|
color: var(--moduix-sidebar-color, var(--moduix-color-card-foreground));
|
|
@@ -355,36 +367,32 @@
|
|
|
355
367
|
}
|
|
356
368
|
|
|
357
369
|
.menuButton-OAl6eQ {
|
|
358
|
-
gap: var(--moduix-sidebar-
|
|
359
|
-
min-height: var(--moduix-sidebar-
|
|
360
|
-
padding-block: var(--moduix-sidebar-
|
|
361
|
-
padding-inline: var(--moduix-sidebar-
|
|
362
|
-
font-size: var(--moduix-sidebar-
|
|
363
|
-
line-height: var(--moduix-sidebar-
|
|
370
|
+
gap: var(--moduix-sidebar-navigation-button-gap, var(--moduix-spacing-2));
|
|
371
|
+
min-height: var(--moduix-sidebar-navigation-button-height, var(--moduix-size-md));
|
|
372
|
+
padding-block: var(--moduix-sidebar-navigation-button-padding-y, var(--moduix-spacing-1));
|
|
373
|
+
padding-inline: var(--moduix-sidebar-navigation-button-padding-x, var(--moduix-spacing-2));
|
|
374
|
+
font-size: var(--moduix-sidebar-navigation-button-font-size, var(--moduix-text-sm));
|
|
375
|
+
line-height: var(--moduix-sidebar-navigation-button-line-height, var(--moduix-line-height-text-sm));
|
|
364
376
|
}
|
|
365
377
|
|
|
366
378
|
.menuButton-OAl6eQ[data-size="sm"] {
|
|
367
|
-
min-height: var(--moduix-sidebar-
|
|
368
|
-
font-size: var(--moduix-sidebar-
|
|
379
|
+
min-height: var(--moduix-sidebar-navigation-button-height-sm, var(--moduix-size-sm));
|
|
380
|
+
font-size: var(--moduix-sidebar-navigation-button-font-size-sm, var(--moduix-text-xs));
|
|
369
381
|
}
|
|
370
382
|
|
|
371
383
|
.menuButton-OAl6eQ[data-size="lg"] {
|
|
372
|
-
min-height: var(--moduix-sidebar-
|
|
384
|
+
min-height: var(--moduix-sidebar-navigation-button-height-lg, var(--moduix-size-lg));
|
|
373
385
|
}
|
|
374
386
|
|
|
375
|
-
.menuButton-OAl6eQ > [data-slot="collapsible-indicator"], .menuButton-OAl6eQ > [data-slot="menu-indicator"] {
|
|
387
|
+
.menuButton-OAl6eQ > [data-slot="collapsible-indicator"], .menuButton-OAl6eQ > [data-slot="menu-indicator"], .menuButton-OAl6eQ > [data-scope="select"][data-part="indicator"] {
|
|
376
388
|
margin-inline-start: auto;
|
|
377
389
|
}
|
|
378
390
|
|
|
379
|
-
.panel-l44YAX .menuButton-OAl6eQ {
|
|
380
|
-
justify-content: flex-start;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
391
|
.menuAction-_BDfHY {
|
|
384
392
|
z-index: 1;
|
|
385
|
-
width: var(--moduix-sidebar-
|
|
386
|
-
height: var(--moduix-sidebar-
|
|
387
|
-
border-radius: var(--moduix-sidebar-
|
|
393
|
+
width: var(--moduix-sidebar-navigation-action-size, var(--moduix-size-xs));
|
|
394
|
+
height: var(--moduix-sidebar-navigation-action-size, var(--moduix-size-xs));
|
|
395
|
+
border-radius: var(--moduix-sidebar-navigation-button-radius, var(--moduix-radius-md));
|
|
388
396
|
color: var(--moduix-sidebar-muted-color, var(--moduix-color-muted-foreground));
|
|
389
397
|
appearance: none;
|
|
390
398
|
cursor: pointer;
|
|
@@ -397,10 +405,10 @@
|
|
|
397
405
|
padding: 0;
|
|
398
406
|
display: inline-flex;
|
|
399
407
|
position: absolute;
|
|
400
|
-
inset-block-start: calc((var(--moduix-sidebar-
|
|
401
|
-
var(--moduix-sidebar-
|
|
408
|
+
inset-block-start: calc((var(--moduix-sidebar-navigation-button-height, var(--moduix-size-md)) -
|
|
409
|
+
var(--moduix-sidebar-navigation-action-size, var(--moduix-size-xs))) /
|
|
402
410
|
2);
|
|
403
|
-
inset-inline-end: var(--moduix-sidebar-
|
|
411
|
+
inset-inline-end: var(--moduix-sidebar-navigation-button-padding-x, var(--moduix-spacing-2));
|
|
404
412
|
}
|
|
405
413
|
|
|
406
414
|
.menuAction-_BDfHY > svg {
|
|
@@ -423,45 +431,57 @@
|
|
|
423
431
|
|
|
424
432
|
.menuBadge-GKf4u4 {
|
|
425
433
|
z-index: 1;
|
|
426
|
-
min-width: var(--moduix-sidebar-
|
|
427
|
-
min-height: var(--moduix-sidebar-
|
|
428
|
-
padding-inline: var(--moduix-sidebar-
|
|
434
|
+
min-width: var(--moduix-sidebar-navigation-badge-min-width, 1.125rem);
|
|
435
|
+
min-height: var(--moduix-sidebar-navigation-badge-min-width, 1.125rem);
|
|
436
|
+
padding-inline: var(--moduix-sidebar-navigation-badge-padding-x, var(--moduix-spacing-0-5));
|
|
429
437
|
border-radius: var(--moduix-radius-full);
|
|
430
438
|
background-color: var(--moduix-sidebar-accent-bg, var(--moduix-color-accent));
|
|
431
439
|
color: var(--moduix-sidebar-accent-color, var(--moduix-color-accent-foreground));
|
|
432
|
-
font-size: var(--moduix-
|
|
440
|
+
font-size: var(--moduix-sidebar-navigation-badge-font-size, .625rem);
|
|
441
|
+
font-weight: var(--moduix-sidebar-navigation-badge-font-weight, var(--moduix-weight-medium));
|
|
433
442
|
font-variant-numeric: tabular-nums;
|
|
434
443
|
justify-content: center;
|
|
435
444
|
align-items: center;
|
|
436
445
|
line-height: 1;
|
|
437
446
|
display: inline-flex;
|
|
438
447
|
position: absolute;
|
|
439
|
-
inset-block-start: calc((var(--moduix-sidebar-
|
|
440
|
-
var(--moduix-sidebar-
|
|
448
|
+
inset-block-start: calc((var(--moduix-sidebar-navigation-button-height, var(--moduix-size-md)) -
|
|
449
|
+
var(--moduix-sidebar-navigation-badge-min-width, 1.125rem)) /
|
|
450
|
+
2);
|
|
451
|
+
inset-inline-end: calc(var(--moduix-sidebar-navigation-button-padding-x, var(--moduix-spacing-2)) +
|
|
452
|
+
(var(--moduix-sidebar-navigation-action-size, var(--moduix-size-xs)) -
|
|
453
|
+
var(--moduix-sidebar-navigation-badge-min-width, 1.125rem)) /
|
|
441
454
|
2);
|
|
442
|
-
inset-inline-end: var(--moduix-sidebar-menu-button-padding-x, var(--moduix-spacing-2));
|
|
443
455
|
}
|
|
444
456
|
|
|
445
|
-
|
|
446
|
-
padding-inline-end: calc(var(--moduix-sidebar-
|
|
447
|
-
var(--moduix-sidebar-
|
|
457
|
+
.menuItem-ktGhRk:has(.menuAction-_BDfHY) .menuButton-OAl6eQ {
|
|
458
|
+
padding-inline-end: calc(var(--moduix-sidebar-navigation-action-size, var(--moduix-size-xs)) +
|
|
459
|
+
var(--moduix-sidebar-navigation-button-padding-x, var(--moduix-spacing-2)) * 2);
|
|
448
460
|
}
|
|
449
461
|
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
462
|
+
.menuItem-ktGhRk:has(.menuBadge-GKf4u4) .menuButton-OAl6eQ {
|
|
463
|
+
padding-inline-end: calc(var(--moduix-sidebar-navigation-badge-min-width, 1.125rem) +
|
|
464
|
+
var(--moduix-sidebar-navigation-button-padding-x, var(--moduix-spacing-2)) * 2 +
|
|
465
|
+
(var(--moduix-sidebar-navigation-action-size, var(--moduix-size-xs)) -
|
|
466
|
+
var(--moduix-sidebar-navigation-badge-min-width, 1.125rem)) /
|
|
467
|
+
2);
|
|
454
468
|
}
|
|
455
469
|
|
|
456
470
|
.menuItem-ktGhRk:has(.menuAction-_BDfHY):has(.menuBadge-GKf4u4) .menuButton-OAl6eQ {
|
|
457
|
-
padding-inline-end: calc(var(--moduix-sidebar-
|
|
458
|
-
var(--moduix-sidebar-
|
|
459
|
-
var(--moduix-sidebar-
|
|
471
|
+
padding-inline-end: calc(var(--moduix-sidebar-navigation-action-size, var(--moduix-size-xs)) +
|
|
472
|
+
var(--moduix-sidebar-navigation-badge-min-width, 1.125rem) +
|
|
473
|
+
var(--moduix-sidebar-navigation-button-padding-x, var(--moduix-spacing-2)) * 3 +
|
|
474
|
+
(var(--moduix-sidebar-navigation-action-size, var(--moduix-size-xs)) -
|
|
475
|
+
var(--moduix-sidebar-navigation-badge-min-width, 1.125rem)) /
|
|
476
|
+
2);
|
|
460
477
|
}
|
|
461
478
|
|
|
462
479
|
.menuItem-ktGhRk:has(.menuAction-_BDfHY):has(.menuBadge-GKf4u4) .menuAction-_BDfHY {
|
|
463
|
-
inset-inline-end: calc(var(--moduix-sidebar-
|
|
464
|
-
var(--moduix-sidebar-
|
|
480
|
+
inset-inline-end: calc(var(--moduix-sidebar-navigation-badge-min-width, 1.125rem) +
|
|
481
|
+
var(--moduix-sidebar-navigation-button-padding-x, var(--moduix-spacing-2)) * 2 +
|
|
482
|
+
(var(--moduix-sidebar-navigation-action-size, var(--moduix-size-xs)) -
|
|
483
|
+
var(--moduix-sidebar-navigation-badge-min-width, 1.125rem)) /
|
|
484
|
+
2);
|
|
465
485
|
}
|
|
466
486
|
|
|
467
487
|
:is(.panel-l44YAX[data-state="collapsed"] .menuItem-ktGhRk:has(.menuAction-_BDfHY) .menuButton-OAl6eQ, .panel-l44YAX[data-state="collapsed"] .menuItem-ktGhRk:has(.menuBadge-GKf4u4) .menuButton-OAl6eQ) {
|
|
@@ -471,19 +491,29 @@
|
|
|
471
491
|
.menuSub-xn2r86 {
|
|
472
492
|
box-sizing: border-box;
|
|
473
493
|
width: auto;
|
|
474
|
-
border-inline-start: var(--moduix-sidebar-
|
|
494
|
+
border-inline-start: var(--moduix-sidebar-navigation-sub-border-width, var(--moduix-border-width-sm))
|
|
475
495
|
solid var(--moduix-sidebar-border-color, var(--moduix-color-border));
|
|
476
|
-
margin-block-start: var(--moduix-sidebar-
|
|
477
|
-
margin-inline-start: var(--moduix-sidebar-
|
|
478
|
-
padding-inline-start: var(--moduix-sidebar-
|
|
496
|
+
margin-block-start: var(--moduix-sidebar-navigation-sub-margin-y, var(--moduix-spacing-1));
|
|
497
|
+
margin-inline-start: var(--moduix-sidebar-navigation-sub-margin-x, var(--moduix-spacing-4));
|
|
498
|
+
padding-inline-start: var(--moduix-sidebar-navigation-sub-padding-x, var(--moduix-spacing-2));
|
|
479
499
|
}
|
|
480
500
|
|
|
481
501
|
.menuSubButton-MjeEfX {
|
|
482
|
-
gap: var(--moduix-sidebar-
|
|
483
|
-
min-height: var(--moduix-sidebar-
|
|
484
|
-
padding-inline: var(--moduix-sidebar-
|
|
485
|
-
font-size: var(--moduix-sidebar-
|
|
486
|
-
line-height: var(--moduix-sidebar-
|
|
502
|
+
gap: var(--moduix-sidebar-navigation-sub-button-gap, var(--moduix-spacing-2));
|
|
503
|
+
min-height: var(--moduix-sidebar-navigation-sub-button-height, var(--moduix-size-sm));
|
|
504
|
+
padding-inline: var(--moduix-sidebar-navigation-sub-button-padding-x, var(--moduix-spacing-2));
|
|
505
|
+
font-size: var(--moduix-sidebar-navigation-sub-button-font-size, var(--moduix-text-sm));
|
|
506
|
+
line-height: var(--moduix-sidebar-navigation-sub-button-line-height, var(--moduix-line-height-text-sm));
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
@container (width <= 7rem) {
|
|
510
|
+
.groupAction-aoQPc4, .menuAction-_BDfHY, .menuBadge-GKf4u4, [data-slot="collapsible-indicator"], [data-slot="menu-indicator"], [data-slot="select-indicator"] {
|
|
511
|
+
display: none;
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
:is(.menuItem-ktGhRk:has(.menuAction-_BDfHY) .menuButton-OAl6eQ, .menuItem-ktGhRk:has(.menuBadge-GKf4u4) .menuButton-OAl6eQ) {
|
|
515
|
+
padding-inline-end: var(--moduix-sidebar-navigation-button-padding-x, var(--moduix-spacing-2));
|
|
516
|
+
}
|
|
487
517
|
}
|
|
488
518
|
|
|
489
519
|
.input-nqDU3w {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moduix/react",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.1",
|
|
4
4
|
"description": "React implementation of the moduix component system, built on Ark UI primitives.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"accessible",
|
|
@@ -418,22 +418,22 @@
|
|
|
418
418
|
"@ark-ui/react": "^5.39.0",
|
|
419
419
|
"@internationalized/date": "^3.12.3",
|
|
420
420
|
"@microsoft/api-extractor": "^7.59.0",
|
|
421
|
-
"@rsbuild/core": "
|
|
421
|
+
"@rsbuild/core": "^2.2.0",
|
|
422
422
|
"@rsbuild/plugin-react": "^2.1.0",
|
|
423
423
|
"@rslib/core": "^0.23.2",
|
|
424
|
-
"@rstest/adapter-rslib": "^0.11.
|
|
425
|
-
"@rstest/core": "^0.11.
|
|
424
|
+
"@rstest/adapter-rslib": "^0.11.10",
|
|
425
|
+
"@rstest/core": "^0.11.10",
|
|
426
426
|
"@storybook/addon-docs": "^10.5.10",
|
|
427
427
|
"@storybook/react": "^10.5.10",
|
|
428
|
-
"@tanstack/charts": "^0.
|
|
428
|
+
"@tanstack/charts": "^0.16.0",
|
|
429
429
|
"@testing-library/dom": "^10.4.1",
|
|
430
430
|
"@testing-library/jest-dom": "^6.10.0",
|
|
431
431
|
"@testing-library/react": "^16.3.2",
|
|
432
432
|
"@testing-library/user-event": "^14.6.6",
|
|
433
433
|
"@types/node": "^24.13.3",
|
|
434
434
|
"@types/react": "^19.2.18",
|
|
435
|
-
"@types/react-dom": "^19.2.
|
|
436
|
-
"happy-dom": "^20.11.
|
|
435
|
+
"@types/react-dom": "^19.2.5",
|
|
436
|
+
"happy-dom": "^20.11.8",
|
|
437
437
|
"react": "^19.2.8",
|
|
438
438
|
"react-dom": "^19.2.8",
|
|
439
439
|
"storybook": "^10.5.10",
|
|
@@ -443,7 +443,7 @@
|
|
|
443
443
|
},
|
|
444
444
|
"peerDependencies": {
|
|
445
445
|
"@ark-ui/react": "^5.37.2",
|
|
446
|
-
"@tanstack/charts": "^0.
|
|
446
|
+
"@tanstack/charts": "^0.16.0",
|
|
447
447
|
"react": "^18 || ^19",
|
|
448
448
|
"react-dom": "^18 || ^19"
|
|
449
449
|
},
|