@adminlte/react 0.4.0 → 0.5.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/CHANGELOG.md +27 -0
- package/README.md +28 -1
- package/dist/css/adminlte.css +138 -24
- package/package.json +15 -16
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,32 @@ All notable changes to **@adminlte/react** are documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.5.0] - 2026-08-19
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- **AdminLTE core upgraded to 4.8.1** (from 4.3.1), covering core [4.4.0](https://github.com/ColorlibHQ/AdminLTE/blob/master/CHANGELOG.md#440---2026-08-18), [4.4.1](https://github.com/ColorlibHQ/AdminLTE/blob/master/CHANGELOG.md#441---2026-08-18), [4.5.0](https://github.com/ColorlibHQ/AdminLTE/blob/master/CHANGELOG.md#450---2026-08-18), [4.6.0](https://github.com/ColorlibHQ/AdminLTE/blob/master/CHANGELOG.md#460---2026-08-18), [4.7.0](https://github.com/ColorlibHQ/AdminLTE/blob/master/CHANGELOG.md#470---2026-08-18), [4.8.0](https://github.com/ColorlibHQ/AdminLTE/blob/master/CHANGELOG.md#480---2026-08-19) and [4.8.1](https://github.com/ColorlibHQ/AdminLTE/blob/master/CHANGELOG.md#481---2026-08-19). What the bundled stylesheet (`@adminlte/react/css`) actually picks up:
|
|
13
|
+
- **The sidebar is now a flex column** (core 4.4.0, #6104). `.app-sidebar` gets `display: flex; flex-direction: column`, `.sidebar-brand` / `.sidebar-search` become `flex: 0 0 auto` and `.sidebar-wrapper` `flex: 1 1 auto; min-height: 0` — replacing the hard-coded `height: calc(100vh - (3.5rem + 1px))` that was repeated across every `sidebar-expand-*` breakpoint. The wrapper now fills whatever the sidebar leaves it instead of assuming a 3.5rem header, so a taller brand or an extra block above the menu no longer pushes the last items out of view. Verified in-browser on `/layout/fixed-sidebar`: wrapper 664 px inside a 720 px viewport, still scrolling under OverlayScrollbars.
|
|
14
|
+
- **`data-lte-print="plain"`** (core 4.7.0) — set it on `<html>` (or any container) for pages that should print as documents: no `(https://…)` suffix after external links, no outline around buttons. It works with nothing but the bundled CSS. Print also stopped drawing a black box around `.skip-link` and every `.nav-link` — the `border: 1px solid #000` rule is scoped to `.btn` again, which matters here because the sidebar prints by design.
|
|
15
|
+
- **`d-print-none` works on the shell** (core 4.6.0) — the print rules that force `display` on `.app-wrapper` and `.app-sidebar` are now `:not(.d-print-none)`, so Bootstrap's utility can hide the chrome from printed pages.
|
|
16
|
+
- **Skip-link hover contrast fix** (core 4.6.0) — `--bs-white` / `--bs-primary-emphasis` (a token Bootstrap never defines, so the background computed to transparent) swapped for `--bs-body-bg` / `--bs-primary-text-emphasis`, so the hovered skip link stays legible in both colour modes.
|
|
17
|
+
- The demo's `public/css/adminlte.rtl.css` was refreshed from core 4.8.1 to match.
|
|
18
|
+
- **Palette attributes are available, opt-in.** Core's extended palettes ship as separate stylesheets that `@adminlte/react/css` deliberately does **not** bundle: `adminlte-colors.css` (4.4.0 — 14 generated colours as `--bs-*` tokens plus the `.bg-*` / `.text-bg-*` / `.text-*` / `.border-*` / `.link-*` / `.bg-gradient-*` / `.card-*` / `.callout-*` / `.direct-chat-*` families, ≈8 kB gzipped) and `adminlte-colors-v3.css` (4.5.0 — the same families for the 18 AdminLTE 3 colours at their original values, ≈9.5 kB gzipped). Install `admin-lte` and import the sheet you want next to the library CSS to get:
|
|
19
|
+
- **`data-lte-primary="teal"`** (4.6.0, with 4.8.1's pagination focus-ring fix) — promotes any palette colour to Bootstrap's `primary`, so buttons, links, pagination, form focus rings, progress bars, list groups and dropdowns follow it. Verified: `.btn-primary` goes `rgb(13, 110, 253)` → `rgb(18, 130, 125)` once the sheet is loaded, and does nothing without it.
|
|
20
|
+
- **`data-lte-contrast="aa"`** (4.8.0, v3 sheet only) — flips text to black on the eight v3 colours that miss WCAG AA (blue, cyan, fuchsia, green, lightblue, olive, pink, teal). Verified: `.text-bg-lightblue` goes white → black.
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
|
|
24
|
+
- Docs for both of the above: a **Core `<html>` attributes** table in the README's Styling section, and **The extended palette** / **Print** sections on the in-app `/docs/theming` page. They document core CSS you opt into yourself — no new component props or APIs.
|
|
25
|
+
|
|
26
|
+
### Notes
|
|
27
|
+
|
|
28
|
+
- **Core's restyled search fields don't reach this port.** 4.4.0 restyles `.navbar-search` and `.sidebar-search` into quiet pills (a new `--lte-search-field-*` variable set). `@adminlte/react` renders neither: the topbar search is a command-palette trigger button and the sidebar has no filter, so the new rules are inert here — nothing regressed, nothing gained.
|
|
29
|
+
- **Core 4.4.1's ApexCharts dark-mode fix is a recipe, not shipped CSS** — it was applied to core's own demo pages. The `ApexChart` wrapper still passes `config` through verbatim and sets no Apex `theme`, so callers wanting dark tooltips pass `theme: { mode }` themselves.
|
|
30
|
+
- Core's JavaScript is still irrelevant to this port — `@adminlte/react` never loads `adminlte.js` (see the 0.3.0 notes).
|
|
31
|
+
- No dependency other than `admin-lte` changed; peer dependency ranges are untouched.
|
|
32
|
+
- Verified: library build, type-check, lint (0 errors, 13 pre-existing warnings) and 19 unit tests; demo type-check and production build; all 67 Playwright route-smoke + a11y tests.
|
|
33
|
+
|
|
8
34
|
## [0.4.0] - 2026-08-13
|
|
9
35
|
|
|
10
36
|
### Changed
|
|
@@ -186,6 +212,7 @@ Next.js App Router and React Server Components.
|
|
|
186
212
|
- Heavy third-party libraries are never bundled eagerly — they load via dynamic
|
|
187
213
|
`import()` inside the components that use them.
|
|
188
214
|
|
|
215
|
+
[0.5.0]: https://github.com/ColorlibHQ/adminlte-react/compare/v0.4.0...v0.5.0
|
|
189
216
|
[0.4.0]: https://github.com/ColorlibHQ/adminlte-react/compare/v0.3.0...v0.4.0
|
|
190
217
|
[0.3.0]: https://github.com/ColorlibHQ/adminlte-react/compare/v0.2.0...v0.3.0
|
|
191
218
|
[0.2.0]: https://github.com/ColorlibHQ/adminlte-react/compare/v0.1.0...v0.2.0
|
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
A modern React/Next.js component library for building admin dashboards and web applications with AdminLTE 4 styling and Bootstrap 5.3 — built for the Next.js App Router and React Server Components by [Colorlib](https://colorlib.com).
|
|
11
11
|
|
|
12
|
-
**Status**: v0.
|
|
12
|
+
**Status**: v0.5.0 (Early Release, AdminLTE core 4.8.1) · **Live demo:** [adminlte.io/themes/next-react](https://adminlte.io/themes/next-react/)
|
|
13
13
|
|
|
14
14
|
<p align="center">
|
|
15
15
|
<a href="https://adminlte.io/themes/next-react/">
|
|
@@ -318,6 +318,33 @@ All components use Bootstrap 5.3 utility classes. Customize via CSS variables or
|
|
|
318
318
|
}
|
|
319
319
|
```
|
|
320
320
|
|
|
321
|
+
### Core `<html>` attributes
|
|
322
|
+
|
|
323
|
+
AdminLTE core 4.6–4.8 added three opt-in attributes you set on `<html>` yourself — there is no
|
|
324
|
+
component prop for them, and they work with this port because they are plain CSS:
|
|
325
|
+
|
|
326
|
+
| Attribute | What it does | Stylesheet |
|
|
327
|
+
| --- | --- | --- |
|
|
328
|
+
| `data-lte-print="plain"` | Prints the page as a document: no `(https://…)` suffix after external links, no outline around buttons. | bundled — `@adminlte/react/css` |
|
|
329
|
+
| `data-lte-primary="teal"` | Promotes any palette colour to Bootstrap's `primary`, so buttons, links, pagination, form focus rings, progress bars, list groups and dropdowns follow it. | opt-in — `admin-lte/dist/css/adminlte-colors.css` (or `…-v3.css`) |
|
|
330
|
+
| `data-lte-contrast="aa"` | Flips text to black on the eight AdminLTE 3 colours (blue, cyan, fuchsia, green, lightblue, olive, pink, teal) that otherwise miss WCAG AA. | opt-in — `admin-lte/dist/css/adminlte-colors-v3.css` |
|
|
331
|
+
|
|
332
|
+
```tsx
|
|
333
|
+
// app/layout.tsx — data-lte-print needs no extra CSS
|
|
334
|
+
<html lang="en" data-lte-print="plain">
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
The extended palettes are **not** bundled with `@adminlte/react/css`; add `admin-lte` as a
|
|
338
|
+
dependency and import the sheet you want next to the library CSS:
|
|
339
|
+
|
|
340
|
+
```tsx
|
|
341
|
+
import '@adminlte/react/css'
|
|
342
|
+
import 'admin-lte/dist/css/adminlte-colors.css' // 14 extra colours + data-lte-primary
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
Bootstrap's `d-print-none` also works on `.app-wrapper` and `.app-sidebar` now, so you can hide
|
|
346
|
+
the shell chrome from printed pages.
|
|
347
|
+
|
|
321
348
|
## Type Safety
|
|
322
349
|
|
|
323
350
|
Full TypeScript support with exported types:
|
package/dist/css/adminlte.css
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
@charset "UTF-8";
|
|
2
2
|
/*!
|
|
3
|
-
* AdminLTE v4.
|
|
3
|
+
* AdminLTE v4.8.1
|
|
4
4
|
* Author: Colorlib
|
|
5
5
|
* Website: AdminLTE.io <https://adminlte.io>
|
|
6
6
|
* License: Open source - MIT <https://opensource.org/licenses/MIT>
|
|
@@ -12850,6 +12850,85 @@ textarea.form-control-lg {
|
|
|
12850
12850
|
height: 2.5rem;
|
|
12851
12851
|
}
|
|
12852
12852
|
|
|
12853
|
+
.navbar-search {
|
|
12854
|
+
--lte-search-field-width: 14rem;
|
|
12855
|
+
--lte-search-field-focus-width: 18rem;
|
|
12856
|
+
--lte-search-field-bg: rgba(var(--bs-emphasis-color-rgb), .06);
|
|
12857
|
+
--lte-search-field-hover-bg: rgba(var(--bs-emphasis-color-rgb), .09);
|
|
12858
|
+
--lte-search-field-focus-bg: rgba(var(--bs-emphasis-color-rgb), .1);
|
|
12859
|
+
--lte-search-field-border-color: rgba(var(--bs-emphasis-color-rgb), .1);
|
|
12860
|
+
--lte-search-field-focus-border-color: rgba(var(--bs-emphasis-color-rgb), .35);
|
|
12861
|
+
--lte-search-field-focus-ring: 0 0 0 .2rem rgba(var(--bs-emphasis-color-rgb), .12);
|
|
12862
|
+
--lte-search-field-color: var(--bs-body-color);
|
|
12863
|
+
--lte-search-field-placeholder-color: var(--bs-secondary-color);
|
|
12864
|
+
--lte-search-field-icon-color: var(--bs-secondary-color);
|
|
12865
|
+
}
|
|
12866
|
+
.navbar-search .form-control {
|
|
12867
|
+
padding: 0.3rem 0.75rem;
|
|
12868
|
+
font-size: 0.875rem;
|
|
12869
|
+
color: var(--lte-search-field-color);
|
|
12870
|
+
background-color: var(--lte-search-field-bg);
|
|
12871
|
+
border-color: var(--lte-search-field-border-color);
|
|
12872
|
+
box-shadow: none;
|
|
12873
|
+
border-radius: 50rem;
|
|
12874
|
+
transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
|
12875
|
+
}
|
|
12876
|
+
@media (prefers-reduced-motion: reduce) {
|
|
12877
|
+
.navbar-search .form-control {
|
|
12878
|
+
transition: none;
|
|
12879
|
+
}
|
|
12880
|
+
}
|
|
12881
|
+
.navbar-search .form-control::placeholder {
|
|
12882
|
+
color: var(--lte-search-field-placeholder-color);
|
|
12883
|
+
opacity: 1;
|
|
12884
|
+
}
|
|
12885
|
+
.navbar-search .form-control:hover {
|
|
12886
|
+
background-color: var(--lte-search-field-hover-bg);
|
|
12887
|
+
}
|
|
12888
|
+
.navbar-search .form-control:focus {
|
|
12889
|
+
background-color: var(--lte-search-field-focus-bg);
|
|
12890
|
+
border-color: var(--lte-search-field-focus-border-color);
|
|
12891
|
+
box-shadow: var(--lte-search-field-focus-ring);
|
|
12892
|
+
}
|
|
12893
|
+
.navbar-search .navbar-search-field {
|
|
12894
|
+
position: relative;
|
|
12895
|
+
width: var(--lte-search-field-width);
|
|
12896
|
+
max-width: 100%;
|
|
12897
|
+
transition: width 0.2s ease-in-out;
|
|
12898
|
+
}
|
|
12899
|
+
@media (prefers-reduced-motion: reduce) {
|
|
12900
|
+
.navbar-search .navbar-search-field {
|
|
12901
|
+
transition: none;
|
|
12902
|
+
}
|
|
12903
|
+
}
|
|
12904
|
+
.navbar-search:focus-within .navbar-search-field {
|
|
12905
|
+
width: var(--lte-search-field-focus-width);
|
|
12906
|
+
}
|
|
12907
|
+
.navbar-search .form-control {
|
|
12908
|
+
padding-left: 2.125rem;
|
|
12909
|
+
}
|
|
12910
|
+
.navbar-search .navbar-search-submit {
|
|
12911
|
+
position: absolute;
|
|
12912
|
+
top: 50%;
|
|
12913
|
+
left: 0.75rem;
|
|
12914
|
+
display: flex;
|
|
12915
|
+
align-items: center;
|
|
12916
|
+
padding: 0;
|
|
12917
|
+
line-height: 1;
|
|
12918
|
+
color: var(--lte-search-field-icon-color);
|
|
12919
|
+
background: transparent;
|
|
12920
|
+
border: 0;
|
|
12921
|
+
transform: translateY(-50%);
|
|
12922
|
+
border-radius: 50rem;
|
|
12923
|
+
}
|
|
12924
|
+
.navbar-search .navbar-search-submit:hover, .navbar-search .navbar-search-submit:focus-visible {
|
|
12925
|
+
color: var(--lte-search-field-color);
|
|
12926
|
+
}
|
|
12927
|
+
.navbar-search .navbar-search-submit:focus-visible {
|
|
12928
|
+
outline: 2px solid var(--bs-focus-ring-color);
|
|
12929
|
+
outline-offset: 2px;
|
|
12930
|
+
}
|
|
12931
|
+
|
|
12853
12932
|
.navbar-badge {
|
|
12854
12933
|
position: absolute;
|
|
12855
12934
|
top: 9px;
|
|
@@ -12871,7 +12950,6 @@ textarea.form-control-lg {
|
|
|
12871
12950
|
max-height: 100vh;
|
|
12872
12951
|
}
|
|
12873
12952
|
.fixed-header.sidebar-expand-sm .app-sidebar .sidebar-wrapper {
|
|
12874
|
-
height: calc(100vh - (calc(3.5rem + 1px)));
|
|
12875
12953
|
overflow-x: hidden;
|
|
12876
12954
|
overflow-y: auto;
|
|
12877
12955
|
}
|
|
@@ -12883,7 +12961,6 @@ textarea.form-control-lg {
|
|
|
12883
12961
|
max-height: 100vh;
|
|
12884
12962
|
}
|
|
12885
12963
|
.fixed-header.sidebar-expand-md .app-sidebar .sidebar-wrapper {
|
|
12886
|
-
height: calc(100vh - (calc(3.5rem + 1px)));
|
|
12887
12964
|
overflow-x: hidden;
|
|
12888
12965
|
overflow-y: auto;
|
|
12889
12966
|
}
|
|
@@ -12895,7 +12972,6 @@ textarea.form-control-lg {
|
|
|
12895
12972
|
max-height: 100vh;
|
|
12896
12973
|
}
|
|
12897
12974
|
.fixed-header.sidebar-expand-lg .app-sidebar .sidebar-wrapper {
|
|
12898
|
-
height: calc(100vh - (calc(3.5rem + 1px)));
|
|
12899
12975
|
overflow-x: hidden;
|
|
12900
12976
|
overflow-y: auto;
|
|
12901
12977
|
}
|
|
@@ -12907,7 +12983,6 @@ textarea.form-control-lg {
|
|
|
12907
12983
|
max-height: 100vh;
|
|
12908
12984
|
}
|
|
12909
12985
|
.fixed-header.sidebar-expand-xl .app-sidebar .sidebar-wrapper {
|
|
12910
|
-
height: calc(100vh - (calc(3.5rem + 1px)));
|
|
12911
12986
|
overflow-x: hidden;
|
|
12912
12987
|
overflow-y: auto;
|
|
12913
12988
|
}
|
|
@@ -12919,7 +12994,6 @@ textarea.form-control-lg {
|
|
|
12919
12994
|
max-height: 100vh;
|
|
12920
12995
|
}
|
|
12921
12996
|
.fixed-header.sidebar-expand-xxl .app-sidebar .sidebar-wrapper {
|
|
12922
|
-
height: calc(100vh - (calc(3.5rem + 1px)));
|
|
12923
12997
|
overflow-x: hidden;
|
|
12924
12998
|
overflow-y: auto;
|
|
12925
12999
|
}
|
|
@@ -12930,7 +13004,6 @@ textarea.form-control-lg {
|
|
|
12930
13004
|
max-height: 100vh;
|
|
12931
13005
|
}
|
|
12932
13006
|
.fixed-header.sidebar-expand .app-sidebar .sidebar-wrapper {
|
|
12933
|
-
height: calc(100vh - (calc(3.5rem + 1px)));
|
|
12934
13007
|
overflow-x: hidden;
|
|
12935
13008
|
overflow-y: auto;
|
|
12936
13009
|
}
|
|
@@ -12950,6 +13023,8 @@ textarea.form-control-lg {
|
|
|
12950
13023
|
--lte-sidebar-submenu-active-bg: rgba(0, 0, 0, 0.1);
|
|
12951
13024
|
--lte-sidebar-header-color: rgb(19.3725490196%, 21.6078431373%, 23.8431372549%);
|
|
12952
13025
|
z-index: 1038;
|
|
13026
|
+
display: flex;
|
|
13027
|
+
flex-direction: column;
|
|
12953
13028
|
grid-area: lte-app-sidebar;
|
|
12954
13029
|
min-width: var(--lte-sidebar-width);
|
|
12955
13030
|
max-width: var(--lte-sidebar-width);
|
|
@@ -12963,6 +13038,7 @@ textarea.form-control-lg {
|
|
|
12963
13038
|
|
|
12964
13039
|
.sidebar-brand {
|
|
12965
13040
|
display: flex;
|
|
13041
|
+
flex: 0 0 auto;
|
|
12966
13042
|
align-items: center;
|
|
12967
13043
|
justify-content: center;
|
|
12968
13044
|
height: 3.5rem;
|
|
@@ -13019,6 +13095,8 @@ textarea.form-control-lg {
|
|
|
13019
13095
|
}
|
|
13020
13096
|
|
|
13021
13097
|
.sidebar-wrapper {
|
|
13098
|
+
flex: 1 1 auto;
|
|
13099
|
+
min-height: 0;
|
|
13022
13100
|
padding-top: 0.5rem;
|
|
13023
13101
|
padding-right: 0.5rem;
|
|
13024
13102
|
padding-bottom: 0.5rem;
|
|
@@ -13218,7 +13296,44 @@ textarea.form-control-lg {
|
|
|
13218
13296
|
}
|
|
13219
13297
|
|
|
13220
13298
|
.sidebar-search {
|
|
13299
|
+
flex: 0 0 auto;
|
|
13221
13300
|
padding: 0.5rem 1rem;
|
|
13301
|
+
--lte-search-field-bg: rgba(var(--bs-emphasis-color-rgb), .06);
|
|
13302
|
+
--lte-search-field-hover-bg: rgba(var(--bs-emphasis-color-rgb), .09);
|
|
13303
|
+
--lte-search-field-focus-bg: rgba(var(--bs-emphasis-color-rgb), .1);
|
|
13304
|
+
--lte-search-field-border-color: rgba(var(--bs-emphasis-color-rgb), .1);
|
|
13305
|
+
--lte-search-field-focus-border-color: rgba(var(--bs-emphasis-color-rgb), .35);
|
|
13306
|
+
--lte-search-field-focus-ring: 0 0 0 .2rem rgba(var(--bs-emphasis-color-rgb), .12);
|
|
13307
|
+
--lte-search-field-color: var(--bs-body-color);
|
|
13308
|
+
--lte-search-field-placeholder-color: var(--bs-secondary-color);
|
|
13309
|
+
--lte-search-field-icon-color: var(--bs-secondary-color);
|
|
13310
|
+
}
|
|
13311
|
+
.sidebar-search .form-control {
|
|
13312
|
+
padding: 0.3rem 0.75rem;
|
|
13313
|
+
font-size: 0.875rem;
|
|
13314
|
+
color: var(--lte-search-field-color);
|
|
13315
|
+
background-color: var(--lte-search-field-bg);
|
|
13316
|
+
border-color: var(--lte-search-field-border-color);
|
|
13317
|
+
box-shadow: none;
|
|
13318
|
+
border-radius: 50rem;
|
|
13319
|
+
transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
|
13320
|
+
}
|
|
13321
|
+
@media (prefers-reduced-motion: reduce) {
|
|
13322
|
+
.sidebar-search .form-control {
|
|
13323
|
+
transition: none;
|
|
13324
|
+
}
|
|
13325
|
+
}
|
|
13326
|
+
.sidebar-search .form-control::placeholder {
|
|
13327
|
+
color: var(--lte-search-field-placeholder-color);
|
|
13328
|
+
opacity: 1;
|
|
13329
|
+
}
|
|
13330
|
+
.sidebar-search .form-control:hover {
|
|
13331
|
+
background-color: var(--lte-search-field-hover-bg);
|
|
13332
|
+
}
|
|
13333
|
+
.sidebar-search .form-control:focus {
|
|
13334
|
+
background-color: var(--lte-search-field-focus-bg);
|
|
13335
|
+
border-color: var(--lte-search-field-focus-border-color);
|
|
13336
|
+
box-shadow: var(--lte-search-field-focus-ring);
|
|
13222
13337
|
}
|
|
13223
13338
|
|
|
13224
13339
|
.logo-xs,
|
|
@@ -13371,7 +13486,6 @@ textarea.form-control-lg {
|
|
|
13371
13486
|
max-height: 100vh;
|
|
13372
13487
|
}
|
|
13373
13488
|
.sidebar-expand-sm.layout-fixed .app-sidebar .sidebar-wrapper {
|
|
13374
|
-
height: calc(100vh - (calc(3.5rem + 1px)));
|
|
13375
13489
|
overflow-x: hidden;
|
|
13376
13490
|
overflow-y: auto;
|
|
13377
13491
|
}
|
|
@@ -13403,7 +13517,6 @@ textarea.form-control-lg {
|
|
|
13403
13517
|
margin-left: calc(var(--lte-sidebar-width) * -1);
|
|
13404
13518
|
}
|
|
13405
13519
|
.sidebar-expand-sm .app-sidebar .sidebar-wrapper {
|
|
13406
|
-
height: calc(100vh - (calc(3.5rem + 1px)));
|
|
13407
13520
|
overflow-x: hidden;
|
|
13408
13521
|
overflow-y: auto;
|
|
13409
13522
|
}
|
|
@@ -13446,7 +13559,6 @@ textarea.form-control-lg {
|
|
|
13446
13559
|
max-height: 100vh;
|
|
13447
13560
|
}
|
|
13448
13561
|
.sidebar-expand-md.layout-fixed .app-sidebar .sidebar-wrapper {
|
|
13449
|
-
height: calc(100vh - (calc(3.5rem + 1px)));
|
|
13450
13562
|
overflow-x: hidden;
|
|
13451
13563
|
overflow-y: auto;
|
|
13452
13564
|
}
|
|
@@ -13478,7 +13590,6 @@ textarea.form-control-lg {
|
|
|
13478
13590
|
margin-left: calc(var(--lte-sidebar-width) * -1);
|
|
13479
13591
|
}
|
|
13480
13592
|
.sidebar-expand-md .app-sidebar .sidebar-wrapper {
|
|
13481
|
-
height: calc(100vh - (calc(3.5rem + 1px)));
|
|
13482
13593
|
overflow-x: hidden;
|
|
13483
13594
|
overflow-y: auto;
|
|
13484
13595
|
}
|
|
@@ -13521,7 +13632,6 @@ textarea.form-control-lg {
|
|
|
13521
13632
|
max-height: 100vh;
|
|
13522
13633
|
}
|
|
13523
13634
|
.sidebar-expand-lg.layout-fixed .app-sidebar .sidebar-wrapper {
|
|
13524
|
-
height: calc(100vh - (calc(3.5rem + 1px)));
|
|
13525
13635
|
overflow-x: hidden;
|
|
13526
13636
|
overflow-y: auto;
|
|
13527
13637
|
}
|
|
@@ -13553,7 +13663,6 @@ textarea.form-control-lg {
|
|
|
13553
13663
|
margin-left: calc(var(--lte-sidebar-width) * -1);
|
|
13554
13664
|
}
|
|
13555
13665
|
.sidebar-expand-lg .app-sidebar .sidebar-wrapper {
|
|
13556
|
-
height: calc(100vh - (calc(3.5rem + 1px)));
|
|
13557
13666
|
overflow-x: hidden;
|
|
13558
13667
|
overflow-y: auto;
|
|
13559
13668
|
}
|
|
@@ -13596,7 +13705,6 @@ textarea.form-control-lg {
|
|
|
13596
13705
|
max-height: 100vh;
|
|
13597
13706
|
}
|
|
13598
13707
|
.sidebar-expand-xl.layout-fixed .app-sidebar .sidebar-wrapper {
|
|
13599
|
-
height: calc(100vh - (calc(3.5rem + 1px)));
|
|
13600
13708
|
overflow-x: hidden;
|
|
13601
13709
|
overflow-y: auto;
|
|
13602
13710
|
}
|
|
@@ -13628,7 +13736,6 @@ textarea.form-control-lg {
|
|
|
13628
13736
|
margin-left: calc(var(--lte-sidebar-width) * -1);
|
|
13629
13737
|
}
|
|
13630
13738
|
.sidebar-expand-xl .app-sidebar .sidebar-wrapper {
|
|
13631
|
-
height: calc(100vh - (calc(3.5rem + 1px)));
|
|
13632
13739
|
overflow-x: hidden;
|
|
13633
13740
|
overflow-y: auto;
|
|
13634
13741
|
}
|
|
@@ -13671,7 +13778,6 @@ textarea.form-control-lg {
|
|
|
13671
13778
|
max-height: 100vh;
|
|
13672
13779
|
}
|
|
13673
13780
|
.sidebar-expand-xxl.layout-fixed .app-sidebar .sidebar-wrapper {
|
|
13674
|
-
height: calc(100vh - (calc(3.5rem + 1px)));
|
|
13675
13781
|
overflow-x: hidden;
|
|
13676
13782
|
overflow-y: auto;
|
|
13677
13783
|
}
|
|
@@ -13703,7 +13809,6 @@ textarea.form-control-lg {
|
|
|
13703
13809
|
margin-left: calc(var(--lte-sidebar-width) * -1);
|
|
13704
13810
|
}
|
|
13705
13811
|
.sidebar-expand-xxl .app-sidebar .sidebar-wrapper {
|
|
13706
|
-
height: calc(100vh - (calc(3.5rem + 1px)));
|
|
13707
13812
|
overflow-x: hidden;
|
|
13708
13813
|
overflow-y: auto;
|
|
13709
13814
|
}
|
|
@@ -13745,7 +13850,6 @@ textarea.form-control-lg {
|
|
|
13745
13850
|
max-height: 100vh;
|
|
13746
13851
|
}
|
|
13747
13852
|
.sidebar-expand.layout-fixed .app-sidebar .sidebar-wrapper {
|
|
13748
|
-
height: calc(100vh - (calc(3.5rem + 1px)));
|
|
13749
13853
|
overflow-x: hidden;
|
|
13750
13854
|
overflow-y: auto;
|
|
13751
13855
|
}
|
|
@@ -13775,7 +13879,6 @@ textarea.form-control-lg {
|
|
|
13775
13879
|
margin-left: calc(var(--lte-sidebar-width) * -1);
|
|
13776
13880
|
}
|
|
13777
13881
|
.sidebar-expand .app-sidebar .sidebar-wrapper {
|
|
13778
|
-
height: calc(100vh - (calc(3.5rem + 1px)));
|
|
13779
13882
|
overflow-x: hidden;
|
|
13780
13883
|
overflow-y: auto;
|
|
13781
13884
|
}
|
|
@@ -15646,9 +15749,9 @@ html.maximized-card {
|
|
|
15646
15749
|
outline-offset: 2px;
|
|
15647
15750
|
}
|
|
15648
15751
|
.skip-link:hover {
|
|
15649
|
-
color: var(--bs-
|
|
15752
|
+
color: var(--bs-body-bg);
|
|
15650
15753
|
text-decoration: none;
|
|
15651
|
-
background: var(--bs-primary-emphasis);
|
|
15754
|
+
background: var(--bs-primary-text-emphasis);
|
|
15652
15755
|
}
|
|
15653
15756
|
|
|
15654
15757
|
/* Enhanced Focus Indicators - WCAG 2.4.7: Focus Visible */
|
|
@@ -15871,14 +15974,25 @@ fieldset legend {
|
|
|
15871
15974
|
.nav-link {
|
|
15872
15975
|
color: #000 !important;
|
|
15873
15976
|
background: transparent !important;
|
|
15977
|
+
}
|
|
15978
|
+
.btn {
|
|
15874
15979
|
border: 1px solid #000 !important;
|
|
15875
15980
|
}
|
|
15876
15981
|
a[href^=http]::after {
|
|
15877
15982
|
font-size: 0.8em;
|
|
15878
15983
|
content: " (" attr(href) ")";
|
|
15879
15984
|
}
|
|
15880
|
-
|
|
15881
|
-
|
|
15985
|
+
[data-lte-print=plain] a[href^=http]::after {
|
|
15986
|
+
content: none;
|
|
15987
|
+
}
|
|
15988
|
+
[data-lte-print=plain] .btn {
|
|
15989
|
+
border-color: transparent !important;
|
|
15990
|
+
}
|
|
15991
|
+
/* Print Layout Fix - Ensure sidebar and main content are both visible.
|
|
15992
|
+
`:not(.d-print-none)` on the two rules that force `display`, so Bootstrap's
|
|
15993
|
+
print display utilities keep working: these are defaults for the standard
|
|
15994
|
+
layout, not something a page should have to fight to hide. */
|
|
15995
|
+
.app-wrapper:not(.d-print-none) {
|
|
15882
15996
|
display: grid !important;
|
|
15883
15997
|
grid-template-rows: auto 1fr auto !important;
|
|
15884
15998
|
grid-template-columns: auto 1fr !important;
|
|
@@ -15886,7 +16000,7 @@ fieldset legend {
|
|
|
15886
16000
|
.sidebar-overlay {
|
|
15887
16001
|
display: none !important;
|
|
15888
16002
|
}
|
|
15889
|
-
.app-sidebar {
|
|
16003
|
+
.app-sidebar:not(.d-print-none) {
|
|
15890
16004
|
position: static !important;
|
|
15891
16005
|
display: block !important;
|
|
15892
16006
|
min-width: 200px !important;
|
package/package.json
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adminlte/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "AdminLTE 4 React/Next.js component library",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"packageManager": "pnpm@10.33.2",
|
|
8
7
|
"main": "./dist/index.js",
|
|
9
8
|
"module": "./dist/index.js",
|
|
10
9
|
"types": "./dist/index.d.ts",
|
|
@@ -39,18 +38,6 @@
|
|
|
39
38
|
"bootstrap",
|
|
40
39
|
"components"
|
|
41
40
|
],
|
|
42
|
-
"scripts": {
|
|
43
|
-
"build": "tsup && npm run copy-css && npm run fix-dist",
|
|
44
|
-
"copy-css": "mkdir -p dist/css && cp node_modules/admin-lte/dist/css/adminlte.css dist/css/",
|
|
45
|
-
"fix-dist": "node fix-dist.js",
|
|
46
|
-
"dev": "tsup --watch",
|
|
47
|
-
"type-check": "tsc --noEmit",
|
|
48
|
-
"lint": "eslint src",
|
|
49
|
-
"demo": "pnpm --filter adminlte-react-demo dev",
|
|
50
|
-
"demo:build": "pnpm --filter adminlte-react-demo build",
|
|
51
|
-
"test": "vitest run",
|
|
52
|
-
"test:watch": "vitest"
|
|
53
|
-
},
|
|
54
41
|
"peerDependencies": {
|
|
55
42
|
"apexcharts": ">=4.0.0",
|
|
56
43
|
"flatpickr": ">=4.6.0",
|
|
@@ -96,7 +83,7 @@
|
|
|
96
83
|
"@types/react": "^19.2.18",
|
|
97
84
|
"@types/react-dom": "^19.2.4",
|
|
98
85
|
"@types/sortablejs": "^1.15.9",
|
|
99
|
-
"admin-lte": "^4.
|
|
86
|
+
"admin-lte": "^4.8.1",
|
|
100
87
|
"apexcharts": "^6.8.0",
|
|
101
88
|
"eslint": "^10.8.1",
|
|
102
89
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
@@ -113,5 +100,17 @@
|
|
|
113
100
|
"typescript": "^6.0.3",
|
|
114
101
|
"typescript-eslint": "^8.67.0",
|
|
115
102
|
"vitest": "^4.1.10"
|
|
103
|
+
},
|
|
104
|
+
"scripts": {
|
|
105
|
+
"build": "tsup && npm run copy-css && npm run fix-dist",
|
|
106
|
+
"copy-css": "mkdir -p dist/css && cp node_modules/admin-lte/dist/css/adminlte.css dist/css/",
|
|
107
|
+
"fix-dist": "node fix-dist.js",
|
|
108
|
+
"dev": "tsup --watch",
|
|
109
|
+
"type-check": "tsc --noEmit",
|
|
110
|
+
"lint": "eslint src",
|
|
111
|
+
"demo": "pnpm --filter adminlte-react-demo dev",
|
|
112
|
+
"demo:build": "pnpm --filter adminlte-react-demo build",
|
|
113
|
+
"test": "vitest run",
|
|
114
|
+
"test:watch": "vitest"
|
|
116
115
|
}
|
|
117
|
-
}
|
|
116
|
+
}
|