@shlinkio/shlink-frontend-kit 0.7.1 → 0.7.3

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/dist/index.css CHANGED
@@ -1 +1 @@
1
- @media (max-width: 991px){.responsive-table__header{display:none}}@media (max-width: 991px){.responsive-table.table>:not(:first-child){border:none}}@media (max-width: 991px){.responsive-table__row{display:block;border-bottom:1px solid var(--border-color);border-top:2px solid var(--border-color);position:relative}.responsive-table__row:not(:last-child){margin-bottom:10px}}.responsive-table__cell.responsive-table__cell{vertical-align:middle!important}@media (max-width: 991px){.responsive-table__cell.responsive-table__cell{display:block;width:100%;position:relative;padding:.5rem;font-size:.9rem}.responsive-table__cell.responsive-table__cell[data-th]:before{content:attr(data-th) ": ";font-weight:700}.responsive-table__cell.responsive-table__cell:last-child{position:absolute;top:3.5px;right:.5rem;width:auto;padding:0;border:none}}@media (max-width: 991px){.responsive-table__cell.responsive-table__cell .btn-sm{padding:.1rem .4rem;margin-top:.16rem}}html:not([data-theme=dark]){--color-scheme: initial;--primary-color: #ffffff;--primary-color-alfa: rgba(255, 255, 255, .5);--secondary-color: #f5f6fe;--text-color: #232323;--border-color: rgba(0, 0, 0, .125);--active-color: #eeeeee;--brand-color: #4696e5;--input-color: #ffffff;--input-disabled-color: #f5f6fe;--input-border-color: rgba(0, 0, 0, .19);--input-text-color: #495057;--table-border-color: #dee2e6;--table-highlight-color: rgba(0, 0, 0, .075);--btn-close-filter: initial}html[data-theme=dark]{--color-scheme: dark;--primary-color: #161b22;--primary-color-alfa: rgba(22, 27, 34, .8);--secondary-color: #0f131a;--text-color: rgb(201, 209, 217);--border-color: rgba(255, 255, 255, .15);--active-color: #0f131a;--brand-color: #0b2d4e;--input-color: rgb(17.9928571429, 22.0821428571, 27.8071428571);--input-disabled-color: rgb(26.0071428571, 31.9178571429, 40.1928571429);--input-border-color: rgba(255, 255, 255, .15);--input-text-color: rgb(201, 209, 217);--table-border-color: #393d43;--table-highlight-color: rgba(255, 255, 255, .15);--btn-close-filter: invert(1)}:root{scroll-behavior:auto;color-scheme:var(--color-scheme)}html,body,#root{height:100%;background:var(--secondary-color);color:var(--text-color)}a,.btn-link{text-decoration:none}a:not(.nav-link):not(.navbar-brand):not(.page-link):not(.highlight-card):not(.btn):not(.dropdown-item):hover,.btn-link:hover{text-decoration:underline}.bg-main{background-color:#4696e5!important}.bg-warning{color:#232323}.card-body,.card-header,.list-group-item{background-color:transparent}.card-footer{background-color:var(--primary-color-alfa)}.card.card{box-shadow:0 .125rem .25rem #00000013;background-color:var(--primary-color);border-color:var(--border-color)}.list-group,.modal-content,.page-link,.page-item.disabled .page-link,.dropdown-menu{background-color:var(--primary-color)}.modal-header.modal-header,.modal-footer.modal-footer,.card-header.card-header,.card-footer.card-footer,.table.table thead th,.table.table th,.table.table td,.page-link.page-link,.page-link.page-link:hover,.page-item.page-item.disabled .page-link.page-link,.dropdown-divider.dropdown-divider,.dropdown-menu.dropdown-menu,.list-group-item.list-group-item,.modal-content.modal-content,hr{border-color:var(--border-color)}.table-bordered,.table-bordered thead th,.table-bordered thead td{border-color:var(--table-border-color)}.page-link:hover,.page-link:focus{background-color:var(--secondary-color)}.page-item.active .page-link{background-color:var(--brand-color);border-color:var(--brand-color)}.pagination .page-link{cursor:pointer}@media (min-width: 1200px){.container-xl{max-width:1320px}}@media (max-width: 767px){.container-xl{padding-right:0;padding-left:0}}.btn-block{display:block;width:100%}.btn-primary,.btn-primary:hover,.btn-primary:disabled,.btn-primary:active,.btn-primary:focus-visible,.btn-primary.active,.btn-outline-primary:hover,.btn-outline-primary:active.btn-outline-primary:active,.btn-outline-primary:focus-visible.btn-outline-primary:focus-visible,.btn-outline-primary.active.btn-outline-primary.active{color:#fff}.dropdown-item,.dropdown-item-text{color:var(--text-color)}.dropdown-item:not(:disabled){cursor:pointer}.dropdown-item:focus:not(:disabled),.dropdown-item:hover:not(:disabled),.dropdown-item.active:not(:disabled),.dropdown-item:active:not(:disabled){background-color:var(--active-color)!important;color:var(--text-color)!important}.dropdown-item--danger.dropdown-item--danger{color:#dc3545}.dropdown-item--danger.dropdown-item--danger:hover,.dropdown-item--danger.dropdown-item--danger:active,.dropdown-item--danger.dropdown-item--danger.active{color:#dc3545!important}.badge-main{color:#fff;background-color:var(--brand-color)}.close,.close:hover,.table,.table-hover>tbody>tr:hover>*,.table-hover>tbody>tr>*{color:var(--text-color)}.btn-close{filter:var(--btn-close-filter)}.table-hover tbody tr:hover{background-color:var(--secondary-color)}.form-control.form-control,.form-control.form-control:focus,.form-select.form-select,.form-select.form-select:focus{background-color:var(--primary-color);border-color:var(--input-border-color);color:var(--input-text-color)}.form-control.disabled,.form-control:disabled,.form-select.disabled,.form-select:disabled{background-color:var(--input-disabled-color);cursor:not-allowed}.card .form-control:not(:disabled),.card .form-control:not(:disabled):hover,.card .form-select:not(:disabled),.card .form-select:not(:disabled):hover,.modal .form-control:not(:disabled),.modal .form-control:not(:disabled):hover,.modal .form-select:not(:disabled),.modal .form-select:not(:disabled):hover{background-color:var(--input-color)}.card input[type=text]:not(:disabled),.dropdown input[type=text]:not(:disabled){background-color:var(--input-color)!important}.card input[type=date]:not(:disabled),.dropdown input[type=date]:not(:disabled){background-color:var(--input-color)!important}.card input[type=datetime-local]:not(:disabled),.dropdown input[type=datetime-local]:not(:disabled){background-color:var(--input-color)!important}.card input[type=password]:not(:disabled),.dropdown input[type=password]:not(:disabled){background-color:var(--input-color)!important}.card input[type=number]:not(:disabled),.dropdown input[type=number]:not(:disabled){background-color:var(--input-color)!important}.card input[type=email]:not(:disabled),.dropdown input[type=email]:not(:disabled){background-color:var(--input-color)!important}.card input[type=search]:not(:disabled),.dropdown input[type=search]:not(:disabled){background-color:var(--input-color)!important}.card input[type=url]:not(:disabled),.dropdown input[type=url]:not(:disabled){background-color:var(--input-color)!important}.input-group-text.input-group-text{border-color:var(--input-border-color)}.dropdown label{color:var(--text-color)!important}.table-active,.table-active>th,.table-active>td{background-color:var(--table-highlight-color)!important}@media (max-width: 767px){.navbar-brand{margin:0 auto!important}}.indivisible{white-space:nowrap}.pointer{cursor:pointer}.progress-bar{background-color:#4696e5}@media (max-width: 575px){.btn-xs-block{width:100%;display:block}}@media (max-width: 991px){.btn-md-block{width:100%;display:block}}@media (max-width: 767px){.btn-sm-block{width:100%;display:block}}.search-field{position:relative}.search-field:focus-within{z-index:1}.search-field__input.search-field__input{padding-left:40px;padding-right:40px}.search-field__input--no-border.search-field__input--no-border{border:none;border-radius:0}.search-field__icon{position:absolute;top:50%;transform:translateY(-50%);left:15px;color:#6c757d}.search-field__close{position:absolute;top:50%;transform:translateY(-50%);right:10px;cursor:pointer}.dropdown-btn__toggle.dropdown-btn__toggle{text-align:left}.dropdown-btn__toggle.dropdown-btn__toggle--with-caret{padding-right:1.75rem}.dropdown-btn__toggle.dropdown-btn__toggle,.dropdown-btn__toggle.dropdown-btn__toggle:not(:disabled):not(.disabled).active,.dropdown-btn__toggle.dropdown-btn__toggle:not(:disabled):not(.disabled):active,.dropdown-btn__toggle.dropdown-btn__toggle:not(:disabled):not(.disabled):focus,.dropdown-btn__toggle.dropdown-btn__toggle:not(:disabled):not(.disabled):hover,.show>.dropdown-btn__toggle.dropdown-btn__toggle.dropdown-toggle{color:var(--input-text-color);background-color:var(--primary-color);border-color:var(--input-border-color)}.card .dropdown-btn__toggle.dropdown-btn__toggle,.card .dropdown-btn__toggle.dropdown-btn__toggle:not(:disabled):not(.disabled).active,.card .dropdown-btn__toggle.dropdown-btn__toggle:not(:disabled):not(.disabled):active,.card .dropdown-btn__toggle.dropdown-btn__toggle:not(:disabled):not(.disabled):focus,.card .dropdown-btn__toggle.dropdown-btn__toggle:not(:disabled):not(.disabled):hover,.show>.card .dropdown-btn__toggle.dropdown-btn__toggle.dropdown-toggle{background-color:var(--input-color)}.dropdown-btn__toggle.dropdown-btn__toggle.disabled,.dropdown-btn__toggle.dropdown-btn__toggle:disabled{background-color:var(--input-disabled-color)}.dropdown-btn__toggle.dropdown-btn__toggle:after{position:absolute;top:50%;transform:translateY(-50%);right:.75rem}.nav-pills__nav{position:sticky!important;top:55px;z-index:2}.nav-pills__nav-link.nav-pills__nav-link{border-radius:0!important;padding-bottom:calc(.5rem - 3px)!important;border-bottom:3px solid transparent!important;color:#5d6778;font-weight:700;cursor:pointer;text-decoration:none}@media (min-width: 576px) and (max-width: 991px){.nav-pills__nav-link.nav-pills__nav-link{font-size:89%}}.nav-pills__nav-link:hover{color:#4696e5!important}.nav-pills__nav-link.active{border-color:#4696e5!important;background-color:var(--primary-color)!important;color:#4696e5!important}.ordering-dropdown__menu--link.ordering-dropdown__menu--link{min-width:11rem}.ordering-dropdown__sort-icon{margin:3.5px 0 0;float:right}
1
+ @media (max-width: 991px){.responsive-table__header{display:none}}@media (max-width: 991px){.responsive-table.table>:not(:first-child){border:none}}@media (max-width: 991px){.responsive-table__row{display:block;border-bottom:1px solid var(--border-color);border-top:2px solid var(--border-color);position:relative}.responsive-table__row:not(:last-child){margin-bottom:10px}}.responsive-table__cell.responsive-table__cell{vertical-align:middle!important}@media (max-width: 991px){.responsive-table__cell.responsive-table__cell{display:block;width:100%;position:relative;padding:.5rem;font-size:.9rem}.responsive-table__cell.responsive-table__cell[data-th]:before{content:attr(data-th) ": ";font-weight:700}.responsive-table__cell.responsive-table__cell:last-child{position:absolute;top:3.5px;right:.5rem;width:auto;padding:0;border:none}}@media (max-width: 991px){.responsive-table__cell.responsive-table__cell .btn-sm{padding:.1rem .4rem;margin-top:.16rem}}html:not([data-theme=dark]){--color-scheme: initial;--primary-color: #ffffff;--primary-color-alfa: rgba(255, 255, 255, .5);--secondary-color: #f5f6fe;--text-color: #232323;--border-color: rgba(0, 0, 0, .125);--active-color: #eeeeee;--brand-color: #4696e5;--input-color: #ffffff;--input-disabled-color: #f5f6fe;--input-border-color: rgba(0, 0, 0, .19);--input-text-color: #495057;--table-border-color: #dee2e6;--table-highlight-color: rgba(0, 0, 0, .075);--btn-close-filter: initial}html[data-theme=dark]{--color-scheme: dark;--primary-color: #161b22;--primary-color-alfa: rgba(22, 27, 34, .8);--secondary-color: #0f131a;--text-color: rgb(201, 209, 217);--border-color: rgba(255, 255, 255, .15);--active-color: #0f131a;--brand-color: #0b2d4e;--input-color: rgb(17.9928571429, 22.0821428571, 27.8071428571);--input-disabled-color: rgb(26.0071428571, 31.9178571429, 40.1928571429);--input-border-color: rgba(255, 255, 255, .15);--input-text-color: rgb(201, 209, 217);--table-border-color: #393d43;--table-highlight-color: rgba(255, 255, 255, .15);--btn-close-filter: invert(1)}:root{scroll-behavior:auto;color-scheme:var(--color-scheme)}html,body,#root{height:100%;background:var(--secondary-color);color:var(--text-color)}a,.btn-link{text-decoration:none}a:not(.nav-link):not(.navbar-brand):not(.page-link):not(.highlight-card):not(.btn):not(.dropdown-item):hover,.btn-link:hover{text-decoration:underline}.bg-main{background-color:#4696e5!important}.bg-warning{color:#232323}.card-body,.card-header,.list-group-item{background-color:transparent}.card-footer{background-color:var(--primary-color-alfa)}.card.card{box-shadow:0 .125rem .25rem #00000013;background-color:var(--primary-color);border-color:var(--border-color)}.list-group,.modal-content,.page-link,.page-item.disabled .page-link,.dropdown-menu{background-color:var(--primary-color)}.modal-header.modal-header,.modal-footer.modal-footer,.card-header.card-header,.card-footer.card-footer,.table.table thead th,.table.table th,.table.table td,.page-link.page-link,.page-link.page-link:hover,.page-item.page-item.disabled .page-link.page-link,.dropdown-divider.dropdown-divider,.dropdown-menu.dropdown-menu,.list-group-item.list-group-item,.modal-content.modal-content,hr{border-color:var(--border-color)}.table-bordered,.table-bordered thead th,.table-bordered thead td{border-color:var(--table-border-color)}.page-link:hover,.page-link:focus{background-color:var(--secondary-color)}.page-item.active .page-link{background-color:var(--brand-color);border-color:var(--brand-color)}.pagination .page-link{cursor:pointer}@media (min-width: 1200px){.container-xl{max-width:1320px}}@media (max-width: 767px){.container-xl{padding-right:0;padding-left:0}}.btn-block{display:block;width:100%}.btn-primary,.btn-primary:hover,.btn-primary:disabled,.btn-primary:active,.btn-primary:focus-visible,.btn-primary.active,.btn-outline-primary:hover,.btn-outline-primary:active.btn-outline-primary:active,.btn-outline-primary:focus-visible.btn-outline-primary:focus-visible,.btn-outline-primary.active.btn-outline-primary.active{color:#fff}.dropdown-item,.dropdown-item-text{color:var(--text-color)}.dropdown-item:not(:disabled){cursor:pointer}.dropdown-item:focus:not(:disabled),.dropdown-item:hover:not(:disabled),.dropdown-item.active:not(:disabled),.dropdown-item:active:not(:disabled){background-color:var(--active-color)!important;color:var(--text-color)!important}.dropdown-item--danger.dropdown-item--danger{color:#dc3545}.dropdown-item--danger.dropdown-item--danger:hover,.dropdown-item--danger.dropdown-item--danger:active,.dropdown-item--danger.dropdown-item--danger.active{color:#dc3545!important}.badge-main{color:#fff;background-color:var(--brand-color)}.close,.close:hover,.table,.table-hover>tbody>tr:hover>*,.table-hover>tbody>tr>*{color:var(--text-color)}.btn-close{filter:var(--btn-close-filter)}.table-hover tbody tr:hover{background-color:var(--secondary-color)}.form-control.form-control,.form-control.form-control:focus,.form-select.form-select,.form-select.form-select:focus{background-color:var(--primary-color);border-color:var(--input-border-color);color:var(--input-text-color)}.form-control.disabled,.form-control:disabled,.form-select.disabled,.form-select:disabled{background-color:var(--input-disabled-color);cursor:not-allowed}.card .form-control:not(:disabled),.card .form-control:not(:disabled):hover,.card .form-select:not(:disabled),.card .form-select:not(:disabled):hover,.modal .form-control:not(:disabled),.modal .form-control:not(:disabled):hover,.modal .form-select:not(:disabled),.modal .form-select:not(:disabled):hover{background-color:var(--input-color)}.card input[type=text]:not(:disabled),.dropdown input[type=text]:not(:disabled){background-color:var(--input-color)!important}.card input[type=date]:not(:disabled),.dropdown input[type=date]:not(:disabled){background-color:var(--input-color)!important}.card input[type=datetime-local]:not(:disabled),.dropdown input[type=datetime-local]:not(:disabled){background-color:var(--input-color)!important}.card input[type=password]:not(:disabled),.dropdown input[type=password]:not(:disabled){background-color:var(--input-color)!important}.card input[type=number]:not(:disabled),.dropdown input[type=number]:not(:disabled){background-color:var(--input-color)!important}.card input[type=email]:not(:disabled),.dropdown input[type=email]:not(:disabled){background-color:var(--input-color)!important}.card input[type=search]:not(:disabled),.dropdown input[type=search]:not(:disabled){background-color:var(--input-color)!important}.card input[type=url]:not(:disabled),.dropdown input[type=url]:not(:disabled){background-color:var(--input-color)!important}.input-group-text.input-group-text{border-color:var(--input-border-color)}.dropdown label{color:var(--text-color)!important}.table-active,.table-active>th,.table-active>td{background-color:var(--table-highlight-color)!important}@media (max-width: 767px){.navbar-brand{margin:0 auto!important}}.indivisible{white-space:nowrap}.pointer{cursor:pointer}.progress-bar{background-color:#4696e5}@media (max-width: 575px){.btn-xs-block{width:100%;display:block}}@media (max-width: 991px){.btn-md-block{width:100%;display:block}}@media (max-width: 767px){.btn-sm-block{width:100%;display:block}}.search-field{position:relative}.search-field:focus-within{z-index:1}.search-field__input.search-field__input{padding-left:40px;padding-right:40px}.search-field__input--no-border.search-field__input--no-border{border:none;border-radius:0}.search-field__icon{position:absolute;top:50%;transform:translateY(-50%);left:15px;color:#6c757d}.search-field__close{position:absolute;top:50%;transform:translateY(-50%);right:10px;cursor:pointer}.dropdown-btn__toggle.dropdown-btn__toggle{text-align:left}.dropdown-btn__toggle.dropdown-btn__toggle--with-caret{padding-right:1.75rem}.dropdown-btn__toggle.dropdown-btn__toggle,.dropdown-btn__toggle.dropdown-btn__toggle:not(:disabled):not(.disabled).active,.dropdown-btn__toggle.dropdown-btn__toggle:not(:disabled):not(.disabled):active,.dropdown-btn__toggle.dropdown-btn__toggle:not(:disabled):not(.disabled):focus,.dropdown-btn__toggle.dropdown-btn__toggle:not(:disabled):not(.disabled):hover,.show>.dropdown-btn__toggle.dropdown-btn__toggle.dropdown-toggle{color:var(--input-text-color);background-color:var(--primary-color);border-color:var(--input-border-color)}.card .dropdown-btn__toggle.dropdown-btn__toggle,.card .dropdown-btn__toggle.dropdown-btn__toggle:not(:disabled):not(.disabled).active,.card .dropdown-btn__toggle.dropdown-btn__toggle:not(:disabled):not(.disabled):active,.card .dropdown-btn__toggle.dropdown-btn__toggle:not(:disabled):not(.disabled):focus,.card .dropdown-btn__toggle.dropdown-btn__toggle:not(:disabled):not(.disabled):hover,.show>.card .dropdown-btn__toggle.dropdown-btn__toggle.dropdown-toggle{background-color:var(--input-color)}.dropdown-btn__toggle.dropdown-btn__toggle.disabled,.dropdown-btn__toggle.dropdown-btn__toggle:disabled{background-color:var(--input-disabled-color)}.dropdown-btn__toggle.dropdown-btn__toggle:after{position:absolute;top:50%;transform:translateY(-50%);right:.75rem}.nav-pills__nav{position:sticky!important;top:55px;z-index:2}.nav-pills__nav-link.nav-pills__nav-link{border-radius:0!important;padding-bottom:calc(.5rem - 3px)!important;border-bottom:3px solid transparent!important;color:#5d6778;font-weight:700;cursor:pointer;text-decoration:none}@media (min-width: 576px) and (max-width: 991px){.nav-pills__nav-link.nav-pills__nav-link{font-size:89%}}.nav-pills__nav-link:hover{color:#4696e5!important}.nav-pills__nav-link.active{border-color:#4696e5!important;background-color:var(--primary-color)!important;color:#4696e5!important}
package/dist/index.d.ts CHANGED
@@ -18,7 +18,13 @@ export declare const changeThemeInMarkup: (theme: Theme) => void | undefined;
18
18
 
19
19
  export declare const Checkbox: FC<BooleanControlProps>;
20
20
 
21
- export declare const determineOrderDir: <T extends string = string>(currentField: T, newField?: T, currentOrderDir?: OrderDir) => OrderDir;
21
+ export declare function determineOrder<Fields extends string = string>(orderDirChange: OrderDirChange<Fields>): Order<Fields>;
22
+
23
+ export declare function determineOrder<Fields extends string = string>(currentField: Fields, newField?: Fields, currentOrderDir?: OrderDir): Order<Fields>;
24
+
25
+ export declare function determineOrderDir<Fields extends string = string>(orderDirChange: OrderDirChange<Fields>): OrderDir;
26
+
27
+ export declare function determineOrderDir<Fields extends string = string>(currentField: Fields, newField?: Fields, currentOrderDir?: OrderDir): OrderDir;
22
28
 
23
29
  export declare const DropdownBtn: FC<DropdownBtnProps>;
24
30
 
@@ -104,6 +110,12 @@ export declare type Order<Fields> = {
104
110
 
105
111
  export declare type OrderDir = 'ASC' | 'DESC' | undefined;
106
112
 
113
+ export declare type OrderDirChange<Fields extends string = string> = {
114
+ currentField: Fields;
115
+ newField?: Fields;
116
+ currentOrderDir?: OrderDir;
117
+ };
118
+
107
119
  export declare function OrderingDropdown<T extends string = string>({ items, order, onChange, isButton, right, prefixed }: OrderingDropdownProps<T>): JSX.Element;
108
120
 
109
121
  export declare type OrderingDropdownProps<T extends string = string> = {
@@ -115,6 +127,10 @@ export declare type OrderingDropdownProps<T extends string = string> = {
115
127
  prefixed?: boolean;
116
128
  };
117
129
 
130
+ /**
131
+ * Convert provided order object to string, with the pattern `${order.field}-${order.di}`.
132
+ * @return - A `string` if the `dir` prop is set, `undefined` otherwise.
133
+ */
118
134
  export declare const orderToString: <T>(order: Order<T>) => string | undefined;
119
135
 
120
136
  /**
package/dist/index.js CHANGED
@@ -1,97 +1,97 @@
1
- import { jsx as s, jsxs as d, Fragment as N } from "react/jsx-runtime";
2
- import { faCircleNotch as I, faSearch as y, faEllipsisV as D, faSortAmountUp as E, faSortAmountDown as P } from "@fortawesome/free-solid-svg-icons";
3
- import { FontAwesomeIcon as g } from "@fortawesome/react-fontawesome";
4
- import { clsx as h } from "clsx";
5
- import { Card as C, CardHeader as F, CardBody as H, Dropdown as M, DropdownToggle as v, DropdownMenu as O, NavItem as $, NavLink as G, Nav as U, UncontrolledDropdown as j, DropdownItem as w } from "reactstrap";
6
- import { useId as S, useState as b, useCallback as f, useRef as _, useMemo as q, Children as Q, isValidElement as V } from "react";
7
- import { useLocation as Y, NavLink as z } from "react-router";
8
- const ie = ({ className: r, children: e, loading: t = !1, type: n = "default", fullWidth: o = !1 }) => /* @__PURE__ */ s(
9
- C,
1
+ import { jsx as o, jsxs as d, Fragment as N } from "react/jsx-runtime";
2
+ import { faCircleNotch as I, faSearch as A, faEllipsisV as E, faSortAmountUp as F, faSortAmountDown as P } from "@fortawesome/free-solid-svg-icons";
3
+ import { FontAwesomeIcon as b } from "@fortawesome/react-fontawesome";
4
+ import { clsx as u } from "clsx";
5
+ import { Card as _, CardHeader as H, CardBody as M, Dropdown as $, DropdownToggle as k, DropdownMenu as S, NavItem as j, NavLink as G, Nav as U, UncontrolledDropdown as q, DropdownItem as g } from "reactstrap";
6
+ import { useId as T, useState as w, useRef as C, useCallback as f, useMemo as Q, Children as V, isValidElement as Y } from "react";
7
+ import { useLocation as W, NavLink as z } from "react-router";
8
+ const de = ({ className: e, children: r, loading: t = !1, type: n = "default", fullWidth: c = !1 }) => /* @__PURE__ */ o(
9
+ _,
10
10
  {
11
11
  body: !0,
12
- className: h(r, {
13
- "w-100": o,
14
- "w-75 mx-auto": !o,
12
+ className: u(e, {
13
+ "w-100": c,
14
+ "w-75 mx-auto": !c,
15
15
  "border-danger": n === "error"
16
16
  }),
17
17
  children: /* @__PURE__ */ d(
18
18
  "h3",
19
19
  {
20
- className: h("text-center mb-0", {
20
+ className: u("text-center mb-0", {
21
21
  "text-muted": n === "default",
22
22
  "text-danger": n === "error"
23
23
  }),
24
24
  children: [
25
- t && /* @__PURE__ */ s(g, { icon: I, spin: !0 }),
26
- t && /* @__PURE__ */ s("span", { className: "ms-2", children: e ?? "Loading..." }),
27
- !t && e
25
+ t && /* @__PURE__ */ o(b, { icon: I, spin: !0 }),
26
+ t && /* @__PURE__ */ o("span", { className: "ms-2", children: r ?? "Loading..." }),
27
+ !t && r
28
28
  ]
29
29
  }
30
30
  )
31
31
  }
32
- ), J = ({ title: r, children: e, bodyClassName: t, ...n }) => /* @__PURE__ */ d(C, { ...n, children: [
33
- r && /* @__PURE__ */ s(F, { role: "heading", "aria-level": 4, children: r }),
34
- /* @__PURE__ */ s(H, { className: t, children: e })
35
- ] }), de = ({ children: r, type: e, className: t, small: n = !1 }) => /* @__PURE__ */ s(
32
+ ), J = ({ title: e, children: r, bodyClassName: t, ...n }) => /* @__PURE__ */ d(_, { ...n, children: [
33
+ e && /* @__PURE__ */ o(H, { role: "heading", "aria-level": 4, children: e }),
34
+ /* @__PURE__ */ o(M, { className: t, children: r })
35
+ ] }), me = ({ children: e, type: r, className: t, small: n = !1 }) => /* @__PURE__ */ o(
36
36
  J,
37
37
  {
38
38
  role: "document",
39
- className: h("text-center", {
39
+ className: u("text-center", {
40
40
  "w-75 mx-auto": !n,
41
41
  "w-100": n,
42
- "bg-main": e === "success",
43
- "bg-danger": e === "error",
44
- "bg-warning": e === "warning",
45
- "text-white": e !== "warning"
42
+ "bg-main": r === "success",
43
+ "bg-danger": r === "error",
44
+ "bg-warning": r === "warning",
45
+ "text-white": r !== "warning"
46
46
  }, t),
47
- bodyClassName: h({ "p-2": n }),
48
- children: r
47
+ bodyClassName: u({ "p-2": n }),
48
+ children: e
49
49
  }
50
- ), A = ({ checked: r = !1, onChange: e, className: t, children: n, type: o, inline: c = !1 }) => {
51
- const l = S(), a = (u) => e == null ? void 0 : e(u.target.checked, u), i = {
52
- "form-switch": o === "switch",
53
- "form-checkbox": o === "checkbox"
54
- }, m = c ? { display: "inline-block" } : {};
55
- return /* @__PURE__ */ d("span", { className: h("form-check", i, t), style: m, children: [
56
- /* @__PURE__ */ s("input", { type: "checkbox", className: "form-check-input", id: l, checked: r, onChange: a }),
57
- /* @__PURE__ */ s("label", { className: "form-check-label", htmlFor: l, children: n })
50
+ ), x = ({ checked: e = !1, onChange: r, className: t, children: n, type: c, inline: s = !1 }) => {
51
+ const l = T(), a = (h) => r == null ? void 0 : r(h.target.checked, h), i = {
52
+ "form-switch": c === "switch",
53
+ "form-checkbox": c === "checkbox"
54
+ }, m = s ? { display: "inline-block" } : {};
55
+ return /* @__PURE__ */ d("span", { className: u("form-check", i, t), style: m, children: [
56
+ /* @__PURE__ */ o("input", { type: "checkbox", className: "form-check-input", id: l, checked: e, onChange: a }),
57
+ /* @__PURE__ */ o("label", { className: "form-check-label", htmlFor: l, children: n })
58
58
  ] });
59
- }, me = (r) => /* @__PURE__ */ s(A, { type: "checkbox", ...r }), he = (r) => /* @__PURE__ */ s(A, { type: "switch", ...r }), W = ({ children: r, label: e, className: t = "", labelClassName: n = "", noMargin: o = !1, id: c }) => /* @__PURE__ */ d("div", { className: `${t} ${o ? "" : "mb-3"}`, children: [
60
- /* @__PURE__ */ s("label", { className: `form-label ${n}`, htmlFor: c, children: e }),
61
- r
62
- ] }), ue = ({ children: r, value: e, onChange: t, type: n, required: o, placeholder: c, className: l, labelClassName: a }) => {
63
- const i = S();
64
- return /* @__PURE__ */ s(W, { label: /* @__PURE__ */ d(N, { children: [
65
- r,
59
+ }, ue = (e) => /* @__PURE__ */ o(x, { type: "checkbox", ...e }), he = (e) => /* @__PURE__ */ o(x, { type: "switch", ...e }), X = ({ children: e, label: r, className: t = "", labelClassName: n = "", noMargin: c = !1, id: s }) => /* @__PURE__ */ d("div", { className: `${t} ${c ? "" : "mb-3"}`, children: [
60
+ /* @__PURE__ */ o("label", { className: `form-label ${n}`, htmlFor: s, children: r }),
61
+ e
62
+ ] }), fe = ({ children: e, value: r, onChange: t, type: n, required: c, placeholder: s, className: l, labelClassName: a }) => {
63
+ const i = T();
64
+ return /* @__PURE__ */ o(X, { label: /* @__PURE__ */ d(N, { children: [
65
+ e,
66
66
  ":"
67
- ] }), className: l, labelClassName: a, id: i, children: /* @__PURE__ */ s(
67
+ ] }), className: l, labelClassName: a, id: i, children: /* @__PURE__ */ o(
68
68
  "input",
69
69
  {
70
70
  id: i,
71
71
  className: "form-control",
72
72
  type: n ?? "text",
73
- value: e,
74
- required: o ?? !0,
75
- placeholder: c,
73
+ value: r,
74
+ required: c ?? !0,
75
+ placeholder: s,
76
76
  onChange: (m) => t(m.target.value)
77
77
  }
78
78
  ) });
79
- }, X = 500;
79
+ }, Z = 500;
80
80
  let p;
81
- const k = () => {
81
+ const v = () => {
82
82
  p !== null && clearTimeout(p), p = null;
83
- }, fe = ({ onChange: r, className: e, large: t = !0, noBorder: n = !1, initialValue: o = "", setTimeout_: c = setTimeout }) => {
84
- const [l, a] = b(o), i = (m, u = X) => {
85
- a(m), k(), p = c(() => {
86
- r(m), k();
87
- }, u);
83
+ }, pe = ({ onChange: e, className: r, large: t = !0, noBorder: n = !1, initialValue: c = "", setTimeout_: s = setTimeout }) => {
84
+ const [l, a] = w(c), i = (m, h = Z) => {
85
+ a(m), v(), p = s(() => {
86
+ e(m), v();
87
+ }, h);
88
88
  };
89
- return /* @__PURE__ */ d("div", { className: h("search-field", e), children: [
90
- /* @__PURE__ */ s(
89
+ return /* @__PURE__ */ d("div", { className: u("search-field", r), children: [
90
+ /* @__PURE__ */ o(
91
91
  "input",
92
92
  {
93
93
  type: "text",
94
- className: h("form-control search-field__input", {
94
+ className: u("form-control search-field__input", {
95
95
  "form-control-lg": t,
96
96
  "search-field__input--no-border": n
97
97
  }),
@@ -100,8 +100,8 @@ const k = () => {
100
100
  onChange: (m) => i(m.target.value)
101
101
  }
102
102
  ),
103
- /* @__PURE__ */ s(g, { icon: y, className: "search-field__icon" }),
104
- /* @__PURE__ */ s(
103
+ /* @__PURE__ */ o(b, { icon: A, className: "search-field__icon" }),
104
+ /* @__PURE__ */ o(
105
105
  "button",
106
106
  {
107
107
  "aria-label": "Clear search",
@@ -113,170 +113,177 @@ const k = () => {
113
113
  }
114
114
  )
115
115
  ] });
116
- }, Z = (r) => {
117
- const e = new URLSearchParams(r), t = {};
118
- return e.forEach((n, o) => {
119
- if (o.endsWith("[]")) {
120
- const c = o.slice(0, -2);
121
- t[c] ?? (t[c] = []), t[c].push(n);
116
+ }, B = (e) => {
117
+ const r = new URLSearchParams(e), t = {};
118
+ return r.forEach((n, c) => {
119
+ if (c.endsWith("[]")) {
120
+ const s = c.slice(0, -2);
121
+ t[s] ?? (t[s] = []), t[s].push(n);
122
122
  } else
123
- t[o] = n;
123
+ t[c] = n;
124
124
  }), t;
125
- }, pe = (r) => {
126
- const e = new URLSearchParams();
127
- for (const [t, n] of Object.entries(r))
128
- n !== void 0 && (Array.isArray(n) ? n.forEach((o) => e.append(`${t}[]`, `${o}`)) : e.append(t, `${n}`));
129
- return e.toString();
130
- }, B = (r = !1) => {
131
- const [e, t] = b(r), n = f(() => t((l) => !l), []), o = f(() => t(!0), []), c = f(() => t(!1), []);
132
- return [e, n, o, c];
133
- }, ge = (r = !1, e = 2e3, t = window.setTimeout, n = window.clearTimeout) => {
134
- const [o, c] = b(r), l = _(r), a = _(void 0), i = f(() => {
135
- c(!l.current), a.current && n(a.current), a.current = t(() => c(l.current), e);
136
- }, [n, e, t]);
137
- return [o, i];
138
- }, be = () => _(null), we = () => {
139
- const { search: r } = Y();
140
- return q(() => Z(r), [r]);
141
- }, K = ({
142
- text: r,
143
- disabled: e = !1,
125
+ }, be = (e) => {
126
+ const r = new URLSearchParams();
127
+ for (const [t, n] of Object.entries(e))
128
+ n !== void 0 && (Array.isArray(n) ? n.forEach((c) => r.append(`${t}[]`, `${c}`)) : r.append(t, `${n}`));
129
+ return r.toString();
130
+ }, K = (e = !1) => {
131
+ const [r, t] = w(e), n = f(() => t((l) => !l), []), c = f(() => t(!0), []), s = f(() => t(!1), []);
132
+ return [r, n, c, s];
133
+ }, we = (e = !1, r = 2e3, t = window.setTimeout, n = window.clearTimeout) => {
134
+ const [c, s] = w(e), l = C(e), a = C(void 0), i = f(() => {
135
+ s(!l.current), a.current && n(a.current), a.current = t(() => s(l.current), r);
136
+ }, [n, r, t]);
137
+ return [c, i];
138
+ }, ge = () => C(null), Ne = () => {
139
+ const { search: e } = W();
140
+ return Q(() => B(e), [e]);
141
+ }, ee = ({
142
+ text: e,
143
+ disabled: r = !1,
144
144
  className: t,
145
145
  children: n,
146
- dropdownClassName: o,
147
- noCaret: c,
146
+ dropdownClassName: c,
147
+ noCaret: s,
148
148
  end: l = !1,
149
149
  minWidth: a,
150
150
  inline: i,
151
151
  size: m,
152
- ...u
152
+ ...h
153
153
  }) => {
154
- const [T, L] = B(), x = h("dropdown-btn__toggle", t, {
154
+ const [y, L] = K(), D = u("dropdown-btn__toggle", t, {
155
155
  "btn-block": !i,
156
- "dropdown-btn__toggle--with-caret": !c
156
+ "dropdown-btn__toggle--with-caret": !s
157
157
  }), R = { minWidth: a && `${a}px` };
158
- return /* @__PURE__ */ d(M, { isOpen: T, toggle: L, disabled: e, className: o, children: [
159
- /* @__PURE__ */ s(v, { size: m, caret: !c, className: x, color: "primary", ...u, children: r }),
160
- /* @__PURE__ */ s(O, { className: "w-100", end: l, style: R, children: n })
158
+ return /* @__PURE__ */ d($, { isOpen: y, toggle: L, disabled: r, className: c, children: [
159
+ /* @__PURE__ */ o(k, { size: m, caret: !s, className: D, color: "primary", ...h, children: e }),
160
+ /* @__PURE__ */ o(S, { className: "w-100", end: l, style: R, children: n })
161
161
  ] });
162
- }, Ne = ({ children: r, minWidth: e, label: t = "Options" }) => /* @__PURE__ */ s(
163
- K,
162
+ }, Ce = ({ children: e, minWidth: r, label: t = "Options" }) => /* @__PURE__ */ o(
163
+ ee,
164
164
  {
165
- text: /* @__PURE__ */ s(g, { className: "px-1", icon: D }),
165
+ text: /* @__PURE__ */ o(b, { className: "px-1", icon: E }),
166
166
  "aria-label": t,
167
167
  size: "sm",
168
- minWidth: e,
168
+ minWidth: r,
169
169
  end: !0,
170
170
  noCaret: !0,
171
171
  inline: !0,
172
- children: r
172
+ children: e
173
173
  }
174
- ), ee = ({ children: r, ...e }) => /* @__PURE__ */ s($, { children: /* @__PURE__ */ s(G, { className: "nav-pills__nav-link", tag: z, ...e, children: r }) }), _e = ({ children: r, fill: e = !1, className: t = "" }) => /* @__PURE__ */ s(C, { className: `nav-pills__nav p-0 overflow-hidden ${t}`, body: !0, children: /* @__PURE__ */ s(U, { pills: !0, fill: e, children: Q.map(r, (n) => {
175
- if (!V(n) || n.type !== ee)
174
+ ), re = ({ children: e, ...r }) => /* @__PURE__ */ o(j, { children: /* @__PURE__ */ o(G, { className: "nav-pills__nav-link", tag: z, ...r, children: e }) }), _e = ({ children: e, fill: r = !1, className: t = "" }) => /* @__PURE__ */ o(_, { className: `nav-pills__nav p-0 overflow-hidden ${t}`, body: !0, children: /* @__PURE__ */ o(U, { pills: !0, fill: r, children: V.map(e, (n) => {
175
+ if (!Y(n) || n.type !== re)
176
176
  throw new Error("Only NavPillItem children are allowed inside NavPills.");
177
177
  return n;
178
- }) }) }), re = (r, e, t) => r !== e ? "ASC" : t ? {
179
- ASC: "DESC",
180
- DESC: void 0
181
- }[t] : "ASC", Ce = (r, { field: e, dir: t }) => !e || !t ? r : r.sort((n, o) => {
182
- const c = t === "ASC" ? 1 : -1, l = t === "ASC" ? -1 : 1;
183
- return n[e] > o[e] ? c : l;
184
- }), ke = (r) => r.dir ? `${r.field}-${r.dir}` : void 0, ve = (r) => {
185
- const [e, t] = r.split("-");
186
- return { field: e, dir: t };
187
- }, Oe = (r) => {
188
- const [e, t] = b(r), n = f((o, c) => t({ field: o, dir: c }), []);
189
- return [e, n];
178
+ }) }) });
179
+ function O(e, r, t) {
180
+ return typeof e == "object" ? O(e.currentField, e.newField, e.currentOrderDir) : e !== r ? "ASC" : t ? {
181
+ ASC: "DESC",
182
+ DESC: void 0
183
+ }[t] : "ASC";
184
+ }
185
+ function te(e, r, t) {
186
+ return typeof e == "object" ? te(e.currentField, e.newField, e.currentOrderDir) : {
187
+ field: r,
188
+ dir: O(e, r, t)
189
+ };
190
+ }
191
+ const Oe = (e, { field: r, dir: t }) => !r || !t ? e : e.sort((n, c) => {
192
+ const s = t === "ASC" ? 1 : -1, l = t === "ASC" ? -1 : 1;
193
+ return n[r] > c[r] ? s : l;
194
+ }), ve = (e) => e.dir ? `${e.field}-${e.dir}` : void 0, ke = (e) => {
195
+ const [r, t] = e.split("-");
196
+ return { field: r, dir: t };
197
+ }, Se = (e) => {
198
+ const [r, t] = w(e), n = f((c, s) => t({ field: c, dir: s }), []);
199
+ return [r, n];
190
200
  };
191
- function Se({ items: r, order: e, onChange: t, isButton: n = !0, right: o = !1, prefixed: c = !0 }) {
201
+ function Te({ items: e, order: r, onChange: t, isButton: n = !0, right: c = !1, prefixed: s = !0 }) {
192
202
  const l = (a) => () => {
193
- const i = re(a, e.field, e.dir);
203
+ const i = O(a, r.field, r.dir);
194
204
  t(i ? a : void 0, i);
195
205
  };
196
- return /* @__PURE__ */ d(j, { children: [
206
+ return /* @__PURE__ */ d(q, { children: [
197
207
  /* @__PURE__ */ d(
198
- v,
208
+ k,
199
209
  {
200
210
  caret: !0,
201
211
  color: n ? "primary" : "link",
202
- className: h({
212
+ className: u({
203
213
  "dropdown-btn__toggle btn-block pe-4 overflow-hidden": n,
204
214
  "btn-sm p-0": !n
205
215
  }),
206
216
  children: [
207
- !n && /* @__PURE__ */ s(N, { children: "Order by" }),
208
- n && !e.field && /* @__PURE__ */ s("i", { children: "Order by..." }),
209
- n && e.field && /* @__PURE__ */ d(N, { children: [
210
- c && "Order by: ",
211
- r[e.field],
217
+ !n && /* @__PURE__ */ o(N, { children: "Order by" }),
218
+ n && !r.field && /* @__PURE__ */ o("i", { children: "Order by..." }),
219
+ n && r.field && /* @__PURE__ */ d(N, { children: [
220
+ s && "Order by: ",
221
+ e[r.field],
212
222
  " - ",
213
- /* @__PURE__ */ s("small", { children: e.dir ?? "DESC" })
223
+ /* @__PURE__ */ o("small", { children: r.dir ?? "DESC" })
214
224
  ] })
215
225
  ]
216
226
  }
217
227
  ),
218
- /* @__PURE__ */ d(
219
- O,
220
- {
221
- end: o,
222
- className: h("w-100", { "ordering-dropdown__menu--link": !n }),
223
- children: [
224
- Object.entries(r).map(([a, i]) => /* @__PURE__ */ d(w, { active: e.field === a, onClick: l(a), children: [
228
+ /* @__PURE__ */ d(S, { end: c, className: "w-100", style: n ? void 0 : { minWidth: "11rem" }, children: [
229
+ Object.entries(e).map(([a, i]) => /* @__PURE__ */ d(
230
+ g,
231
+ {
232
+ active: r.field === a,
233
+ onClick: l(a),
234
+ className: "d-flex justify-content-between align-items-center",
235
+ children: [
225
236
  i,
226
- e.field === a && /* @__PURE__ */ s(
227
- g,
228
- {
229
- icon: e.dir === "ASC" ? E : P,
230
- className: "ordering-dropdown__sort-icon"
231
- }
232
- )
233
- ] }, a)),
234
- /* @__PURE__ */ s(w, { divider: !0 }),
235
- /* @__PURE__ */ s(w, { disabled: !e.field, onClick: () => t(), children: /* @__PURE__ */ s("i", { children: "Clear selection" }) })
236
- ]
237
- }
238
- )
237
+ r.field === a && /* @__PURE__ */ o(b, { icon: r.dir === "ASC" ? F : P })
238
+ ]
239
+ },
240
+ a
241
+ )),
242
+ /* @__PURE__ */ o(g, { divider: !0 }),
243
+ /* @__PURE__ */ o(g, { disabled: !r.field, onClick: () => t(), children: /* @__PURE__ */ o("i", { children: "Clear selection" }) })
244
+ ] })
239
245
  ] });
240
246
  }
241
- const Ae = "#4696e5", Te = "rgba(70, 150, 229, 0.4)", Le = "#f77f28", xe = "rgba(247, 127, 40, 0.4)", Re = "white", Ie = "#161b22", ye = (r) => {
242
- var e;
243
- return (e = document.querySelector("html")) == null ? void 0 : e.setAttribute("data-theme", r);
244
- }, De = () => {
247
+ const xe = "#4696e5", ye = "rgba(70, 150, 229, 0.4)", Le = "#f77f28", De = "rgba(247, 127, 40, 0.4)", Re = "white", Ie = "#161b22", Ae = (e) => {
245
248
  var r;
246
- return ((r = document.querySelector("html")) == null ? void 0 : r.getAttribute("data-theme")) === "dark";
247
- }, Ee = (r = window.matchMedia.bind(window)) => r("(prefers-color-scheme: dark)").matches ? "dark" : "light";
249
+ return (r = document.querySelector("html")) == null ? void 0 : r.setAttribute("data-theme", e);
250
+ }, Ee = () => {
251
+ var e;
252
+ return ((e = document.querySelector("html")) == null ? void 0 : e.getAttribute("data-theme")) === "dark";
253
+ }, Fe = (e = window.matchMedia.bind(window)) => e("(prefers-color-scheme: dark)").matches ? "dark" : "light";
248
254
  export {
249
- me as Checkbox,
250
- K as DropdownBtn,
255
+ ue as Checkbox,
256
+ ee as DropdownBtn,
251
257
  Le as HIGHLIGHTED_COLOR,
252
- xe as HIGHLIGHTED_COLOR_ALPHA,
253
- ue as InputFormGroup,
254
- W as LabeledFormGroup,
255
- Ae as MAIN_COLOR,
256
- Te as MAIN_COLOR_ALPHA,
257
- ie as Message,
258
- ee as NavPillItem,
258
+ De as HIGHLIGHTED_COLOR_ALPHA,
259
+ fe as InputFormGroup,
260
+ X as LabeledFormGroup,
261
+ xe as MAIN_COLOR,
262
+ ye as MAIN_COLOR_ALPHA,
263
+ de as Message,
264
+ re as NavPillItem,
259
265
  _e as NavPills,
260
- Se as OrderingDropdown,
266
+ Te as OrderingDropdown,
261
267
  Ie as PRIMARY_DARK_COLOR,
262
268
  Re as PRIMARY_LIGHT_COLOR,
263
- de as Result,
264
- Ne as RowDropdownBtn,
265
- fe as SearchField,
269
+ me as Result,
270
+ Ce as RowDropdownBtn,
271
+ pe as SearchField,
266
272
  J as SimpleCard,
267
273
  he as ToggleSwitch,
268
- ye as changeThemeInMarkup,
269
- re as determineOrderDir,
270
- Ee as getSystemPreferredTheme,
271
- De as isDarkThemeEnabled,
272
- ke as orderToString,
273
- Z as parseQueryString,
274
- Ce as sortList,
275
- ve as stringToOrder,
276
- pe as stringifyQueryParams,
277
- be as useElementRef,
278
- Oe as useOrder,
279
- we as useParsedQuery,
280
- ge as useTimeoutToggle,
281
- B as useToggle
274
+ Ae as changeThemeInMarkup,
275
+ te as determineOrder,
276
+ O as determineOrderDir,
277
+ Fe as getSystemPreferredTheme,
278
+ Ee as isDarkThemeEnabled,
279
+ ve as orderToString,
280
+ B as parseQueryString,
281
+ Oe as sortList,
282
+ ke as stringToOrder,
283
+ be as stringifyQueryParams,
284
+ ge as useElementRef,
285
+ Se as useOrder,
286
+ Ne as useParsedQuery,
287
+ we as useTimeoutToggle,
288
+ K as useToggle
282
289
  };
package/package.json CHANGED
@@ -36,34 +36,35 @@
36
36
  "reactstrap": "^9.2.0"
37
37
  },
38
38
  "devDependencies": {
39
- "@shlinkio/eslint-config-js-coding-standard": "~3.2.1",
39
+ "@shlinkio/eslint-config-js-coding-standard": "~3.4.0",
40
40
  "@shlinkio/stylelint-config-css-coding-standard": "~1.1.1",
41
- "@stylistic/eslint-plugin": "^2.12.1",
41
+ "@stylistic/eslint-plugin": "^4.1.0",
42
42
  "@testing-library/jest-dom": "^6.6.3",
43
- "@testing-library/react": "^16.1.0",
44
- "@testing-library/user-event": "^14.5.2",
43
+ "@testing-library/react": "^16.2.0",
44
+ "@testing-library/user-event": "^14.6.1",
45
45
  "@total-typescript/shoehorn": "^0.1.2",
46
- "@types/react": "^19.0.2",
47
- "@types/react-dom": "^19.0.2",
46
+ "@types/react": "^19.0.10",
47
+ "@types/react-dom": "^19.0.4",
48
48
  "@vitejs/plugin-react": "^4.3.4",
49
- "@vitest/coverage-v8": "^2.1.8",
49
+ "@vitest/coverage-v8": "^3.0.7",
50
50
  "axe-core": "^4.10.2",
51
51
  "bootstrap": "5.2.3",
52
- "eslint": "^9.17.0",
52
+ "eslint": "^9.21.0",
53
53
  "eslint-plugin-jsx-a11y": "^6.10.2",
54
- "eslint-plugin-react": "^7.37.3",
55
- "eslint-plugin-react-hooks": "^5.1.0",
54
+ "eslint-plugin-react": "^7.37.4",
55
+ "eslint-plugin-react-compiler": "^19.0.0-beta-40c6c23-20250301",
56
+ "eslint-plugin-react-hooks": "^5.2.0",
56
57
  "eslint-plugin-simple-import-sort": "^12.1.1",
57
58
  "history": "^5.3.0",
58
- "jsdom": "^25.0.1",
59
+ "jsdom": "^26.0.0",
59
60
  "resize-observer-polyfill": "^1.5.1",
60
- "sass": "^1.83.0",
61
+ "sass": "^1.85.1",
61
62
  "stylelint": "^15.11.0",
62
- "typescript": "^5.7.2",
63
- "typescript-eslint": "^8.18.2",
64
- "vite": "^6.0.6",
65
- "vite-plugin-dts": "^4.4.0",
66
- "vitest": "^2.0.2"
63
+ "typescript": "^5.7.3",
64
+ "typescript-eslint": "^8.25.0",
65
+ "vite": "^6.2.0",
66
+ "vite-plugin-dts": "^4.5.1",
67
+ "vitest": "^3.0.2"
67
68
  },
68
69
  "browserslist": [
69
70
  ">0.2%",
@@ -71,5 +72,5 @@
71
72
  "not ie <= 11",
72
73
  "not op_mini all"
73
74
  ],
74
- "version": "0.7.1"
75
+ "version": "0.7.3"
75
76
  }