react-bootstrap-plugins 2.4.2 → 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 +7 -2
- package/dist/ListGroup.cjs +2 -0
- package/dist/ListGroup.d.cts +56 -0
- package/dist/ListGroup.d.ts +56 -0
- package/dist/ListGroup.js +2 -0
- package/dist/chunk-3NEKISL5.js +2 -0
- package/dist/chunk-IMNWS57Y.cjs +2 -0
- package/dist/css/datepicker.css +1 -1
- package/dist/css/plugins.css +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -1
- package/docs/LISTGROUP.md +176 -0
- package/docs/superpowers/specs/2026-08-01-listgroup-plugin-design.md +117 -0
- package/package.json +13 -1
package/README.md
CHANGED
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
| **AutoTextarea** | [AUTOTEXTAREA.md](./docs/AUTOTEXTAREA.md) | Auto-resizing textarea — grows with content up to `maxRows`/`maxHeight`, then scrolls |
|
|
18
18
|
| **NavPills** | [NAVPILLS.md](./docs/NAVPILLS.md) | Horizontal nav-pills tab strip with icons, dismissible pills, and "New" badges |
|
|
19
19
|
| **InputCurrency** | [INPUTCURRENCY.md](./docs/INPUTCURRENCY.md) | Controlled currency input — numbers in/out, locale-formatted display, focus-based editing |
|
|
20
|
+
| **ListGroup** | [LISTGROUP.md](./docs/LISTGROUP.md) | Bootstrap list-group with active-state highlighting, icons, badges, and descriptions |
|
|
20
21
|
|
|
21
22
|
Each component guide includes full prop tables, usage examples, import patterns, and dark mode behavior.
|
|
22
23
|
|
|
@@ -114,6 +115,7 @@ import TableLoading from 'react-bootstrap-plugins/TableLoading'
|
|
|
114
115
|
import AutoTextarea from 'react-bootstrap-plugins/AutoTextarea'
|
|
115
116
|
import NavPills from 'react-bootstrap-plugins/NavPills'
|
|
116
117
|
import InputCurrency from 'react-bootstrap-plugins/InputCurrency'
|
|
118
|
+
import ListGroup from 'react-bootstrap-plugins/ListGroup'
|
|
117
119
|
|
|
118
120
|
// Single component — named import
|
|
119
121
|
import { DatePicker } from 'react-bootstrap-plugins/DatePicker'
|
|
@@ -123,9 +125,10 @@ import { TableLoading } from 'react-bootstrap-plugins/TableLoading'
|
|
|
123
125
|
import { AutoTextarea } from 'react-bootstrap-plugins/AutoTextarea'
|
|
124
126
|
import { NavPills } from 'react-bootstrap-plugins/NavPills'
|
|
125
127
|
import { InputCurrency } from 'react-bootstrap-plugins/InputCurrency'
|
|
128
|
+
import { ListGroup } from 'react-bootstrap-plugins/ListGroup'
|
|
126
129
|
|
|
127
130
|
// Multiple named — barrel, tree-shaken
|
|
128
|
-
import { DatePicker, SearchSelect, Label, TableLoading, AutoTextarea, NavPills, InputCurrency } from 'react-bootstrap-plugins'
|
|
131
|
+
import { DatePicker, SearchSelect, Label, TableLoading, AutoTextarea, NavPills, InputCurrency, ListGroup } from 'react-bootstrap-plugins'
|
|
129
132
|
|
|
130
133
|
// CSS (required for DatePicker and NavPills badges)
|
|
131
134
|
import 'react-bootstrap-plugins/css/plugins.css'
|
|
@@ -172,7 +175,8 @@ function App() {
|
|
|
172
175
|
| `AutoTextarea` | ~0.4 KB |
|
|
173
176
|
| `NavPills` | ~0.5 KB |
|
|
174
177
|
| `InputCurrency` | ~0.6 KB |
|
|
175
|
-
|
|
|
178
|
+
| `ListGroup` | ~0.6 KB |
|
|
179
|
+
| All eight (barrel) | ~8.8 KB |
|
|
176
180
|
|
|
177
181
|
Measured with ESM, tree-shaken, minified, gzipped. Your actual size depends on your bundler configuration.
|
|
178
182
|
|
|
@@ -230,6 +234,7 @@ src/
|
|
|
230
234
|
│ ├── AutoTextarea.jsx Auto-resizing textarea
|
|
231
235
|
│ ├── NavPills.jsx Horizontal pill tab strip
|
|
232
236
|
│ ├── InputCurrency.tsx Controlled currency input
|
|
237
|
+
│ ├── ListGroup.tsx List-group with icons, badges, descriptions
|
|
233
238
|
│ └── *.d.ts TypeScript declarations
|
|
234
239
|
└── css/
|
|
235
240
|
└── plugins.css
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var chunkIMNWS57Y_cjs=require('./chunk-IMNWS57Y.cjs');require('./chunk-NPQQDBFB.cjs');Object.defineProperty(exports,"ListGroup",{enumerable:true,get:function(){return chunkIMNWS57Y_cjs.a}});Object.defineProperty(exports,"default",{enumerable:true,get:function(){return chunkIMNWS57Y_cjs.b}});//# sourceMappingURL=ListGroup.cjs.map
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJMaXN0R3JvdXAuY2pzIn0=
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface ListGroupItem {
|
|
4
|
+
/** Unique item identifier — compared against `active` */
|
|
5
|
+
key: string | number;
|
|
6
|
+
/** Item label text */
|
|
7
|
+
label?: React.ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* Optional leading icon. A string is rendered as `<i className={icon} />`
|
|
10
|
+
* (pass the full icon class, e.g. `"fas fa-user"` or `"bi bi-person"`);
|
|
11
|
+
* a ReactNode (e.g. a Lucide element) is rendered as-is.
|
|
12
|
+
*/
|
|
13
|
+
icon?: string | React.ReactNode;
|
|
14
|
+
/** Subtitle/description text below the label row */
|
|
15
|
+
desc?: string;
|
|
16
|
+
/** Badge content on the right side — string/number get styled, ReactNode rendered as-is */
|
|
17
|
+
badge?: string | number | React.ReactNode;
|
|
18
|
+
/** Gray out the item and prevent click */
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
}
|
|
21
|
+
interface ListGroupProps {
|
|
22
|
+
/** Items to render */
|
|
23
|
+
items: ListGroupItem[];
|
|
24
|
+
/** Key of the currently active item */
|
|
25
|
+
active?: string | number;
|
|
26
|
+
/** Bootstrap color variant for active state highlighting (default: "primary") */
|
|
27
|
+
variant?: string;
|
|
28
|
+
/** Fired when an item is clicked (not fired for disabled items) */
|
|
29
|
+
onClick?: (item: ListGroupItem) => void;
|
|
30
|
+
/** Remove outer borders and rounded corners (Bootstrap `list-group-flush`) */
|
|
31
|
+
flush?: boolean;
|
|
32
|
+
/** Icon container width/height in pixels (default: 30) */
|
|
33
|
+
iconSize?: number;
|
|
34
|
+
/** Show the item `desc` as a native tooltip via the `title` attribute (default: true) */
|
|
35
|
+
showTooltip?: boolean;
|
|
36
|
+
/** Additional CSS classes on the outer wrapper */
|
|
37
|
+
className?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Bootstrap 5 list-group with active-state highlighting, icons, badges,
|
|
41
|
+
* and descriptions.
|
|
42
|
+
*
|
|
43
|
+
* ```jsx
|
|
44
|
+
* import ListGroup from 'react-bootstrap-plugins/ListGroup'
|
|
45
|
+
*
|
|
46
|
+
* const items = [
|
|
47
|
+
* { key: 'fees', label: 'Fee Structure', icon: 'fas fa-coins', desc: 'Define fee types' },
|
|
48
|
+
* { key: 'invoices', label: 'Invoices', icon: 'fas fa-file-invoice', badge: 3 },
|
|
49
|
+
* ]
|
|
50
|
+
*
|
|
51
|
+
* <ListGroup items={items} active={selected} variant="success" onClick={handleSelect} />
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
declare const ListGroup: React.ForwardRefExoticComponent<ListGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
55
|
+
|
|
56
|
+
export { ListGroup, type ListGroupItem, type ListGroupProps, ListGroup as default };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
interface ListGroupItem {
|
|
4
|
+
/** Unique item identifier — compared against `active` */
|
|
5
|
+
key: string | number;
|
|
6
|
+
/** Item label text */
|
|
7
|
+
label?: React.ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* Optional leading icon. A string is rendered as `<i className={icon} />`
|
|
10
|
+
* (pass the full icon class, e.g. `"fas fa-user"` or `"bi bi-person"`);
|
|
11
|
+
* a ReactNode (e.g. a Lucide element) is rendered as-is.
|
|
12
|
+
*/
|
|
13
|
+
icon?: string | React.ReactNode;
|
|
14
|
+
/** Subtitle/description text below the label row */
|
|
15
|
+
desc?: string;
|
|
16
|
+
/** Badge content on the right side — string/number get styled, ReactNode rendered as-is */
|
|
17
|
+
badge?: string | number | React.ReactNode;
|
|
18
|
+
/** Gray out the item and prevent click */
|
|
19
|
+
disabled?: boolean;
|
|
20
|
+
}
|
|
21
|
+
interface ListGroupProps {
|
|
22
|
+
/** Items to render */
|
|
23
|
+
items: ListGroupItem[];
|
|
24
|
+
/** Key of the currently active item */
|
|
25
|
+
active?: string | number;
|
|
26
|
+
/** Bootstrap color variant for active state highlighting (default: "primary") */
|
|
27
|
+
variant?: string;
|
|
28
|
+
/** Fired when an item is clicked (not fired for disabled items) */
|
|
29
|
+
onClick?: (item: ListGroupItem) => void;
|
|
30
|
+
/** Remove outer borders and rounded corners (Bootstrap `list-group-flush`) */
|
|
31
|
+
flush?: boolean;
|
|
32
|
+
/** Icon container width/height in pixels (default: 30) */
|
|
33
|
+
iconSize?: number;
|
|
34
|
+
/** Show the item `desc` as a native tooltip via the `title` attribute (default: true) */
|
|
35
|
+
showTooltip?: boolean;
|
|
36
|
+
/** Additional CSS classes on the outer wrapper */
|
|
37
|
+
className?: string;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Bootstrap 5 list-group with active-state highlighting, icons, badges,
|
|
41
|
+
* and descriptions.
|
|
42
|
+
*
|
|
43
|
+
* ```jsx
|
|
44
|
+
* import ListGroup from 'react-bootstrap-plugins/ListGroup'
|
|
45
|
+
*
|
|
46
|
+
* const items = [
|
|
47
|
+
* { key: 'fees', label: 'Fee Structure', icon: 'fas fa-coins', desc: 'Define fee types' },
|
|
48
|
+
* { key: 'invoices', label: 'Invoices', icon: 'fas fa-file-invoice', badge: 3 },
|
|
49
|
+
* ]
|
|
50
|
+
*
|
|
51
|
+
* <ListGroup items={items} active={selected} variant="success" onClick={handleSelect} />
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
declare const ListGroup: React.ForwardRefExoticComponent<ListGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
55
|
+
|
|
56
|
+
export { ListGroup, type ListGroupItem, type ListGroupProps, ListGroup as default };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export{a as ListGroup,b as default}from'./chunk-3NEKISL5.js';import'./chunk-RR7TBRGI.js';//# sourceMappingURL=ListGroup.js.map
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJMaXN0R3JvdXAuanMifQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {a}from'./chunk-RR7TBRGI.js';import*as d from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var N=(e,o,s)=>{if(!e)return null;let r=s?`text-${o}`:"text-primary";return typeof e=="string"?jsx("i",{className:a(e,r)}):jsx("span",{className:a("d-inline-flex align-middle",r),children:e})},x=(e,o,s)=>{if(e==null)return null;let r=s?o:"primary";return typeof e=="string"||typeof e=="number"?jsx("span",{style:{width:20,height:20},className:`bg-opacity-25 bg-${r} d-flex justify-content-center align-items-center fw-bolder rounded text-${r}`,children:e}):jsx(Fragment,{children:e})},u=d.forwardRef(({items:e=[],active:o,variant:s="primary",onClick:r,flush:m=false,iconSize:p=30,showTooltip:f=true,className:g},b)=>jsx("div",{ref:b,className:a("list-group",m&&"list-group-flush",g),children:e.map(t=>{let a$1=t.key===o,l=t.disabled;return jsxs("button",{type:"button",title:f?t.desc:void 0,className:a("list-group-item list-group-item-action border-0 px-3 py-2",a$1&&"active shadow-sm",l&&"disabled"),disabled:l,onClick:y=>{y.stopPropagation(),l||r?.(t);},"aria-current":a$1?"true":void 0,children:[jsxs("div",{className:"d-flex justify-content-between align-items-center",children:[jsxs("p",{className:"d-flex align-items-center mb-0 gap-2",children:[t.icon&&jsx("span",{style:{width:p,height:p},className:a("rounded d-flex align-items-center justify-content-center",a$1?`bg-${s} bg-opacity-25`:"bg-primary bg-opacity-10"),children:N(t.icon,s,a$1)}),jsx("span",{className:a("fw-medium",a$1&&`text-${s}`),children:t.label})]}),x(t.badge,s,a$1)]}),t.desc&&jsx("p",{style:{fontSize:10},className:"text-muted my-0 text-truncate",children:t.desc})]},t.key)})}));u.displayName="ListGroup";var L=u;export{u as a,L as b};//# sourceMappingURL=chunk-3NEKISL5.js.map
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb25lbnRzL0xpc3RHcm91cC50c3giXSwibmFtZXMiOlsicmVuZGVySWNvbiIsImljb24iLCJ2YXJpYW50IiwiaXNBY3RpdmUiLCJ0ZXh0Q2xhc3MiLCJqc3giLCJjbiIsInJlbmRlckJhZGdlIiwiYmFkZ2UiLCJ2IiwiRnJhZ21lbnQiLCJMaXN0R3JvdXAiLCJpdGVtcyIsImFjdGl2ZSIsIm9uQ2xpY2siLCJmbHVzaCIsImljb25TaXplIiwic2hvd1Rvb2x0aXAiLCJjbGFzc05hbWUiLCJyZWYiLCJpdGVtIiwiaXNEaXNhYmxlZCIsImpzeHMiLCJldmVudCIsIkxpc3RHcm91cF9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOEdBaURBLElBQU1BLENBQUFBLENBQWEsQ0FBQ0MsQ0FBQUEsQ0FBNkJDLENBQUFBLENBQWlCQyxDQUFBQSxHQUF1QyxDQUN2RyxHQUFJLENBQUNGLENBQUFBLENBQU0sT0FBTyxJQUFBLENBQ2xCLElBQU1HLENBQUFBLENBQVlELENBQUFBLENBQVcsQ0FBQSxLQUFBLEVBQVFELENBQU8sQ0FBQSxDQUFBLENBQUssY0FBQSxDQUNqRCxPQUFJLE9BQU9ELENBQUFBLEVBQVMsUUFBQSxDQUFpQkksR0FBQUEsQ0FBQyxHQUFBLENBQUEsQ0FBRSxTQUFBLENBQVdDLENBQUFBLENBQUdMLENBQUFBLENBQU1HLENBQVMsQ0FBQSxDQUFHLENBQUEsQ0FDakVDLEdBQUFBLENBQUMsTUFBQSxDQUFBLENBQUssU0FBQSxDQUFXQyxDQUFBQSxDQUFHLDRCQUFBLENBQThCRixDQUFTLENBQUEsQ0FBSSxRQUFBLENBQUFILENBQUFBLENBQUssQ0FDN0UsQ0FBQSxDQUVNTSxDQUFBQSxDQUFjLENBQUNDLENBQUFBLENBQStCTixFQUFpQkMsQ0FBQUEsR0FBdUMsQ0FDMUcsR0FBMkJLLENBQUFBLEVBQVUsSUFBQSxDQUFNLE9BQU8sSUFBQSxDQUNsRCxJQUFNQyxFQUFJTixDQUFBQSxDQUFXRCxDQUFBQSxDQUFVLFNBQUEsQ0FDL0IsT0FB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SyxLQUFBLENBQU9sQixDQUFBQSxDQUFTQyxHQUFRLENBQUEsQ0FBQSxDQUM1QyxDQUFBLENBQ0NpQixDQUFBQSxDQUFLLElBQUEsRUFDSmYsR0FBQUEsQ0FBQyxHQUFBLENBQUEsQ0FBRSxLQUFBLENBQU8sQ0FBRSxRQUFBLENBQVUsRUFBRyxDQUFBLENBQUcsU0FBQSxDQUFVLCtCQUFBLENBQ25DLFFBQUEsQ0FBQWUsQ0FBQUEsQ0FBSyxJQUFBLENBQ1IsQ0FBQSxDQUFBLENBQUEsQ0FyQ0dBLENBQUFBLENBQUssR0F1Q1osQ0FFSixDQUFDLENBQUEsQ0FDSCxDQUVILEVBRURULENBQUFBLENBQVUsV0FBQSxDQUFjLFdBQUEsS0FHakJhLENBQUFBLENBQVFiIiwiZmlsZSI6ImNodW5rLTNORUtJU0w1LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBjbiB9IGZyb20gJy4uL2xpYi9jbi5qcydcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgVHlwZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IGludGVyZmFjZSBMaXN0R3JvdXBJdGVtIHtcbiAgLyoqIFVuaXF1ZSBpdGVtIGlkZW50aWZpZXIg4oCUIGNvbXBhcmVkIGFnYWluc3QgYGFjdGl2ZWAgKi9cbiAga2V5OiBzdHJpbmcgfCBudW1iZXJcbiAgLyoqIEl0ZW0gbGFiZWwgdGV4dCAqL1xuICBsYWJlbD86IFJlYWN0LlJlYWN0Tm9kZVxuICAvKipcbiAgICogT3B0aW9uYWwgbGVhZGluZyBpY29uLiBBIHN0cmluZyBpcyByZW5kZXJlZCBhcyBgPGkgY2xhc3NOYW1lPXtpY29ufSAvPmBcbiAgICogKHBhc3MgdGhlIGZ1bGwgaWNvbiBjbGFzcywgZS5nLiBgXCJmYXMgZmEtdXNlclwiYCBvciBgXCJiaSBiaS1wZXJzb25cImApO1xuICAgKiBhIFJlYWN0Tm9kZSAoZS5nLiBhIEx1Y2lkZSBlbGVtZW50KSBpcyByZW5kZXJlZCBhcy1pcy5cbiAgICovXG4gIGljb24/OiBzdHJpbmcgfCBSZWFjdC5SZWFjdE5vZGVcbiAgLyoqIFN1YnRpdGxlL2Rlc2NyaXB0aW9uIHRleHQgYmVsb3cgdGhlIGxhYmVsIHJvdyAqL1xuICBkZXNjPzogc3RyaW5nXG4gIC8qKiBCYWRnZSBjb250ZW50IG9uIHRoZSByaWdodCBzaWRlIOKAlCBzdHJpbmcvbnVtYmVyIGdldCBzdHlsZWQsIFJlYWN0Tm9kZSByZW5kZXJlZCBhcy1pcyAqL1xuICBiYWRnZT86IHN0cmluZyB8IG51bWJlciB8IFJlYWN0LlJlYWN0Tm9kZVxuICAvKiogR3JheSBvdXQgdGhlIGl0ZW0gYW5kIHByZXZlbnQgY2xpY2sgKi9cbiAgZGlzYWJsZWQ/OiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdEdyb3VwUHJvcHMge1xuICAvKiogSXRlbXMgdG8gcmVuZGVyICovXG4gIGl0ZW1zOiBMaXN0R3JvdXBJdGVtW11cbiAgLyoqIEtleSBvZiB0aGUgY3VycmVudGx5IGFjdGl2ZSBpdGVtICovXG4gIGFjdGl2ZT86IHN0cmluZyB8IG51bWJlclxuICAvKiogQm9vdHN0cmFwIGNvbG9yIHZhcmlhbnQgZm9yIGFjdGl2ZSBzdGF0ZSBoaWdobGlnaHRpbmcgKGRlZmF1bHQ6IFwicHJpbWFyeVwiKSAqL1xuICB2YXJpYW50Pzogc3RyaW5nXG4gIC8qKiBGaXJlZCB3aGVuIGFuIGl0ZW0gaXMgY2xpY2tlZCAobm90IGZpcmVkIGZvciBkaXNhYmxlZCBpdGVtcykgKi9cbiAgb25DbGljaz86IChpdGVtOiBMaXN0R3JvdXBJdGVtKSA9PiB2b2lkXG4gIC8qKiBSZW1vdmUgb3V0ZXIgYm9yZGVycyBhbmQgcm91bmRlZCBjb3JuZXJzIChCb290c3RyYXAgYGxpc3QtZ3JvdXAtZmx1c2hgKSAqL1xuICBmbHVzaD86IGJvb2xlYW5cbiAgLyoqIEljb24gY29udGFpbmVyIHdpZHRoL2hlaWdodCBpbiBwaXhlbHMgKGRlZmF1bHQ6IDMwKSAqL1xuICBpY29uU2l6ZT86IG51bWJlclxuICAvKiogU2hvdyB0aGUgaXRlbSBgZGVzY2AgYXMgYSBuYXRpdmUgdG9vbHRpcCB2aWEgdGhlIGB0aXRsZWAgYXR0cmlidXRlIChkZWZhdWx0OiB0cnVlKSAqL1xuICBzaG93VG9vbHRpcD86IGJvb2xlYW5cbiAgLyoqIEFkZGl0aW9uYWwgQ1NTIGNsYXNzZXMgb24gdGhlIG91dGVyIHdyYXBwZXIgKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogIEhlbHBlcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmNvbnN0IHJlbmRlckljb24gPSAoaWNvbjogTGlzdEdyb3VwSXRlbVsnaWNvbiddLCB2YXJpYW50OiBzdHJpbmcsIGlzQWN0aXZlOiBib29sZWFuKTogUmVhY3QuUmVhY3ROb2RlID0+IHtcbiAgaWYgKCFpY29uKSByZXR1cm4gbnVsbFxuICBjb25zdCB0ZXh0Q2xhc3MgPSBpc0FjdGl2ZSA/IGB0ZXh0LSR7dmFyaWFudH1gIDogJ3RleHQtcHJpbWFyeSdcbiAgaWYgKHR5cGVvZiBpY29uID09PSAnc3RyaW5nJykgcmV0dXJuIDxpIGNsYXNzTmFtZT17Y24oaWNvbiwgdGV4dENsYXNzKX0gLz5cbiAgcmV0dXJuIDxzcGFuIGNsYXNzTmFtZT17Y24oJ2QtaW5saW5lLWZsZXggYWxpZ24tbWlkZGxlJywgdGV4dENsYXNzKX0+e2ljb259PC9zcGFuPlxufVxuXG5jb25zdCByZW5kZXJCYWRnZSA9IChiYWRnZTogTGlzdEdyb3VwSXRlbVsnYmFkZ2UnXSwgdmFyaWFudDogc3RyaW5nLCBpc0FjdGl2ZTogYm9vbGVhbik6IFJlYWN0LlJlYWN0Tm9kZSA9PiB7XG4gIGlmIChiYWRnZSA9PT0gdW5kZWZpbmVkIHx8IGJhZGdlID09PSBudWxsKSByZXR1cm4gbnVsbFxuICBjb25zdCB2ID0gaXNBY3RpdmUgPyB2YXJpYW50IDogJ3ByaW1hcnknXG4gIGlmICh0eXBlb2YgYmFkZ2UgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBiYWRnZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPHNwYW5cbiAgICAgICAgc3R5bGU9e3sgd2lkdGg6IDIwLCBoZWlnaHQ6IDIwIH19XG4gICAgICAgIGNsYXNzTmFtZT17YGJnLW9wYWNpdHktMjUgYmctJHt2fSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZnctYm9sZGVyIHJvdW5kZWQgdGV4dC0ke3Z9YH1cbiAgICAgID5cbiAgICAgICAge2JhZGdlfVxuICAgICAgPC9zcGFuPlxuICAgIClcbiAgfVxuICByZXR1cm4gPD57YmFkZ2V9PC8+XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogIExpc3RHcm91cCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8qKlxuICogQm9vdHN0cmFwIDUgbGlzdC1ncm91cCB3aXRoIGFjdGl2ZS1zdGF0ZSBoaWdobGlnaHRpbmcsIGljb25zLCBiYWRnZXMsXG4gKiBhbmQgZGVzY3JpcHRpb25zLlxuICpcbiAqIGBgYGpzeFxuICogaW1wb3J0IExpc3RHcm91cCBmcm9tICdyZWFjdC1ib290c3RyYXAtcGx1Z2lucy9MaXN0R3JvdXAnXG4gKlxuICogY29uc3QgaXRlbXMgPSBbXG4gKiAgIHsga2V5OiAnZmVlcycsIGxhYmVsOiAnRmVlIFN0cnVjdHVyZScsIGljb246ICdmYXMgZmEtY29pbnMnLCBkZXNjOiAnRGVmaW5lIGZlZSB0eXBlcycgfSxcbiAqICAgeyBrZXk6ICdpbnZvaWNlcycsIGxhYmVsOiAnSW52b2ljZXMnLCBpY29uOiAnZmFzIGZhLWZpbGUtaW52b2ljZScsIGJhZGdlOiAzIH0sXG4gKiBdXG4gKlxuICogPExpc3RHcm91cCBpdGVtcz17aXRlbXN9IGFjdGl2ZT17c2VsZWN0ZWR9IHZhcmlhbnQ9XCJzdWNjZXNzXCIgb25DbGljaz17aGFuZGxlU2VsZWN0fSAvPlxuICogYGBgXG4gKi9cbmNvbnN0IExpc3RHcm91cCA9IFJlYWN0LmZvcndhcmRSZWY8SFRNTERpdkVsZW1lbnQsIExpc3RHcm91cFByb3BzPigoe1xuICBpdGVtcyA9IFtdLFxuICBhY3RpdmUsXG4gIHZhcmlhbnQgPSAncHJpbWFyeScsXG4gIG9uQ2xpY2ssXG4gIGZsdXNoID0gZmFsc2UsXG4gIGljb25TaXplID0gMzAsXG4gIHNob3dUb29sdGlwID0gdHJ1ZSxcbiAgY2xhc3NOYW1lLFxufSwgcmVmKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiByZWY9e3JlZn0gY2xhc3NOYW1lPXtjbignbGlzdC1ncm91cCcsIGZsdXNoICYmICdsaXN0LWdyb3VwLWZsdXNoJywgY2xhc3NOYW1lKX0+XG4gICAgICB7aXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzQWN0aXZlID0gaXRlbS5rZXkgPT09IGFjdGl2ZVxuICAgICAgICBjb25zdCBpc0Rpc2FibGVkID0gaXRlbS5kaXNhYmxlZFxuXG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAga2V5PXtpdGVtLmtleX1cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgdGl0bGU9e3Nob3dUb29sdGlwID8gaXRlbS5kZXNjIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgICAgICAgJ2xpc3QtZ3JvdXAtaXRlbSBsaXN0LWdyb3VwLWl0ZW0tYWN0aW9uIGJvcmRlci0wIHB4LTMgcHktMicsXG4gICAgICAgICAgICAgIGlzQWN0aXZlICYmICdhY3RpdmUgc2hhZG93LXNtJyxcbiAgICAgICAgICAgICAgaXNEaXNhYmxlZCAmJiAnZGlzYWJsZWQnXG4gICAgICAgICAgICApfVxuICAgICAgICAgICAgZGlzYWJsZWQ9e2lzRGlzYWJsZWR9XG4gICAgICAgICAgICBvbkNsaWNrPXsoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgaWYgKCFpc0Rpc2FibGVkKSBvbkNsaWNrPy4oaXRlbSlcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBhcmlhLWN1cnJlbnQ9e2lzQWN0aXZlID8gJ3RydWUnIDogdW5kZWZpbmVkfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1iLTAgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICB7aXRlbS5pY29uICYmIChcbiAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBpY29uU2l6ZSwgaGVpZ2h0OiBpY29uU2l6ZSB9fVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgICAgICAgICAgICAgICdyb3VuZGVkIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgaXNBY3RpdmUgPyBgYmctJHt2YXJpYW50fSBiZy1vcGFjaXR5LTI1YCA6ICdiZy1wcmltYXJ5IGJnLW9wYWNpdHktMTAnXG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtyZW5kZXJJY29uKGl0ZW0uaWNvbiwgdmFyaWFudCwgaXNBY3RpdmUpfVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtjbignZnctbWVkaXVtJywgaXNBY3RpdmUgJiYgYHRleHQtJHt2YXJpYW50fWApfT5cbiAgICAgICAgICAgICAgICAgIHtpdGVtLmxhYmVsfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICB7cmVuZGVyQmFkZ2UoaXRlbS5iYWRnZSwgdmFyaWFudCwgaXNBY3RpdmUpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB7aXRlbS5kZXNjICYmIChcbiAgICAgICAgICAgICAgPHAgc3R5bGU9e3sgZm9udFNpemU6IDEwIH19IGNsYXNzTmFtZT1cInRleHQtbXV0ZWQgbXktMCB0ZXh0LXRydW5jYXRlXCI+XG4gICAgICAgICAgICAgICAge2l0ZW0uZGVzY31cbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgKVxuICAgICAgfSl9XG4gICAgPC9kaXY+XG4gIClcbn0pXG5cbkxpc3RHcm91cC5kaXNwbGF5TmFtZSA9ICdMaXN0R3JvdXAnXG5cbmV4cG9ydCB7IExpc3RHcm91cCB9XG5leHBvcnQgZGVmYXVsdCBMaXN0R3JvdXBcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var chunkNPQQDBFB_cjs=require('./chunk-NPQQDBFB.cjs'),d=require('react'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var d__namespace=/*#__PURE__*/_interopNamespace(d);var N=(e,o,s)=>{if(!e)return null;let r=s?`text-${o}`:"text-primary";return typeof e=="string"?jsxRuntime.jsx("i",{className:chunkNPQQDBFB_cjs.a(e,r)}):jsxRuntime.jsx("span",{className:chunkNPQQDBFB_cjs.a("d-inline-flex align-middle",r),children:e})},x=(e,o,s)=>{if(e==null)return null;let r=s?o:"primary";return typeof e=="string"||typeof e=="number"?jsxRuntime.jsx("span",{style:{width:20,height:20},className:`bg-opacity-25 bg-${r} d-flex justify-content-center align-items-center fw-bolder rounded text-${r}`,children:e}):jsxRuntime.jsx(jsxRuntime.Fragment,{children:e})},u=d__namespace.forwardRef(({items:e=[],active:o,variant:s="primary",onClick:r,flush:m=false,iconSize:p=30,showTooltip:f=true,className:g},b)=>jsxRuntime.jsx("div",{ref:b,className:chunkNPQQDBFB_cjs.a("list-group",m&&"list-group-flush",g),children:e.map(t=>{let a=t.key===o,l=t.disabled;return jsxRuntime.jsxs("button",{type:"button",title:f?t.desc:void 0,className:chunkNPQQDBFB_cjs.a("list-group-item list-group-item-action border-0 px-3 py-2",a&&"active shadow-sm",l&&"disabled"),disabled:l,onClick:y=>{y.stopPropagation(),l||r?.(t);},"aria-current":a?"true":void 0,children:[jsxRuntime.jsxs("div",{className:"d-flex justify-content-between align-items-center",children:[jsxRuntime.jsxs("p",{className:"d-flex align-items-center mb-0 gap-2",children:[t.icon&&jsxRuntime.jsx("span",{style:{width:p,height:p},className:chunkNPQQDBFB_cjs.a("rounded d-flex align-items-center justify-content-center",a?`bg-${s} bg-opacity-25`:"bg-primary bg-opacity-10"),children:N(t.icon,s,a)}),jsxRuntime.jsx("span",{className:chunkNPQQDBFB_cjs.a("fw-medium",a&&`text-${s}`),children:t.label})]}),x(t.badge,s,a)]}),t.desc&&jsxRuntime.jsx("p",{style:{fontSize:10},className:"text-muted my-0 text-truncate",children:t.desc})]},t.key)})}));u.displayName="ListGroup";var L=u;exports.a=u;exports.b=L;//# sourceMappingURL=chunk-IMNWS57Y.cjs.map
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb25lbnRzL0xpc3RHcm91cC50c3giXSwibmFtZXMiOlsicmVuZGVySWNvbiIsImljb24iLCJ2YXJpYW50IiwiaXNBY3RpdmUiLCJ0ZXh0Q2xhc3MiLCJqc3giLCJjbiIsInJlbmRlckJhZGdlIiwiYmFkZ2UiLCJ2IiwiRnJhZ21lbnQiLCJMaXN0R3JvdXAiLCJkIiwiaXRlbXMiLCJhY3RpdmUiLCJvbkNsaWNrIiwiZmx1c2giLCJpY29uU2l6ZSIsInNob3dUb29sdGlwIiwiY2xhc3NOYW1lIiwicmVmIiwiaXRlbSIsImlzRGlzYWJsZWQiLCJqc3hzIiwiZXZlbnQiLCJMaXN0R3JvdXBfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Im9lQWlEQSxJQUFNQSxDQUFBQSxDQUFhLENBQUNDLENBQUFBLENBQTZCQyxDQUFBQSxDQUFpQkMsQ0FBQUEsR0FBdUMsQ0FDdkcsR0FBSSxDQUFDRixDQUFBQSxDQUFNLE9BQU8sSUFBQSxDQUNsQixJQUFNRyxDQUFBQSxDQUFZRCxDQUFBQSxDQUFXLENBQUEsS0FBQSxFQUFRRCxDQUFPLENBQUEsQ0FBQSxDQUFLLGNBQUEsQ0FDakQsT0FBSSxPQUFPRCxDQUFBQSxFQUFTLFFBQUEsQ0FBaUJJLGNBQUFBLENBQUMsR0FBQSxDQUFBLENBQUUsU0FBQSxDQUFXQyxtQkFBQUEsQ0FBR0wsQ0FBQUEsQ0FBTUcsQ0FBUyxDQUFBLENBQUcsQ0FBQSxDQUNqRUMsY0FBQUEsQ0FBQyxNQUFBLENBQUEsQ0FBSyxTQUFBLENBQVdDLG1CQUFBQSxDQUFHLDRCQUFBLENBQThCRixDQUFTLENBQUEsQ0FBSSxRQUFBLENBQUFILENBQUFBLENBQUssQ0FDN0UsQ0FBQSxDQUVNTSxDQUFBQSxDQUFjLENBQUNDLENBQUFBLENBQStCTixFQUFpQkMsQ0FBQUEsR0FBdUMsQ0FDMUcsR0FBMkJLLENBQUFBLEVBQVUsSUFBQSxDQUFNLE9BQU8sSUFBQSxDQUNsRCxJQUFNQyxFQUFJTixDQUFBQSxDQUFXRCxDQUFBQSxDQUFVLFNBQUEsQ0FD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QVljLENBQUFBLENBQUssS0FBQSxDQUFPbkIsQ0FBQUEsQ0FBU0MsQ0FBUSxDQUFBLENBQUEsQ0FDNUMsQ0FBQSxDQUNDa0IsQ0FBQUEsQ0FBSyxJQUFBLEVBQ0poQixjQUFBQSxDQUFDLEdBQUEsQ0FBQSxDQUFFLEtBQUEsQ0FBTyxDQUFFLFFBQUEsQ0FBVSxFQUFHLENBQUEsQ0FBRyxTQUFBLENBQVUsK0JBQUEsQ0FDbkMsUUFBQSxDQUFBZ0IsQ0FBQUEsQ0FBSyxJQUFBLENBQ1IsQ0FBQSxDQUFBLENBQUEsQ0FyQ0dBLENBQUFBLENBQUssR0F1Q1osQ0FFSixDQUFDLENBQUEsQ0FDSCxDQUVILEVBRURWLENBQUFBLENBQVUsV0FBQSxDQUFjLFdBQUEsS0FHakJjLENBQUFBLENBQVFkIiwiZmlsZSI6ImNodW5rLUlNTldTNTdZLmNqcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY24gfSBmcm9tICcuLi9saWIvY24uanMnXG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogIFR5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgTGlzdEdyb3VwSXRlbSB7XG4gIC8qKiBVbmlxdWUgaXRlbSBpZGVudGlmaWVyIOKAlCBjb21wYXJlZCBhZ2FpbnN0IGBhY3RpdmVgICovXG4gIGtleTogc3RyaW5nIHwgbnVtYmVyXG4gIC8qKiBJdGVtIGxhYmVsIHRleHQgKi9cbiAgbGFiZWw/OiBSZWFjdC5SZWFjdE5vZGVcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGxlYWRpbmcgaWNvbi4gQSBzdHJpbmcgaXMgcmVuZGVyZWQgYXMgYDxpIGNsYXNzTmFtZT17aWNvbn0gLz5gXG4gICAqIChwYXNzIHRoZSBmdWxsIGljb24gY2xhc3MsIGUuZy4gYFwiZmFzIGZhLXVzZXJcImAgb3IgYFwiYmkgYmktcGVyc29uXCJgKTtcbiAgICogYSBSZWFjdE5vZGUgKGUuZy4gYSBMdWNpZGUgZWxlbWVudCkgaXMgcmVuZGVyZWQgYXMtaXMuXG4gICAqL1xuICBpY29uPzogc3RyaW5nIHwgUmVhY3QuUmVhY3ROb2RlXG4gIC8qKiBTdWJ0aXRsZS9kZXNjcmlwdGlvbiB0ZXh0IGJlbG93IHRoZSBsYWJlbCByb3cgKi9cbiAgZGVzYz86IHN0cmluZ1xuICAvKiogQmFkZ2UgY29udGVudCBvbiB0aGUgcmlnaHQgc2lkZSDigJQgc3RyaW5nL251bWJlciBnZXQgc3R5bGVkLCBSZWFjdE5vZGUgcmVuZGVyZWQgYXMtaXMgKi9cbiAgYmFkZ2U/OiBzdHJpbmcgfCBudW1iZXIgfCBSZWFjdC5SZWFjdE5vZGVcbiAgLyoqIEdyYXkgb3V0IHRoZSBpdGVtIGFuZCBwcmV2ZW50IGNsaWNrICovXG4gIGRpc2FibGVkPzogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RHcm91cFByb3BzIHtcbiAgLyoqIEl0ZW1zIHRvIHJlbmRlciAqL1xuICBpdGVtczogTGlzdEdyb3VwSXRlbVtdXG4gIC8qKiBLZXkgb2YgdGhlIGN1cnJlbnRseSBhY3RpdmUgaXRlbSAqL1xuICBhY3RpdmU/OiBzdHJpbmcgfCBudW1iZXJcbiAgLyoqIEJvb3RzdHJhcCBjb2xvciB2YXJpYW50IGZvciBhY3RpdmUgc3RhdGUgaGlnaGxpZ2h0aW5nIChkZWZhdWx0OiBcInByaW1hcnlcIikgKi9cbiAgdmFyaWFudD86IHN0cmluZ1xuICAvKiogRmlyZWQgd2hlbiBhbiBpdGVtIGlzIGNsaWNrZWQgKG5vdCBmaXJlZCBmb3IgZGlzYWJsZWQgaXRlbXMpICovXG4gIG9uQ2xpY2s/OiAoaXRlbTogTGlzdEdyb3VwSXRlbSkgPT4gdm9pZFxuICAvKiogUmVtb3ZlIG91dGVyIGJvcmRlcnMgYW5kIHJvdW5kZWQgY29ybmVycyAoQm9vdHN0cmFwIGBsaXN0LWdyb3VwLWZsdXNoYCkgKi9cbiAgZmx1c2g/OiBib29sZWFuXG4gIC8qKiBJY29uIGNvbnRhaW5lciB3aWR0aC9oZWlnaHQgaW4gcGl4ZWxzIChkZWZhdWx0OiAzMCkgKi9cbiAgaWNvblNpemU/OiBudW1iZXJcbiAgLyoqIFNob3cgdGhlIGl0ZW0gYGRlc2NgIGFzIGEgbmF0aXZlIHRvb2x0aXAgdmlhIHRoZSBgdGl0bGVgIGF0dHJpYnV0ZSAoZGVmYXVsdDogdHJ1ZSkgKi9cbiAgc2hvd1Rvb2x0aXA/OiBib29sZWFuXG4gIC8qKiBBZGRpdGlvbmFsIENTUyBjbGFzc2VzIG9uIHRoZSBvdXRlciB3cmFwcGVyICovXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICBIZWxwZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5jb25zdCByZW5kZXJJY29uID0gKGljb246IExpc3RHcm91cEl0ZW1bJ2ljb24nXSwgdmFyaWFudDogc3RyaW5nLCBpc0FjdGl2ZTogYm9vbGVhbik6IFJlYWN0LlJlYWN0Tm9kZSA9PiB7XG4gIGlmICghaWNvbikgcmV0dXJuIG51bGxcbiAgY29uc3QgdGV4dENsYXNzID0gaXNBY3RpdmUgPyBgdGV4dC0ke3ZhcmlhbnR9YCA6ICd0ZXh0LXByaW1hcnknXG4gIGlmICh0eXBlb2YgaWNvbiA9PT0gJ3N0cmluZycpIHJldHVybiA8aSBjbGFzc05hbWU9e2NuKGljb24sIHRleHRDbGFzcyl9IC8+XG4gIHJldHVybiA8c3BhbiBjbGFzc05hbWU9e2NuKCdkLWlubGluZS1mbGV4IGFsaWduLW1pZGRsZScsIHRleHRDbGFzcyl9PntpY29ufTwvc3Bhbj5cbn1cblxuY29uc3QgcmVuZGVyQmFkZ2UgPSAoYmFkZ2U6IExpc3RHcm91cEl0ZW1bJ2JhZGdlJ10sIHZhcmlhbnQ6IHN0cmluZywgaXNBY3RpdmU6IGJvb2xlYW4pOiBSZWFjdC5SZWFjdE5vZGUgPT4ge1xuICBpZiAoYmFkZ2UgPT09IHVuZGVmaW5lZCB8fCBiYWRnZSA9PT0gbnVsbCkgcmV0dXJuIG51bGxcbiAgY29uc3QgdiA9IGlzQWN0aXZlID8gdmFyaWFudCA6ICdwcmltYXJ5J1xuICBpZiAodHlwZW9mIGJhZGdlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgYmFkZ2UgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxzcGFuXG4gICAgICAgIHN0eWxlPXt7IHdpZHRoOiAyMCwgaGVpZ2h0OiAyMCB9fVxuICAgICAgICBjbGFzc05hbWU9e2BiZy1vcGFjaXR5LTI1IGJnLSR7dn0gZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZ3LWJvbGRlciByb3VuZGVkIHRleHQtJHt2fWB9XG4gICAgICA+XG4gICAgICAgIHtiYWRnZX1cbiAgICAgIDwvc3Bhbj5cbiAgICApXG4gIH1cbiAgcmV0dXJuIDw+e2JhZGdlfTwvPlxufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qICBMaXN0R3JvdXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG4vKipcbiAqIEJvb3RzdHJhcCA1IGxpc3QtZ3JvdXAgd2l0aCBhY3RpdmUtc3RhdGUgaGlnaGxpZ2h0aW5nLCBpY29ucywgYmFkZ2VzLFxuICogYW5kIGRlc2NyaXB0aW9ucy5cbiAqXG4gKiBgYGBqc3hcbiAqIGltcG9ydCBMaXN0R3JvdXAgZnJvbSAncmVhY3QtYm9vdHN0cmFwLXBsdWdpbnMvTGlzdEdyb3VwJ1xuICpcbiAqIGNvbnN0IGl0ZW1zID0gW1xuICogICB7IGtleTogJ2ZlZXMnLCBsYWJlbDogJ0ZlZSBTdHJ1Y3R1cmUnLCBpY29uOiAnZmFzIGZhLWNvaW5zJywgZGVzYzogJ0RlZmluZSBmZWUgdHlwZXMnIH0sXG4gKiAgIHsga2V5OiAnaW52b2ljZXMnLCBsYWJlbDogJ0ludm9pY2VzJywgaWNvbjogJ2ZhcyBmYS1maWxlLWludm9pY2UnLCBiYWRnZTogMyB9LFxuICogXVxuICpcbiAqIDxMaXN0R3JvdXAgaXRlbXM9e2l0ZW1zfSBhY3RpdmU9e3NlbGVjdGVkfSB2YXJpYW50PVwic3VjY2Vzc1wiIG9uQ2xpY2s9e2hhbmRsZVNlbGVjdH0gLz5cbiAqIGBgYFxuICovXG5jb25zdCBMaXN0R3JvdXAgPSBSZWFjdC5mb3J3YXJkUmVmPEhUTUxEaXZFbGVtZW50LCBMaXN0R3JvdXBQcm9wcz4oKHtcbiAgaXRlbXMgPSBbXSxcbiAgYWN0aXZlLFxuICB2YXJpYW50ID0gJ3ByaW1hcnknLFxuICBvbkNsaWNrLFxuICBmbHVzaCA9IGZhbHNlLFxuICBpY29uU2l6ZSA9IDMwLFxuICBzaG93VG9vbHRpcCA9IHRydWUsXG4gIGNsYXNzTmFtZSxcbn0sIHJlZikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXYgcmVmPXtyZWZ9IGNsYXNzTmFtZT17Y24oJ2xpc3QtZ3JvdXAnLCBmbHVzaCAmJiAnbGlzdC1ncm91cC1mbHVzaCcsIGNsYXNzTmFtZSl9PlxuICAgICAge2l0ZW1zLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICBjb25zdCBpc0FjdGl2ZSA9IGl0ZW0ua2V5ID09PSBhY3RpdmVcbiAgICAgICAgY29uc3QgaXNEaXNhYmxlZCA9IGl0ZW0uZGlzYWJsZWRcblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGtleT17aXRlbS5rZXl9XG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIHRpdGxlPXtzaG93VG9vbHRpcCA/IGl0ZW0uZGVzYyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgICAgICdsaXN0LWdyb3VwLWl0ZW0gbGlzdC1ncm91cC1pdGVtLWFjdGlvbiBib3JkZXItMCBweC0zIHB5LTInLFxuICAgICAgICAgICAgICBpc0FjdGl2ZSAmJiAnYWN0aXZlIHNoYWRvdy1zbScsXG4gICAgICAgICAgICAgIGlzRGlzYWJsZWQgJiYgJ2Rpc2FibGVkJ1xuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIGRpc2FibGVkPXtpc0Rpc2FibGVkfVxuICAgICAgICAgICAgb25DbGljaz17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgIGlmICghaXNEaXNhYmxlZCkgb25DbGljaz8uKGl0ZW0pXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgYXJpYS1jdXJyZW50PXtpc0FjdGl2ZSA/ICd0cnVlJyA6IHVuZGVmaW5lZH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtYi0wIGdhcC0yXCI+XG4gICAgICAgICAgICAgICAge2l0ZW0uaWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogaWNvblNpemUsIGhlaWdodDogaWNvblNpemUgfX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgICAgICAgICAgICAgICAncm91bmRlZCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgIGlzQWN0aXZlID8gYGJnLSR7dmFyaWFudH0gYmctb3BhY2l0eS0yNWAgOiAnYmctcHJpbWFyeSBiZy1vcGFjaXR5LTEwJ1xuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7cmVuZGVySWNvbihpdGVtLmljb24sIHZhcmlhbnQsIGlzQWN0aXZlKX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Y24oJ2Z3LW1lZGl1bScsIGlzQWN0aXZlICYmIGB0ZXh0LSR7dmFyaWFudH1gKX0+XG4gICAgICAgICAgICAgICAgICB7aXRlbS5sYWJlbH1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAge3JlbmRlckJhZGdlKGl0ZW0uYmFkZ2UsIHZhcmlhbnQsIGlzQWN0aXZlKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge2l0ZW0uZGVzYyAmJiAoXG4gICAgICAgICAgICAgIDxwIHN0eWxlPXt7IGZvbnRTaXplOiAxMCB9fSBjbGFzc05hbWU9XCJ0ZXh0LW11dGVkIG15LTAgdGV4dC10cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgIHtpdGVtLmRlc2N9XG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIClcbiAgICAgIH0pfVxuICAgIDwvZGl2PlxuICApXG59KVxuXG5MaXN0R3JvdXAuZGlzcGxheU5hbWUgPSAnTGlzdEdyb3VwJ1xuXG5leHBvcnQgeyBMaXN0R3JvdXAgfVxuZXhwb3J0IGRlZmF1bHQgTGlzdEdyb3VwXG4iXX0=
|
package/dist/css/datepicker.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.input-group>.datepicker-wrapper,.input-group>.searchselect-wrapper{flex:auto;width:1
|
|
1
|
+
.input-group>.datepicker-wrapper,.input-group>.searchselect-wrapper{flex:auto;position:relative;width:1%!important;min-width:0!important}.input-group>.datepicker-wrapper:not(:first-child) .form-control,.input-group>.searchselect-wrapper:not(:first-child) .form-select{border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.datepicker-wrapper:not(:last-child) .form-control,.input-group>.searchselect-wrapper:not(:last-child) .form-select{border-top-right-radius:0;border-bottom-right-radius:0}.datepicker-popover{border-radius:var(--bs-border-radius,.375rem);-webkit-user-select:none;user-select:none;box-shadow:0 .5rem 1rem #00000026}.datepicker-popover--wide{min-width:420px}.datepicker-calendar{min-width:260px}.datepicker-days-header,.datepicker-days-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.datepicker-day-label{color:var(--bs-secondary-color,#6c757d);text-transform:uppercase;text-align:center;width:34px;padding:2px 0;font-size:.7rem;font-weight:600}.datepicker-day{width:34px;height:34px;color:var(--bs-body-color,#212529);border-radius:var(--bs-border-radius-sm,.25rem);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin:0 auto;padding:0;font-size:.8rem;font-weight:400;transition:background-color .15s ease-in-out,color .15s ease-in-out;display:flex}.datepicker-day:hover:not(:disabled):not(.datepicker-day--selected){background-color:var(--bs-primary-bg-subtle,#cfe2ff)}.datepicker-day--today{border:1px solid var(--bs-border-color,#dee2e6);font-weight:700}.datepicker-day--selected{font-weight:600;background-color:var(--bs-primary,#0d6efd)!important;color:#fff!important}.datepicker-day--outside{color:var(--bs-tertiary-color,#adb5bd);opacity:.45;pointer-events:none}.datepicker-day--disabled{color:var(--bs-tertiary-color,#adb5bd);opacity:.35;cursor:not-allowed;pointer-events:none}.datepicker-year-picker{min-width:260px}.datepicker-year-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.datepicker-year-cell{text-align:center;padding:6px 4px;font-size:.85rem}.datepicker-time{min-width:120px}.datepicker-time-col{flex-direction:column;flex:none;align-items:center;width:52px;display:flex}.datepicker-time-col-label{color:var(--bs-secondary-color,#6c757d);text-transform:uppercase;letter-spacing:.04em;-webkit-user-select:none;user-select:none;margin-bottom:2px;font-size:.6rem;font-weight:600}.datepicker-time-col-scroll{scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth;flex-direction:column;align-items:center;gap:1px;height:220px;display:flex;overflow-y:scroll}.datepicker-time-col-scroll::-webkit-scrollbar{display:none}.datepicker-time-item{width:44px;height:30px;color:var(--bs-body-color,#212529);border-radius:var(--bs-border-radius-sm,.25rem);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:.82rem;font-weight:500;transition:background-color .1s,color .1s;display:flex}.datepicker-time-item:hover{background-color:var(--bs-primary-bg-subtle,#cfe2ff)}.datepicker-time-item.active{background-color:var(--bs-primary,#0d6efd);color:#fff;font-weight:600}.datepicker-time-item--ampm{width:46px;height:36px;font-size:.78rem}.datepicker-time-separator{color:var(--bs-body-color,#212529);flex:none;align-self:center;margin-top:14px;font-size:1.1rem;font-weight:600}.datepicker-footer{border-bottom-left-radius:var(--bs-border-radius,.375rem);border-bottom-right-radius:var(--bs-border-radius,.375rem)}[data-bs-theme=dark] .datepicker-popover{background-color:var(--bs-body-bg,#212529);border-color:var(--bs-border-color,#495057)}[data-bs-theme=dark] .datepicker-day:hover:not(:disabled):not(.datepicker-day--selected),[data-bs-theme=dark] .datepicker-time-item:hover{background-color:var(--bs-primary-bg-subtle,#2c3e50)}[data-bs-theme=dark] .datepicker-time-item.active{background-color:var(--bs-primary,#0d6efd);color:#fff}[data-bs-theme=dark] .datepicker-footer{border-top-color:var(--bs-border-color,#495057)}@media (max-width:575.98px){.datepicker-popover{overflow-x:hidden;max-width:calc(100vw - 8px)!important}.datepicker-popover--wide .d-flex.flex-row{flex-direction:column!important}.datepicker-popover--wide .vr{display:none}.datepicker-day{width:28px;height:28px;font-size:.72rem}.datepicker-day-label{width:28px;font-size:.62rem}.datepicker-calendar,.datepicker-year-picker{min-width:210px}.datepicker-time-col-scroll{height:200px}.datepicker-time-item{width:38px;height:26px;font-size:.75rem}.datepicker-time-item--ampm{width:40px;height:32px}.datepicker-time-separator{margin-top:12px;font-size:1rem}.datepicker-footer .btn{min-height:34px;padding:6px 8px;font-size:.8rem}.datepicker-year-cell{min-height:34px;padding:8px 4px;font-size:.8rem}}.navpills-bar{padding-top:4px;padding-bottom:4px}.navpills-badge-clear{color:var(--bs-danger,#dc3545);background-color:rgba(var(--bs-danger-rgb,220, 53, 69), .12);cursor:pointer;font-size:10px;line-height:1.2}.navpills-badge-clear:hover{background-color:rgba(var(--bs-danger-rgb,220, 53, 69), .25)}.nav-link.active .navpills-badge-clear{color:#fff;background-color:#cf1515d5}.navpills-badge-new{color:var(--bs-success,#198754);background-color:rgba(var(--bs-success-rgb,25, 135, 84), .12);border:1px solid var(--bs-success,#198754)}.nav-link.active .navpills-badge-new{color:#fff;background-color:#fff3;border-color:#fff9}
|
package/dist/css/plugins.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.input-group>.datepicker-wrapper,.input-group>.searchselect-wrapper{flex:auto;width:1
|
|
1
|
+
.input-group>.datepicker-wrapper,.input-group>.searchselect-wrapper{flex:auto;position:relative;width:1%!important;min-width:0!important}.input-group>.datepicker-wrapper:not(:first-child) .form-control,.input-group>.searchselect-wrapper:not(:first-child) .form-select{border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.datepicker-wrapper:not(:last-child) .form-control,.input-group>.searchselect-wrapper:not(:last-child) .form-select{border-top-right-radius:0;border-bottom-right-radius:0}.datepicker-popover{border-radius:var(--bs-border-radius,.375rem);-webkit-user-select:none;user-select:none;box-shadow:0 .5rem 1rem #00000026}.datepicker-popover--wide{min-width:420px}.datepicker-calendar{min-width:260px}.datepicker-days-header,.datepicker-days-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.datepicker-day-label{color:var(--bs-secondary-color,#6c757d);text-transform:uppercase;text-align:center;width:34px;padding:2px 0;font-size:.7rem;font-weight:600}.datepicker-day{width:34px;height:34px;color:var(--bs-body-color,#212529);border-radius:var(--bs-border-radius-sm,.25rem);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin:0 auto;padding:0;font-size:.8rem;font-weight:400;transition:background-color .15s ease-in-out,color .15s ease-in-out;display:flex}.datepicker-day:hover:not(:disabled):not(.datepicker-day--selected){background-color:var(--bs-primary-bg-subtle,#cfe2ff)}.datepicker-day--today{border:1px solid var(--bs-border-color,#dee2e6);font-weight:700}.datepicker-day--selected{font-weight:600;background-color:var(--bs-primary,#0d6efd)!important;color:#fff!important}.datepicker-day--outside{color:var(--bs-tertiary-color,#adb5bd);opacity:.45;pointer-events:none}.datepicker-day--disabled{color:var(--bs-tertiary-color,#adb5bd);opacity:.35;cursor:not-allowed;pointer-events:none}.datepicker-year-picker{min-width:260px}.datepicker-year-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.datepicker-year-cell{text-align:center;padding:6px 4px;font-size:.85rem}.datepicker-time{min-width:120px}.datepicker-time-col{flex-direction:column;flex:none;align-items:center;width:52px;display:flex}.datepicker-time-col-label{color:var(--bs-secondary-color,#6c757d);text-transform:uppercase;letter-spacing:.04em;-webkit-user-select:none;user-select:none;margin-bottom:2px;font-size:.6rem;font-weight:600}.datepicker-time-col-scroll{scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth;flex-direction:column;align-items:center;gap:1px;height:220px;display:flex;overflow-y:scroll}.datepicker-time-col-scroll::-webkit-scrollbar{display:none}.datepicker-time-item{width:44px;height:30px;color:var(--bs-body-color,#212529);border-radius:var(--bs-border-radius-sm,.25rem);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:.82rem;font-weight:500;transition:background-color .1s,color .1s;display:flex}.datepicker-time-item:hover{background-color:var(--bs-primary-bg-subtle,#cfe2ff)}.datepicker-time-item.active{background-color:var(--bs-primary,#0d6efd);color:#fff;font-weight:600}.datepicker-time-item--ampm{width:46px;height:36px;font-size:.78rem}.datepicker-time-separator{color:var(--bs-body-color,#212529);flex:none;align-self:center;margin-top:14px;font-size:1.1rem;font-weight:600}.datepicker-footer{border-bottom-left-radius:var(--bs-border-radius,.375rem);border-bottom-right-radius:var(--bs-border-radius,.375rem)}[data-bs-theme=dark] .datepicker-popover{background-color:var(--bs-body-bg,#212529);border-color:var(--bs-border-color,#495057)}[data-bs-theme=dark] .datepicker-day:hover:not(:disabled):not(.datepicker-day--selected),[data-bs-theme=dark] .datepicker-time-item:hover{background-color:var(--bs-primary-bg-subtle,#2c3e50)}[data-bs-theme=dark] .datepicker-time-item.active{background-color:var(--bs-primary,#0d6efd);color:#fff}[data-bs-theme=dark] .datepicker-footer{border-top-color:var(--bs-border-color,#495057)}@media (max-width:575.98px){.datepicker-popover{overflow-x:hidden;max-width:calc(100vw - 8px)!important}.datepicker-popover--wide .d-flex.flex-row{flex-direction:column!important}.datepicker-popover--wide .vr{display:none}.datepicker-day{width:28px;height:28px;font-size:.72rem}.datepicker-day-label{width:28px;font-size:.62rem}.datepicker-calendar,.datepicker-year-picker{min-width:210px}.datepicker-time-col-scroll{height:200px}.datepicker-time-item{width:38px;height:26px;font-size:.75rem}.datepicker-time-item--ampm{width:40px;height:32px}.datepicker-time-separator{margin-top:12px;font-size:1rem}.datepicker-footer .btn{min-height:34px;padding:6px 8px;font-size:.8rem}.datepicker-year-cell{min-height:34px;padding:8px 4px;font-size:.8rem}}.navpills-bar{padding-top:4px;padding-bottom:4px}.navpills-badge-clear{color:var(--bs-danger,#dc3545);background-color:rgba(var(--bs-danger-rgb,220, 53, 69), .12);cursor:pointer;font-size:10px;line-height:1.2}.navpills-badge-clear:hover{background-color:rgba(var(--bs-danger-rgb,220, 53, 69), .25)}.nav-link.active .navpills-badge-clear{color:#fff;background-color:#cf1515d5}.navpills-badge-new{color:var(--bs-success,#198754);background-color:rgba(var(--bs-success-rgb,25, 135, 84), .12);border:1px solid var(--bs-success,#198754)}.nav-link.active .navpills-badge-new{color:#fff;background-color:#fff3;border-color:#fff9}
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';var chunkAQJZQLFZ_cjs=require('./chunk-AQJZQLFZ.cjs'),chunkXVAXFFB3_cjs=require('./chunk-XVAXFFB3.cjs'),chunkAWU5XGMI_cjs=require('./chunk-AWU5XGMI.cjs'),chunk2Q4NZKMX_cjs=require('./chunk-2Q4NZKMX.cjs'),chunk5IOLZUVD_cjs=require('./chunk-5IOLZUVD.cjs'),chunkM3OUUXZG_cjs=require('./chunk-M3OUUXZG.cjs'),chunkG26VJJWL_cjs=require('./chunk-G26VJJWL.cjs');require('./chunk-NPQQDBFB.cjs');var chunkH2ULQLGP_cjs=require('./chunk-H2ULQLGP.cjs');Object.defineProperty(exports,"InputCurrency",{enumerable:true,get:function(){return chunkAQJZQLFZ_cjs.a}});Object.defineProperty(exports,"DatePicker",{enumerable:true,get:function(){return chunkXVAXFFB3_cjs.a}});Object.defineProperty(exports,"SearchSelect",{enumerable:true,get:function(){return chunkAWU5XGMI_cjs.a}});Object.defineProperty(exports,"Label",{enumerable:true,get:function(){return chunk2Q4NZKMX_cjs.a}});Object.defineProperty(exports,"TableLoading",{enumerable:true,get:function(){return chunk5IOLZUVD_cjs.a}});Object.defineProperty(exports,"AutoTextarea",{enumerable:true,get:function(){return chunkM3OUUXZG_cjs.a}});Object.defineProperty(exports,"NavPills",{enumerable:true,get:function(){return chunkG26VJJWL_cjs.a}});Object.defineProperty(exports,"AutoDisplay",{enumerable:true,get:function(){return chunkH2ULQLGP_cjs.a}});//# sourceMappingURL=index.cjs.map
|
|
1
|
+
'use strict';var chunkAQJZQLFZ_cjs=require('./chunk-AQJZQLFZ.cjs'),chunkIMNWS57Y_cjs=require('./chunk-IMNWS57Y.cjs'),chunkXVAXFFB3_cjs=require('./chunk-XVAXFFB3.cjs'),chunkAWU5XGMI_cjs=require('./chunk-AWU5XGMI.cjs'),chunk2Q4NZKMX_cjs=require('./chunk-2Q4NZKMX.cjs'),chunk5IOLZUVD_cjs=require('./chunk-5IOLZUVD.cjs'),chunkM3OUUXZG_cjs=require('./chunk-M3OUUXZG.cjs'),chunkG26VJJWL_cjs=require('./chunk-G26VJJWL.cjs');require('./chunk-NPQQDBFB.cjs');var chunkH2ULQLGP_cjs=require('./chunk-H2ULQLGP.cjs');Object.defineProperty(exports,"InputCurrency",{enumerable:true,get:function(){return chunkAQJZQLFZ_cjs.a}});Object.defineProperty(exports,"ListGroup",{enumerable:true,get:function(){return chunkIMNWS57Y_cjs.a}});Object.defineProperty(exports,"DatePicker",{enumerable:true,get:function(){return chunkXVAXFFB3_cjs.a}});Object.defineProperty(exports,"SearchSelect",{enumerable:true,get:function(){return chunkAWU5XGMI_cjs.a}});Object.defineProperty(exports,"Label",{enumerable:true,get:function(){return chunk2Q4NZKMX_cjs.a}});Object.defineProperty(exports,"TableLoading",{enumerable:true,get:function(){return chunk5IOLZUVD_cjs.a}});Object.defineProperty(exports,"AutoTextarea",{enumerable:true,get:function(){return chunkM3OUUXZG_cjs.a}});Object.defineProperty(exports,"NavPills",{enumerable:true,get:function(){return chunkG26VJJWL_cjs.a}});Object.defineProperty(exports,"AutoDisplay",{enumerable:true,get:function(){return chunkH2ULQLGP_cjs.a}});//# sourceMappingURL=index.cjs.map
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJpbmRleC5janMifQ==
|
package/dist/index.d.cts
CHANGED
|
@@ -6,4 +6,5 @@ export { AutoTextarea, AutoTextareaProps } from './AutoTextarea.cjs';
|
|
|
6
6
|
export { NavPill, NavPills, NavPillsProps } from './NavPills.cjs';
|
|
7
7
|
export { AutoDisplay, AutoDisplayProps } from './AutoDisplay.cjs';
|
|
8
8
|
export { InputCurrency, InputCurrencyProps } from './InputCurrency.cjs';
|
|
9
|
+
export { ListGroup, ListGroupItem, ListGroupProps } from './ListGroup.cjs';
|
|
9
10
|
import 'react';
|
package/dist/index.d.ts
CHANGED
|
@@ -6,4 +6,5 @@ export { AutoTextarea, AutoTextareaProps } from './AutoTextarea.js';
|
|
|
6
6
|
export { NavPill, NavPills, NavPillsProps } from './NavPills.js';
|
|
7
7
|
export { AutoDisplay, AutoDisplayProps } from './AutoDisplay.js';
|
|
8
8
|
export { InputCurrency, InputCurrencyProps } from './InputCurrency.js';
|
|
9
|
+
export { ListGroup, ListGroupItem, ListGroupProps } from './ListGroup.js';
|
|
9
10
|
import 'react';
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export{a as InputCurrency}from'./chunk-7N56SRTN.js';export{a as DatePicker}from'./chunk-RPHCR4FK.js';export{a as SearchSelect}from'./chunk-ZCAQ7S2A.js';export{a as Label}from'./chunk-HYB5IGJK.js';export{a as TableLoading}from'./chunk-7LXLWNUR.js';export{a as AutoTextarea}from'./chunk-KKWFIJKN.js';export{a as NavPills}from'./chunk-KVUHNUBG.js';import'./chunk-RR7TBRGI.js';export{a as AutoDisplay}from'./chunk-2UX7JYM3.js';//# sourceMappingURL=index.js.map
|
|
1
|
+
export{a as InputCurrency}from'./chunk-7N56SRTN.js';export{a as ListGroup}from'./chunk-3NEKISL5.js';export{a as DatePicker}from'./chunk-RPHCR4FK.js';export{a as SearchSelect}from'./chunk-ZCAQ7S2A.js';export{a as Label}from'./chunk-HYB5IGJK.js';export{a as TableLoading}from'./chunk-7LXLWNUR.js';export{a as AutoTextarea}from'./chunk-KKWFIJKN.js';export{a as NavPills}from'./chunk-KVUHNUBG.js';import'./chunk-RR7TBRGI.js';export{a as AutoDisplay}from'./chunk-2UX7JYM3.js';//# sourceMappingURL=index.js.map
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJpbmRleC5qcyJ9
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# ListGroup
|
|
2
|
+
|
|
3
|
+
> Bootstrap 5 list-group with active-state highlighting, icons, badges, descriptions, and keyboard accessibility. Zero dependencies.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Import
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
// Default import (recommended for single-component tree-shaking)
|
|
11
|
+
import ListGroup from 'react-bootstrap-plugins/ListGroup'
|
|
12
|
+
|
|
13
|
+
// Named import from individual entry point
|
|
14
|
+
import { ListGroup } from 'react-bootstrap-plugins/ListGroup'
|
|
15
|
+
|
|
16
|
+
// Barrel import
|
|
17
|
+
import { ListGroup } from 'react-bootstrap-plugins'
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
No additional CSS import is required — ListGroup uses only Bootstrap 5 utility classes.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Basic Usage
|
|
25
|
+
|
|
26
|
+
```jsx
|
|
27
|
+
import { useState } from 'react'
|
|
28
|
+
import { ListGroup } from 'react-bootstrap-plugins'
|
|
29
|
+
|
|
30
|
+
function FinanceMenu() {
|
|
31
|
+
const [selected, setSelected] = useState('fees')
|
|
32
|
+
|
|
33
|
+
const items = [
|
|
34
|
+
{ key: 'fees', label: 'Fee Structure', icon: 'fas fa-coins', desc: 'Define fee types and amounts' },
|
|
35
|
+
{ key: 'invoices', label: 'Invoices', icon: 'fas fa-file-invoice', desc: 'Generate and manage invoices' },
|
|
36
|
+
{ key: 'ledger', label: 'Student Ledger', icon: 'fas fa-book', desc: 'View student account statements' },
|
|
37
|
+
]
|
|
38
|
+
|
|
39
|
+
return (
|
|
40
|
+
<ListGroup
|
|
41
|
+
items={items}
|
|
42
|
+
active={selected}
|
|
43
|
+
onClick={(item) => setSelected(item.key)}
|
|
44
|
+
/>
|
|
45
|
+
)
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Color Variants
|
|
52
|
+
|
|
53
|
+
Pass a Bootstrap color variant to control the active-state accent color:
|
|
54
|
+
|
|
55
|
+
```jsx
|
|
56
|
+
<ListGroup items={items} active={selected} variant="success" onClick={handleSelect} />
|
|
57
|
+
<ListGroup items={items} active={selected} variant="danger" onClick={handleSelect} />
|
|
58
|
+
<ListGroup items={items} active={selected} variant="info" onClick={handleSelect} />
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
The variant controls the active item's background tint, icon/text color, and badge color. Inactive item icons use `primary` at reduced opacity. Defaults to `"primary"`.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Flush Style
|
|
66
|
+
|
|
67
|
+
Pass `flush` to remove outer borders and rounded corners — useful inside cards or panels:
|
|
68
|
+
|
|
69
|
+
```jsx
|
|
70
|
+
<ListGroup items={items} active={selected} flush onClick={handleSelect} />
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Badges
|
|
76
|
+
|
|
77
|
+
The `badge` field accepts a string, number, or ReactNode. Strings/numbers are rendered in a small colored circle matching the active variant:
|
|
78
|
+
|
|
79
|
+
```jsx
|
|
80
|
+
const items = [
|
|
81
|
+
{ key: 'invoices', label: 'Invoices', badge: 3 },
|
|
82
|
+
{ key: 'alerts', label: 'Alerts', badge: '!' },
|
|
83
|
+
{ key: 'messages', label: 'Messages', badge: <CustomBadge /> },
|
|
84
|
+
]
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Icons
|
|
90
|
+
|
|
91
|
+
The `icon` field accepts either a **full icon class string** (any icon font) or a **ReactNode**:
|
|
92
|
+
|
|
93
|
+
```jsx
|
|
94
|
+
// Icon font (Font Awesome, Bootstrap Icons, …) — pass the complete class
|
|
95
|
+
{ key: 'fees', label: 'Fees', icon: 'fas fa-coins' }
|
|
96
|
+
{ key: 'fees', label: 'Fees', icon: 'bi bi-cash-stack' }
|
|
97
|
+
|
|
98
|
+
// Component icon (Lucide, custom SVG, …)
|
|
99
|
+
import { Coins } from 'lucide-react'
|
|
100
|
+
{ key: 'fees', label: 'Fees', icon: <Coins size={16} /> }
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
> **Note:** The plugin renders string icons as-is — include the full icon prefix yourself: `icon: 'fas fa-coins'`.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Disabled Items
|
|
108
|
+
|
|
109
|
+
Set `disabled: true` on an item to gray it out and prevent click:
|
|
110
|
+
|
|
111
|
+
```jsx
|
|
112
|
+
const items = [
|
|
113
|
+
{ key: 'fees', label: 'Fee Structure' },
|
|
114
|
+
{ key: 'reports', label: 'Reports', disabled: true },
|
|
115
|
+
]
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Icon Size
|
|
121
|
+
|
|
122
|
+
Control the icon container size via `iconSize` (in pixels, default 30):
|
|
123
|
+
|
|
124
|
+
```jsx
|
|
125
|
+
<ListGroup items={items} iconSize={40} />
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Props
|
|
131
|
+
|
|
132
|
+
| Prop | Type | Default | Description |
|
|
133
|
+
|------|------|---------|-------------|
|
|
134
|
+
| `items` | `ListGroupItem[]` | required | Items to render |
|
|
135
|
+
| `active` | `string \| number` | — | Key of the currently active item |
|
|
136
|
+
| `variant` | `string` | `"primary"` | Bootstrap color variant for active state, icons, and badges |
|
|
137
|
+
| `onClick` | `(item) => void` | — | Fired when an item is clicked (not fired for disabled items) |
|
|
138
|
+
| `flush` | `boolean` | `false` | Remove outer borders and rounded corners |
|
|
139
|
+
| `iconSize` | `number` | `30` | Icon container width/height in px |
|
|
140
|
+
| `showTooltip` | `boolean` | `true` | Show item `desc` as a native tooltip via the `title` attribute |
|
|
141
|
+
| `className` | `string` | — | Extra CSS classes on the outer wrapper |
|
|
142
|
+
|
|
143
|
+
A `ref` is forwarded to the outer `<div className="list-group">`.
|
|
144
|
+
|
|
145
|
+
### `ListGroupItem` shape
|
|
146
|
+
|
|
147
|
+
| Field | Type | Description |
|
|
148
|
+
|-------|------|-------------|
|
|
149
|
+
| `key` | `string \| number` | Unique identifier — compared against `active` |
|
|
150
|
+
| `label` | `ReactNode` | Item label text |
|
|
151
|
+
| `icon` | `string \| ReactNode` | Optional leading icon (see [Icons](#icons)) |
|
|
152
|
+
| `desc` | `string` | Subtitle/description text below the label row |
|
|
153
|
+
| `badge` | `string \| number \| ReactNode` | Badge on the right side |
|
|
154
|
+
| `disabled` | `boolean` | Gray out the item and prevent click |
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## Dark Mode
|
|
159
|
+
|
|
160
|
+
ListGroup uses Bootstrap's native `list-group` styling, which adapts automatically to `[data-bs-theme="dark"]`. No additional CSS is required.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Bundle Size
|
|
165
|
+
|
|
166
|
+
~0.6 KB (min+gzip). No additional CSS import required.
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## See Also
|
|
171
|
+
|
|
172
|
+
- [NavPills](./NAVPILLS.md) — Horizontal nav-pills tab strip with icons and badges
|
|
173
|
+
- [DatePicker](./DATEPICKER.md) — Date, time, and datetime picker
|
|
174
|
+
- [SearchSelect](./SEARCHSELECT.md) — Filterable, searchable select dropdown
|
|
175
|
+
- [Label](./LABEL.md) — Bootstrap-styled form label with required indicator
|
|
176
|
+
- [Main README](../README.md) — Package overview, installation, and general info
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# ListGroup Plugin — Design Spec
|
|
2
|
+
|
|
3
|
+
> **Date:** 2026-08-01 | **Status:** Approved | **Package:** react-bootstrap-plugins
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Add a `ListGroup` component to `react-bootstrap-plugins` — a Bootstrap 5 list-group with active-state highlighting, icons, badges, descriptions, and keyboard accessibility. Ported from the existing in-app component with a cleaned-up API.
|
|
8
|
+
|
|
9
|
+
## API Design
|
|
10
|
+
|
|
11
|
+
### Props
|
|
12
|
+
|
|
13
|
+
| Prop | Type | Default | Description |
|
|
14
|
+
|------|------|---------|-------------|
|
|
15
|
+
| `items` | `ListGroupItem[]` | required | Items to render |
|
|
16
|
+
| `active` | `string \| number` | — | Key of the active item |
|
|
17
|
+
| `variant` | `string` | `"primary"` | Bootstrap color variant for active state, icons, badges |
|
|
18
|
+
| `onClick` | `(item: ListGroupItem) => void` | — | Fired when an item is clicked |
|
|
19
|
+
| `flush` | `boolean` | `false` | Remove outer borders and rounded corners (Bootstrap `list-group-flush`) |
|
|
20
|
+
| `iconSize` | `number` | `30` | Icon container width/height in px |
|
|
21
|
+
| `showTooltip` | `boolean` | `true` | Show item `desc` as a `title` attribute tooltip on hover |
|
|
22
|
+
| `className` | `string` | — | Extra CSS classes on the outer wrapper |
|
|
23
|
+
|
|
24
|
+
Forwarded `ref` lands on the outer `<div className="list-group">`.
|
|
25
|
+
|
|
26
|
+
### ListGroupItem
|
|
27
|
+
|
|
28
|
+
| Field | Type | Description |
|
|
29
|
+
|-------|------|-------------|
|
|
30
|
+
| `key` | `string \| number` | Unique identifier — compared against `active` |
|
|
31
|
+
| `label` | `ReactNode` | Item label text |
|
|
32
|
+
| `icon` | `string \| ReactNode` | Leading icon. String → `<i className={icon}>`, ReactNode → rendered as-is |
|
|
33
|
+
| `desc` | `string` | Subtitle below the label row |
|
|
34
|
+
| `badge` | `string \| number \| ReactNode` | Badge on the right side |
|
|
35
|
+
| `disabled` | `boolean` | Gray out item, prevent click |
|
|
36
|
+
|
|
37
|
+
## DOM Structure
|
|
38
|
+
|
|
39
|
+
```html
|
|
40
|
+
<div class="list-group [list-group-flush] [className]">
|
|
41
|
+
<button class="list-group-item list-group-item-action border-0 px-3 py-2
|
|
42
|
+
[active shadow-sm] [disabled]" aria-current="[true]">
|
|
43
|
+
<div class="d-flex justify-content-between align-items-center">
|
|
44
|
+
<p class="d-flex align-items-center mb-0 gap-2">
|
|
45
|
+
<span class="rounded d-flex align-items-center justify-content-center
|
|
46
|
+
[bg-{variant} bg-opacity-25 / bg-primary bg-opacity-10]">
|
|
47
|
+
<i class="[icon] [text-{variant} / text-primary]" />
|
|
48
|
+
</span>
|
|
49
|
+
<span class="fw-medium [text-{variant}]">{label}</span>
|
|
50
|
+
</p>
|
|
51
|
+
<span class="bg-opacity-25 bg-{variant} ... rounded">{badge}</span>
|
|
52
|
+
</div>
|
|
53
|
+
<p class="text-muted my-0 text-truncate" style="font-size:10px">{desc}</p>
|
|
54
|
+
</button>
|
|
55
|
+
</div>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Active items get `{variant}`-tinted backgrounds and text. Inactive items use `primary`-tinted icon backgrounds at reduced opacity.
|
|
59
|
+
|
|
60
|
+
## Files
|
|
61
|
+
|
|
62
|
+
| Action | File | Purpose |
|
|
63
|
+
|--------|------|---------|
|
|
64
|
+
| **Create** | `src/components/ListGroup.tsx` | Component + types + exports |
|
|
65
|
+
| **Modify** | `src/index.ts` | Barrel export + type export |
|
|
66
|
+
| **Modify** | `tsup.config.ts` | Add `ListGroup` entry point |
|
|
67
|
+
| **Modify** | `package.json` | Add `./ListGroup` export map + keywords |
|
|
68
|
+
| **Create** | `docs/LISTGROUP.md` | Component documentation |
|
|
69
|
+
| **Modify** | `README.md` | Add to component table, imports, bundle size, structure |
|
|
70
|
+
|
|
71
|
+
## Migration from In-App Component
|
|
72
|
+
|
|
73
|
+
The existing `src/components/ui/ListGroup.jsx` in the app:
|
|
74
|
+
|
|
75
|
+
```jsx
|
|
76
|
+
// OLD
|
|
77
|
+
<ListGroup active={{ listClass: 'success', list: 'fees' }} lists={items} onClick={fn} size={30} pop={true} />
|
|
78
|
+
|
|
79
|
+
// NEW
|
|
80
|
+
<ListGroup active="fees" variant="success" items={items} onClick={fn} iconSize={30} showTooltip={true} />
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
The in-app file will be updated to re-export from the plugin after publishing.
|
|
84
|
+
|
|
85
|
+
## TypeScript Types
|
|
86
|
+
|
|
87
|
+
```ts
|
|
88
|
+
export interface ListGroupItem {
|
|
89
|
+
key: string | number
|
|
90
|
+
label?: React.ReactNode
|
|
91
|
+
icon?: string | React.ReactNode
|
|
92
|
+
desc?: string
|
|
93
|
+
badge?: string | number | React.ReactNode
|
|
94
|
+
disabled?: boolean
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export interface ListGroupProps {
|
|
98
|
+
items: ListGroupItem[]
|
|
99
|
+
active?: string | number
|
|
100
|
+
variant?: string
|
|
101
|
+
onClick?: (item: ListGroupItem) => void
|
|
102
|
+
flush?: boolean
|
|
103
|
+
iconSize?: number
|
|
104
|
+
showTooltip?: boolean
|
|
105
|
+
className?: string
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Edge Cases
|
|
110
|
+
|
|
111
|
+
- Empty `items` array → renders empty `<div className="list-group">`
|
|
112
|
+
- `active` doesn't match any item → no item highlighted
|
|
113
|
+
- `icon` as ReactNode → rendered as-is in a `<span className="me-2 d-inline-flex align-middle">` (matching NavPills pattern)
|
|
114
|
+
- `badge` as ReactNode → rendered as-is
|
|
115
|
+
- `badge` as string/number → wrapped in styled `<span>`
|
|
116
|
+
- `showTooltip={false}` → no `title` attribute on button
|
|
117
|
+
- Click on disabled item → `onClick` not called, event stopped
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-bootstrap-plugins",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.1",
|
|
4
4
|
"description": "Production-grade Bootstrap 5 UI plugins for React — DatePicker, SearchSelect, Label, TableLoading, InputCurrency, and more. Zero runtime dependencies beyond React.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
@@ -102,6 +102,16 @@
|
|
|
102
102
|
"default": "./dist/NavPills.cjs"
|
|
103
103
|
}
|
|
104
104
|
},
|
|
105
|
+
"./ListGroup": {
|
|
106
|
+
"import": {
|
|
107
|
+
"types": "./dist/ListGroup.d.ts",
|
|
108
|
+
"default": "./dist/ListGroup.js"
|
|
109
|
+
},
|
|
110
|
+
"require": {
|
|
111
|
+
"types": "./dist/ListGroup.d.ts",
|
|
112
|
+
"default": "./dist/ListGroup.cjs"
|
|
113
|
+
}
|
|
114
|
+
},
|
|
105
115
|
"./css/plugins.css": "./dist/css/plugins.css",
|
|
106
116
|
"./css/datepicker.css": "./dist/css/datepicker.css"
|
|
107
117
|
},
|
|
@@ -147,6 +157,8 @@
|
|
|
147
157
|
"autosize",
|
|
148
158
|
"nav-pills",
|
|
149
159
|
"tabs",
|
|
160
|
+
"list-group",
|
|
161
|
+
"listgroup",
|
|
150
162
|
"ui-components",
|
|
151
163
|
"react-bootstrap",
|
|
152
164
|
"form-controls",
|