@dev-dga/react 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/dist/chunk-B6ODWTVF.js +1 -0
- package/dist/chunk-CZCIERDM.cjs +1 -0
- package/dist/{chunk-M46YSH6K.cjs.map → chunk-CZCIERDM.cjs.map} +1 -1
- package/dist/chunk-HIZSEYQY.js +35 -0
- package/dist/chunk-HIZSEYQY.js.map +1 -0
- package/dist/chunk-J7GWUCFM.cjs +35 -0
- package/dist/chunk-J7GWUCFM.cjs.map +1 -0
- package/dist/{chunk-H4B2B4SV.cjs → chunk-KRIWNW4A.cjs} +1 -1
- package/dist/{chunk-H4B2B4SV.cjs.map → chunk-KRIWNW4A.cjs.map} +1 -1
- package/dist/{chunk-UAECZXU5.js → chunk-TXQK3BAO.js} +9 -2
- package/dist/{chunk-UAECZXU5.js.map → chunk-TXQK3BAO.js.map} +1 -1
- package/dist/{chunk-PAUY27WX.cjs → chunk-VYOETLZU.cjs} +9 -2
- package/dist/chunk-VYOETLZU.cjs.map +1 -0
- package/dist/{chunk-TO7F4EHC.js → chunk-WOJUO43J.js} +1 -1
- package/dist/chunk-WOJUO43J.js.map +1 -0
- package/dist/components/Pagination/index.cjs +6 -2
- package/dist/components/Pagination/index.cjs.map +1 -1
- package/dist/components/Pagination/index.js +5 -1
- package/dist/components/Pagination/paginationRange.cjs +7 -0
- package/dist/components/Pagination/paginationRange.cjs.map +1 -0
- package/dist/components/Pagination/paginationRange.js +7 -0
- package/dist/components/Pagination/paginationRange.js.map +1 -0
- package/dist/components/ScrollArea/ScrollArea.cjs +2 -2
- package/dist/components/ScrollArea/ScrollArea.js +1 -1
- package/dist/components/ScrollArea/index.cjs +2 -2
- package/dist/components/ScrollArea/index.js +1 -1
- package/dist/components/Sidebar/SidebarMenu.cjs +1 -1
- package/dist/components/Sidebar/SidebarMenu.js +1 -1
- package/dist/components/Sidebar/index.cjs +1 -1
- package/dist/components/Sidebar/index.cjs.map +1 -1
- package/dist/components/Sidebar/index.js +1 -1
- package/dist/components/Stat/Stat.cjs +2 -2
- package/dist/components/Stat/Stat.js +1 -1
- package/dist/components/Stat/index.cjs +2 -2
- package/dist/components/Stat/index.js +1 -1
- package/dist/index.cjs +24 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +41 -1
- package/dist/index.d.ts +41 -1
- package/dist/index.js +23 -19
- package/package.json +3 -3
- package/dist/chunk-KPONZTP7.js +0 -1
- package/dist/chunk-M46YSH6K.cjs +0 -1
- package/dist/chunk-PAUY27WX.cjs.map +0 -1
- package/dist/chunk-TO7F4EHC.js.map +0 -1
- /package/dist/{chunk-KPONZTP7.js.map → chunk-B6ODWTVF.js.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @dev-dga/react
|
|
2
2
|
|
|
3
|
+
## 0.10.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- **Pagination — new `paginationRange(page, count, { siblings, boundaries })` util.** Computes the page-window slots (page numbers interleaved with `'ellipsis'`) so consumers stop hand-rolling the logic. Guarantees a **constant slot count** once the count exceeds the window, so the pager keeps a fixed width while navigating — buttons don't shift under the cursor (when a gap is exactly one page it shows the page instead of an ellipsis, preserving the length). Pair it with the existing `Pagination*` parts; exported types `PaginationSlot` / `PaginationRangeOptions`.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- **ScrollArea — wide content is no longer clipped in a vertical scroll area.** A vertical-orientation `ScrollArea` now constrains Radix's inline `display:table` content wrapper (a `--vertical` viewport modifier + matching CSS) so a wider-than-viewport child (e.g. a `Table`) stays at viewport width and scrolls its own overflow instead of expanding past the viewport with its trailing columns unreachable (worst on mobile, which has no horizontal scrollbar in vertical mode). `horizontal` / `both` orientations are unchanged. **You can delete any `[data-radix-scroll-area-viewport] > div { display: block !important }` workaround.**
|
|
12
|
+
- **Stat — docs.** JSDoc clarifies the supported composition: prop mode (`label` / `value` / `change` / `trend` / `icon`) **plus** a `<StatChart>` child is the blessed hybrid; don't duplicate a prop slot as a child (e.g. a `value` prop _and_ a `<StatValue>` child) — both render.
|
|
13
|
+
- Rides the `@dev-dga/css` ScrollArea + StatGroup fixes in lockstep. Released in lockstep with `@dev-dga/css` and `@dev-dga/tokens`.
|
|
14
|
+
|
|
15
|
+
## 0.9.1
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- Rides the `@dev-dga/css` collapsed-rail fix in lockstep — a `SidebarMenu` placed inside `SidebarHeader`/`SidebarFooter` no longer clips its icon when collapsed to the rail. No `@dev-dga/react` runtime change (new Sidebar story + e2e coverage only). Released in lockstep with `@dev-dga/css` and `@dev-dga/tokens`.
|
|
20
|
+
|
|
3
21
|
## 0.9.0
|
|
4
22
|
|
|
5
23
|
### Minor Changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=chunk-B6ODWTVF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";//# sourceMappingURL=chunk-CZCIERDM.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-CZCIERDM.cjs"],"names":[],"mappings":"AAAA","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-CZCIERDM.cjs"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// src/components/Pagination/paginationRange.ts
|
|
2
|
+
var range = (start, end) => start > end ? [] : Array.from({ length: end - start + 1 }, (_, i) => start + i);
|
|
3
|
+
function paginationRange(page, count, options = {}) {
|
|
4
|
+
const siblings = Math.max(0, Math.trunc(options.siblings ?? 1));
|
|
5
|
+
const boundaries = Math.max(0, Math.trunc(options.boundaries ?? 1));
|
|
6
|
+
const total = Math.max(0, Math.trunc(count));
|
|
7
|
+
if (total === 0) return [];
|
|
8
|
+
const current = Math.min(Math.max(1, Math.trunc(page)), total);
|
|
9
|
+
const windowSize = boundaries * 2 + siblings * 2 + 3;
|
|
10
|
+
if (windowSize >= total) return range(1, total);
|
|
11
|
+
const startPages = range(1, boundaries);
|
|
12
|
+
const endPages = range(total - boundaries + 1, total);
|
|
13
|
+
const siblingsStart = Math.max(
|
|
14
|
+
Math.min(current - siblings, total - boundaries - siblings * 2 - 1),
|
|
15
|
+
boundaries + 2
|
|
16
|
+
);
|
|
17
|
+
const siblingsEnd = Math.min(
|
|
18
|
+
Math.max(current + siblings, boundaries + siblings * 2 + 2),
|
|
19
|
+
endPages.length > 0 ? endPages[0] - 2 : total - 1
|
|
20
|
+
);
|
|
21
|
+
const leftGap = siblingsStart > boundaries + 2 ? ["ellipsis"] : boundaries + 1 < total - boundaries ? [boundaries + 1] : [];
|
|
22
|
+
const rightGap = siblingsEnd < total - boundaries - 1 ? ["ellipsis"] : total - boundaries > boundaries ? [total - boundaries] : [];
|
|
23
|
+
return [
|
|
24
|
+
...startPages,
|
|
25
|
+
...leftGap,
|
|
26
|
+
...range(siblingsStart, siblingsEnd),
|
|
27
|
+
...rightGap,
|
|
28
|
+
...endPages
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export {
|
|
33
|
+
paginationRange
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=chunk-HIZSEYQY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Pagination/paginationRange.ts"],"sourcesContent":["export type PaginationSlot = number | 'ellipsis';\n\nexport interface PaginationRangeOptions {\n /** Pages shown on each side of the current page. Default `1`. */\n siblings?: number;\n /** Pages pinned at the very start and end. Default `1`. */\n boundaries?: number;\n}\n\nconst range = (start: number, end: number): number[] =>\n start > end ? [] : Array.from({ length: end - start + 1 }, (_, i) => start + i);\n\n/**\n * Compute which page slots a pager should render — page numbers interleaved with\n * `'ellipsis'` markers — so consumers don't hand-roll the windowing logic.\n *\n * **Constant-width invariant:** once the page count exceeds the visible window\n * (`boundaries * 2 + siblings * 2 + 3`), the returned array is the **same length\n * for every `page`**. That keeps the pager a constant width while navigating, so\n * the buttons don't shift under the cursor. When collapsing a gap would hide\n * exactly one page, that page is shown instead of an `'ellipsis'` (same length).\n *\n * Pair it with the `Pagination*` parts (`PaginationItem` / `PaginationLink` /\n * `PaginationEllipsis`).\n *\n * @param page Current page, 1-based (clamped to `[1, count]`).\n * @param count Total number of pages.\n * @returns Slots to render, e.g. `[1, 'ellipsis', 9, 10, 11, 'ellipsis', 20]`.\n */\nexport function paginationRange(\n page: number,\n count: number,\n options: PaginationRangeOptions = {},\n): PaginationSlot[] {\n const siblings = Math.max(0, Math.trunc(options.siblings ?? 1));\n const boundaries = Math.max(0, Math.trunc(options.boundaries ?? 1));\n const total = Math.max(0, Math.trunc(count));\n if (total === 0) return [];\n const current = Math.min(Math.max(1, Math.trunc(page)), total);\n\n // Slots when the full window is shown with both ellipses: start boundary + end\n // boundary + current + 2 ellipses + siblings on each side.\n const windowSize = boundaries * 2 + siblings * 2 + 3;\n // Everything fits → list every page (the constant-length rule only applies past\n // this threshold).\n if (windowSize >= total) return range(1, total);\n\n const startPages = range(1, boundaries);\n const endPages = range(total - boundaries + 1, total);\n\n const siblingsStart = Math.max(\n Math.min(current - siblings, total - boundaries - siblings * 2 - 1),\n boundaries + 2,\n );\n const siblingsEnd = Math.min(\n Math.max(current + siblings, boundaries + siblings * 2 + 2),\n endPages.length > 0 ? endPages[0] - 2 : total - 1,\n );\n\n // Left gap: an ellipsis — unless collapsing would hide exactly one page, in\n // which case show that page (keeps the slot count constant).\n const leftGap: PaginationSlot[] =\n siblingsStart > boundaries + 2\n ? ['ellipsis']\n : boundaries + 1 < total - boundaries\n ? [boundaries + 1]\n : [];\n const rightGap: PaginationSlot[] =\n siblingsEnd < total - boundaries - 1\n ? ['ellipsis']\n : total - boundaries > boundaries\n ? [total - boundaries]\n : [];\n\n return [\n ...startPages,\n ...leftGap,\n ...range(siblingsStart, siblingsEnd),\n ...rightGap,\n ...endPages,\n ];\n}\n"],"mappings":";AASA,IAAM,QAAQ,CAAC,OAAe,QAC5B,QAAQ,MAAM,CAAC,IAAI,MAAM,KAAK,EAAE,QAAQ,MAAM,QAAQ,EAAE,GAAG,CAAC,GAAG,MAAM,QAAQ,CAAC;AAmBzE,SAAS,gBACd,MACA,OACA,UAAkC,CAAC,GACjB;AAClB,QAAM,WAAW,KAAK,IAAI,GAAG,KAAK,MAAM,QAAQ,YAAY,CAAC,CAAC;AAC9D,QAAM,aAAa,KAAK,IAAI,GAAG,KAAK,MAAM,QAAQ,cAAc,CAAC,CAAC;AAClE,QAAM,QAAQ,KAAK,IAAI,GAAG,KAAK,MAAM,KAAK,CAAC;AAC3C,MAAI,UAAU,EAAG,QAAO,CAAC;AACzB,QAAM,UAAU,KAAK,IAAI,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,CAAC,GAAG,KAAK;AAI7D,QAAM,aAAa,aAAa,IAAI,WAAW,IAAI;AAGnD,MAAI,cAAc,MAAO,QAAO,MAAM,GAAG,KAAK;AAE9C,QAAM,aAAa,MAAM,GAAG,UAAU;AACtC,QAAM,WAAW,MAAM,QAAQ,aAAa,GAAG,KAAK;AAEpD,QAAM,gBAAgB,KAAK;AAAA,IACzB,KAAK,IAAI,UAAU,UAAU,QAAQ,aAAa,WAAW,IAAI,CAAC;AAAA,IAClE,aAAa;AAAA,EACf;AACA,QAAM,cAAc,KAAK;AAAA,IACvB,KAAK,IAAI,UAAU,UAAU,aAAa,WAAW,IAAI,CAAC;AAAA,IAC1D,SAAS,SAAS,IAAI,SAAS,CAAC,IAAI,IAAI,QAAQ;AAAA,EAClD;AAIA,QAAM,UACJ,gBAAgB,aAAa,IACzB,CAAC,UAAU,IACX,aAAa,IAAI,QAAQ,aACvB,CAAC,aAAa,CAAC,IACf,CAAC;AACT,QAAM,WACJ,cAAc,QAAQ,aAAa,IAC/B,CAAC,UAAU,IACX,QAAQ,aAAa,aACnB,CAAC,QAAQ,UAAU,IACnB,CAAC;AAET,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,IACH,GAAG,MAAM,eAAe,WAAW;AAAA,IACnC,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF;","names":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }// src/components/Pagination/paginationRange.ts
|
|
2
|
+
var range = (start, end) => start > end ? [] : Array.from({ length: end - start + 1 }, (_, i) => start + i);
|
|
3
|
+
function paginationRange(page, count, options = {}) {
|
|
4
|
+
const siblings = Math.max(0, Math.trunc(_nullishCoalesce(options.siblings, () => ( 1))));
|
|
5
|
+
const boundaries = Math.max(0, Math.trunc(_nullishCoalesce(options.boundaries, () => ( 1))));
|
|
6
|
+
const total = Math.max(0, Math.trunc(count));
|
|
7
|
+
if (total === 0) return [];
|
|
8
|
+
const current = Math.min(Math.max(1, Math.trunc(page)), total);
|
|
9
|
+
const windowSize = boundaries * 2 + siblings * 2 + 3;
|
|
10
|
+
if (windowSize >= total) return range(1, total);
|
|
11
|
+
const startPages = range(1, boundaries);
|
|
12
|
+
const endPages = range(total - boundaries + 1, total);
|
|
13
|
+
const siblingsStart = Math.max(
|
|
14
|
+
Math.min(current - siblings, total - boundaries - siblings * 2 - 1),
|
|
15
|
+
boundaries + 2
|
|
16
|
+
);
|
|
17
|
+
const siblingsEnd = Math.min(
|
|
18
|
+
Math.max(current + siblings, boundaries + siblings * 2 + 2),
|
|
19
|
+
endPages.length > 0 ? endPages[0] - 2 : total - 1
|
|
20
|
+
);
|
|
21
|
+
const leftGap = siblingsStart > boundaries + 2 ? ["ellipsis"] : boundaries + 1 < total - boundaries ? [boundaries + 1] : [];
|
|
22
|
+
const rightGap = siblingsEnd < total - boundaries - 1 ? ["ellipsis"] : total - boundaries > boundaries ? [total - boundaries] : [];
|
|
23
|
+
return [
|
|
24
|
+
...startPages,
|
|
25
|
+
...leftGap,
|
|
26
|
+
...range(siblingsStart, siblingsEnd),
|
|
27
|
+
...rightGap,
|
|
28
|
+
...endPages
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
exports.paginationRange = paginationRange;
|
|
35
|
+
//# sourceMappingURL=chunk-J7GWUCFM.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-J7GWUCFM.cjs","../src/components/Pagination/paginationRange.ts"],"names":[],"mappings":"AAAA;ACSA,IAAM,MAAA,EAAQ,CAAC,KAAA,EAAe,GAAA,EAAA,GAC5B,MAAA,EAAQ,IAAA,EAAM,CAAC,EAAA,EAAI,KAAA,CAAM,IAAA,CAAK,EAAE,MAAA,EAAQ,IAAA,EAAM,MAAA,EAAQ,EAAE,CAAA,EAAG,CAAC,CAAA,EAAG,CAAA,EAAA,GAAM,MAAA,EAAQ,CAAC,CAAA;AAmBzE,SAAS,eAAA,CACd,IAAA,EACA,KAAA,EACA,QAAA,EAAkC,CAAC,CAAA,EACjB;AAClB,EAAA,MAAM,SAAA,EAAW,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,KAAA,kBAAM,OAAA,CAAQ,QAAA,UAAY,GAAC,CAAC,CAAA;AAC9D,EAAA,MAAM,WAAA,EAAa,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,KAAA,kBAAM,OAAA,CAAQ,UAAA,UAAc,GAAC,CAAC,CAAA;AAClE,EAAA,MAAM,MAAA,EAAQ,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,KAAK,CAAC,CAAA;AAC3C,EAAA,GAAA,CAAI,MAAA,IAAU,CAAA,EAAG,OAAO,CAAC,CAAA;AACzB,EAAA,MAAM,QAAA,EAAU,IAAA,CAAK,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,IAAA,CAAK,KAAA,CAAM,IAAI,CAAC,CAAA,EAAG,KAAK,CAAA;AAI7D,EAAA,MAAM,WAAA,EAAa,WAAA,EAAa,EAAA,EAAI,SAAA,EAAW,EAAA,EAAI,CAAA;AAGnD,EAAA,GAAA,CAAI,WAAA,GAAc,KAAA,EAAO,OAAO,KAAA,CAAM,CAAA,EAAG,KAAK,CAAA;AAE9C,EAAA,MAAM,WAAA,EAAa,KAAA,CAAM,CAAA,EAAG,UAAU,CAAA;AACtC,EAAA,MAAM,SAAA,EAAW,KAAA,CAAM,MAAA,EAAQ,WAAA,EAAa,CAAA,EAAG,KAAK,CAAA;AAEpD,EAAA,MAAM,cAAA,EAAgB,IAAA,CAAK,GAAA;AAAA,IACzB,IAAA,CAAK,GAAA,CAAI,QAAA,EAAU,QAAA,EAAU,MAAA,EAAQ,WAAA,EAAa,SAAA,EAAW,EAAA,EAAI,CAAC,CAAA;AAAA,IAClE,WAAA,EAAa;AAAA,EACf,CAAA;AACA,EAAA,MAAM,YAAA,EAAc,IAAA,CAAK,GAAA;AAAA,IACvB,IAAA,CAAK,GAAA,CAAI,QAAA,EAAU,QAAA,EAAU,WAAA,EAAa,SAAA,EAAW,EAAA,EAAI,CAAC,CAAA;AAAA,IAC1D,QAAA,CAAS,OAAA,EAAS,EAAA,EAAI,QAAA,CAAS,CAAC,EAAA,EAAI,EAAA,EAAI,MAAA,EAAQ;AAAA,EAClD,CAAA;AAIA,EAAA,MAAM,QAAA,EACJ,cAAA,EAAgB,WAAA,EAAa,EAAA,EACzB,CAAC,UAAU,EAAA,EACX,WAAA,EAAa,EAAA,EAAI,MAAA,EAAQ,WAAA,EACvB,CAAC,WAAA,EAAa,CAAC,EAAA,EACf,CAAC,CAAA;AACT,EAAA,MAAM,SAAA,EACJ,YAAA,EAAc,MAAA,EAAQ,WAAA,EAAa,EAAA,EAC/B,CAAC,UAAU,EAAA,EACX,MAAA,EAAQ,WAAA,EAAa,WAAA,EACnB,CAAC,MAAA,EAAQ,UAAU,EAAA,EACnB,CAAC,CAAA;AAET,EAAA,OAAO;AAAA,IACL,GAAG,UAAA;AAAA,IACH,GAAG,OAAA;AAAA,IACH,GAAG,KAAA,CAAM,aAAA,EAAe,WAAW,CAAA;AAAA,IACnC,GAAG,QAAA;AAAA,IACH,GAAG;AAAA,EACL,CAAA;AACF;ADnDA;AACA;AACE;AACF,0CAAC","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-J7GWUCFM.cjs","sourcesContent":[null,"export type PaginationSlot = number | 'ellipsis';\n\nexport interface PaginationRangeOptions {\n /** Pages shown on each side of the current page. Default `1`. */\n siblings?: number;\n /** Pages pinned at the very start and end. Default `1`. */\n boundaries?: number;\n}\n\nconst range = (start: number, end: number): number[] =>\n start > end ? [] : Array.from({ length: end - start + 1 }, (_, i) => start + i);\n\n/**\n * Compute which page slots a pager should render — page numbers interleaved with\n * `'ellipsis'` markers — so consumers don't hand-roll the windowing logic.\n *\n * **Constant-width invariant:** once the page count exceeds the visible window\n * (`boundaries * 2 + siblings * 2 + 3`), the returned array is the **same length\n * for every `page`**. That keeps the pager a constant width while navigating, so\n * the buttons don't shift under the cursor. When collapsing a gap would hide\n * exactly one page, that page is shown instead of an `'ellipsis'` (same length).\n *\n * Pair it with the `Pagination*` parts (`PaginationItem` / `PaginationLink` /\n * `PaginationEllipsis`).\n *\n * @param page Current page, 1-based (clamped to `[1, count]`).\n * @param count Total number of pages.\n * @returns Slots to render, e.g. `[1, 'ellipsis', 9, 10, 11, 'ellipsis', 20]`.\n */\nexport function paginationRange(\n page: number,\n count: number,\n options: PaginationRangeOptions = {},\n): PaginationSlot[] {\n const siblings = Math.max(0, Math.trunc(options.siblings ?? 1));\n const boundaries = Math.max(0, Math.trunc(options.boundaries ?? 1));\n const total = Math.max(0, Math.trunc(count));\n if (total === 0) return [];\n const current = Math.min(Math.max(1, Math.trunc(page)), total);\n\n // Slots when the full window is shown with both ellipses: start boundary + end\n // boundary + current + 2 ellipses + siblings on each side.\n const windowSize = boundaries * 2 + siblings * 2 + 3;\n // Everything fits → list every page (the constant-length rule only applies past\n // this threshold).\n if (windowSize >= total) return range(1, total);\n\n const startPages = range(1, boundaries);\n const endPages = range(total - boundaries + 1, total);\n\n const siblingsStart = Math.max(\n Math.min(current - siblings, total - boundaries - siblings * 2 - 1),\n boundaries + 2,\n );\n const siblingsEnd = Math.min(\n Math.max(current + siblings, boundaries + siblings * 2 + 2),\n endPages.length > 0 ? endPages[0] - 2 : total - 1,\n );\n\n // Left gap: an ellipsis — unless collapsing would hide exactly one page, in\n // which case show that page (keeps the slot count constant).\n const leftGap: PaginationSlot[] =\n siblingsStart > boundaries + 2\n ? ['ellipsis']\n : boundaries + 1 < total - boundaries\n ? [boundaries + 1]\n : [];\n const rightGap: PaginationSlot[] =\n siblingsEnd < total - boundaries - 1\n ? ['ellipsis']\n : total - boundaries > boundaries\n ? [total - boundaries]\n : [];\n\n return [\n ...startPages,\n ...leftGap,\n ...range(siblingsStart, siblingsEnd),\n ...rightGap,\n ...endPages,\n ];\n}\n"]}
|
|
@@ -128,4 +128,4 @@ function StatChange({ trend, sentiment, variant, className, children, ...props }
|
|
|
128
128
|
|
|
129
129
|
|
|
130
130
|
exports.statVariants = statVariants; exports.Stat = Stat; exports.StatLabel = StatLabel; exports.StatValue = StatValue; exports.StatChart = StatChart; exports.StatChange = StatChange;
|
|
131
|
-
//# sourceMappingURL=chunk-
|
|
131
|
+
//# sourceMappingURL=chunk-KRIWNW4A.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-H4B2B4SV.cjs","../src/components/Stat/Stat.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-H4B2B4SV.cjs","sourcesContent":[null,"'use client';\n\nimport { type ReactNode } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { CaretUp, CaretDown, Minus } from '../../internal/icons';\n\n// ─── 1. Variants (cva) ─── //\n\nconst statVariants = cva('ddga-stat', {\n variants: {\n variant: {\n flat: 'ddga-stat--flat',\n elevated: 'ddga-stat--elevated',\n accent: 'ddga-stat--accent',\n // Soft sentiment-tinted gradient surface (reuses the accent tint vars).\n gradient: 'ddga-stat--gradient',\n },\n size: {\n sm: 'ddga-stat--sm',\n md: 'ddga-stat--md',\n lg: 'ddga-stat--lg',\n // Hero/display size for headline KPIs (display-scale value).\n xl: 'ddga-stat--xl',\n },\n },\n defaultVariants: {\n variant: 'flat',\n size: 'md',\n },\n});\n\ntype ChangeVariant = 'text' | 'chip';\n\ntype Trend = 'up' | 'down' | 'flat';\ntype Sentiment = 'positive' | 'negative' | 'neutral';\n\n// trend → caret icon (carried aria-hidden; carets are RTL-neutral).\nconst TREND_ICONS: Record<Trend, ReactNode> = {\n up: <CaretUp aria-hidden=\"true\" />,\n down: <CaretDown aria-hidden=\"true\" />,\n flat: <Minus aria-hidden=\"true\" />,\n};\n\n// Default sentiment when none is given explicitly.\nconst TREND_SENTIMENT: Record<Trend, Sentiment> = {\n up: 'positive',\n down: 'negative',\n flat: 'neutral',\n};\n\n// Explicit sentiment wins; else derive from trend; else undefined (no color).\nfunction resolveSentiment(trend?: Trend, sentiment?: Sentiment): Sentiment | undefined {\n if (sentiment) return sentiment;\n if (trend) return TREND_SENTIMENT[trend];\n return undefined;\n}\n\n// ─── 2. Types ─── //\n\ninterface StatProps extends React.ComponentProps<'div'>, VariantProps<typeof statVariants> {\n /** Small, muted label above the value. */\n label?: ReactNode;\n /** The metric, pre-formatted by the consumer (e.g. \"3,204\", \"SAR 1.2M\"). */\n value?: ReactNode;\n /** Change text — include the sign (e.g. \"+12.5%\") so AT conveys direction. */\n change?: ReactNode;\n /** Muted context beside the change (e.g. \"vs last month\"). */\n changeLabel?: ReactNode;\n /** Arrow direction: up → CaretUp, down → CaretDown, flat → Minus. */\n trend?: Trend;\n /** Change color. Omitted → derived from `trend`. Explicit always wins. */\n sentiment?: Sentiment;\n /**\n * How the change renders: `'text'` (default — colored text + caret) or\n * `'chip'` (the same, wrapped in a sentiment-tinted pill). Threaded to the\n * inner `StatChange`.\n */\n changeVariant?: ChangeVariant;\n /** Optional icon at the inline-end of the label row (decorative). */\n icon?: ReactNode;\n}\n\ntype StatLabelProps = React.ComponentProps<'div'>;\ntype StatValueProps = React.ComponentProps<'div'>;\ntype StatChartProps = React.ComponentProps<'div'>;\ninterface StatChangeProps extends React.ComponentProps<'div'> {\n trend?: Trend;\n sentiment?: Sentiment;\n /** `'chip'` wraps the change in a sentiment-tinted pill. Defaults to `'text'`. */\n variant?: ChangeVariant;\n}\n\n// ─── 3. Components ─── //\n\nfunction Stat({\n variant,\n size,\n label,\n value,\n change,\n changeLabel,\n trend,\n sentiment,\n changeVariant,\n icon,\n className,\n children,\n ...props\n}: StatProps) {\n const resolvedSentiment = resolveSentiment(trend, sentiment);\n return (\n <div\n data-slot=\"stat\"\n data-variant={variant ?? 'flat'}\n data-trend={trend}\n data-sentiment={resolvedSentiment}\n className={cn(statVariants({ variant, size }), className)}\n {...props}\n >\n {label || icon ? (\n <div className=\"ddga-stat__label-row\">\n {label ? <StatLabel>{label}</StatLabel> : null}\n {icon ? (\n <span className=\"ddga-stat__icon\" aria-hidden=\"true\">\n {icon}\n </span>\n ) : null}\n </div>\n ) : null}\n {value ? <StatValue>{value}</StatValue> : null}\n {change || changeLabel ? (\n <div className=\"ddga-stat__change-row\">\n {change ? (\n <StatChange trend={trend} sentiment={sentiment} variant={changeVariant}>\n {change}\n </StatChange>\n ) : null}\n {changeLabel ? <span className=\"ddga-stat__change-label\">{changeLabel}</span> : null}\n </div>\n ) : null}\n {children}\n </div>\n );\n}\n\nfunction StatLabel({ className, ...props }: StatLabelProps) {\n return <div data-slot=\"stat-label\" className={cn('ddga-stat__label', className)} {...props} />;\n}\n\nfunction StatValue({ className, ...props }: StatValueProps) {\n return <div data-slot=\"stat-value\" className={cn('ddga-stat__value', className)} {...props} />;\n}\n\n/**\n * Styled slot for a consumer-supplied sparkline / mini-chart. The library ships\n * no charting dependency — drop your own `<svg>`/chart in here and it gets a\n * consistent height + spacing, stretched to the tile width.\n */\nfunction StatChart({ className, ...props }: StatChartProps) {\n return <div data-slot=\"stat-chart\" className={cn('ddga-stat__chart', className)} {...props} />;\n}\n\nfunction StatChange({ trend, sentiment, variant, className, children, ...props }: StatChangeProps) {\n const resolvedSentiment = resolveSentiment(trend, sentiment);\n return (\n <div\n data-slot=\"stat-change\"\n data-trend={trend}\n data-sentiment={resolvedSentiment}\n className={cn(\n 'ddga-stat__change',\n resolvedSentiment ? `ddga-stat__change--${resolvedSentiment}` : null,\n variant === 'chip' && 'ddga-stat__change--chip',\n className,\n )}\n {...props}\n >\n {trend ? <span className=\"ddga-stat__change-icon\">{TREND_ICONS[trend]}</span> : null}\n {children}\n </div>\n );\n}\n\n// ─── 4. Exports ─── //\n\nexport { Stat, StatLabel, StatValue, StatChart, StatChange, statVariants };\nexport type { StatProps, StatLabelProps, StatValueProps, StatChartProps, StatChangeProps };\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-KRIWNW4A.cjs","../src/components/Stat/Stat.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-KRIWNW4A.cjs","sourcesContent":[null,"'use client';\n\nimport { type ReactNode } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { CaretUp, CaretDown, Minus } from '../../internal/icons';\n\n// ─── 1. Variants (cva) ─── //\n\nconst statVariants = cva('ddga-stat', {\n variants: {\n variant: {\n flat: 'ddga-stat--flat',\n elevated: 'ddga-stat--elevated',\n accent: 'ddga-stat--accent',\n // Soft sentiment-tinted gradient surface (reuses the accent tint vars).\n gradient: 'ddga-stat--gradient',\n },\n size: {\n sm: 'ddga-stat--sm',\n md: 'ddga-stat--md',\n lg: 'ddga-stat--lg',\n // Hero/display size for headline KPIs (display-scale value).\n xl: 'ddga-stat--xl',\n },\n },\n defaultVariants: {\n variant: 'flat',\n size: 'md',\n },\n});\n\ntype ChangeVariant = 'text' | 'chip';\n\ntype Trend = 'up' | 'down' | 'flat';\ntype Sentiment = 'positive' | 'negative' | 'neutral';\n\n// trend → caret icon (carried aria-hidden; carets are RTL-neutral).\nconst TREND_ICONS: Record<Trend, ReactNode> = {\n up: <CaretUp aria-hidden=\"true\" />,\n down: <CaretDown aria-hidden=\"true\" />,\n flat: <Minus aria-hidden=\"true\" />,\n};\n\n// Default sentiment when none is given explicitly.\nconst TREND_SENTIMENT: Record<Trend, Sentiment> = {\n up: 'positive',\n down: 'negative',\n flat: 'neutral',\n};\n\n// Explicit sentiment wins; else derive from trend; else undefined (no color).\nfunction resolveSentiment(trend?: Trend, sentiment?: Sentiment): Sentiment | undefined {\n if (sentiment) return sentiment;\n if (trend) return TREND_SENTIMENT[trend];\n return undefined;\n}\n\n// ─── 2. Types ─── //\n\ninterface StatProps extends React.ComponentProps<'div'>, VariantProps<typeof statVariants> {\n /** Small, muted label above the value. */\n label?: ReactNode;\n /** The metric, pre-formatted by the consumer (e.g. \"3,204\", \"SAR 1.2M\"). */\n value?: ReactNode;\n /** Change text — include the sign (e.g. \"+12.5%\") so AT conveys direction. */\n change?: ReactNode;\n /** Muted context beside the change (e.g. \"vs last month\"). */\n changeLabel?: ReactNode;\n /** Arrow direction: up → CaretUp, down → CaretDown, flat → Minus. */\n trend?: Trend;\n /** Change color. Omitted → derived from `trend`. Explicit always wins. */\n sentiment?: Sentiment;\n /**\n * How the change renders: `'text'` (default — colored text + caret) or\n * `'chip'` (the same, wrapped in a sentiment-tinted pill). Threaded to the\n * inner `StatChange`.\n */\n changeVariant?: ChangeVariant;\n /** Optional icon at the inline-end of the label row (decorative). */\n icon?: ReactNode;\n}\n\ntype StatLabelProps = React.ComponentProps<'div'>;\ntype StatValueProps = React.ComponentProps<'div'>;\ntype StatChartProps = React.ComponentProps<'div'>;\ninterface StatChangeProps extends React.ComponentProps<'div'> {\n trend?: Trend;\n sentiment?: Sentiment;\n /** `'chip'` wraps the change in a sentiment-tinted pill. Defaults to `'text'`. */\n variant?: ChangeVariant;\n}\n\n// ─── 3. Components ─── //\n\n/**\n * KPI / metric tile. Two ways to fill it, designed to combine:\n *\n * - **Prop mode** (the common case): pass `label` / `value` / `change` /\n * `changeLabel` / `trend` / `icon` and Stat renders the standard layout.\n * - **Compound children**: append extra content as children — it renders AFTER\n * the prop-mode rows.\n *\n * The blessed hybrid is **prop mode + a `<StatChart>` child** (a sparkline under\n * the metric). Do NOT also pass a child that duplicates a prop slot (e.g. a\n * `value` prop *and* a `<StatValue>` child) — both render and you get a\n * double. One source per slot. Stat owns its surface; use it directly (don't\n * wrap a bare `<Card>`), and lay tiles out with `<StatGroup>`.\n */\nfunction Stat({\n variant,\n size,\n label,\n value,\n change,\n changeLabel,\n trend,\n sentiment,\n changeVariant,\n icon,\n className,\n children,\n ...props\n}: StatProps) {\n const resolvedSentiment = resolveSentiment(trend, sentiment);\n return (\n <div\n data-slot=\"stat\"\n data-variant={variant ?? 'flat'}\n data-trend={trend}\n data-sentiment={resolvedSentiment}\n className={cn(statVariants({ variant, size }), className)}\n {...props}\n >\n {label || icon ? (\n <div className=\"ddga-stat__label-row\">\n {label ? <StatLabel>{label}</StatLabel> : null}\n {icon ? (\n <span className=\"ddga-stat__icon\" aria-hidden=\"true\">\n {icon}\n </span>\n ) : null}\n </div>\n ) : null}\n {value ? <StatValue>{value}</StatValue> : null}\n {change || changeLabel ? (\n <div className=\"ddga-stat__change-row\">\n {change ? (\n <StatChange trend={trend} sentiment={sentiment} variant={changeVariant}>\n {change}\n </StatChange>\n ) : null}\n {changeLabel ? <span className=\"ddga-stat__change-label\">{changeLabel}</span> : null}\n </div>\n ) : null}\n {children}\n </div>\n );\n}\n\nfunction StatLabel({ className, ...props }: StatLabelProps) {\n return <div data-slot=\"stat-label\" className={cn('ddga-stat__label', className)} {...props} />;\n}\n\nfunction StatValue({ className, ...props }: StatValueProps) {\n return <div data-slot=\"stat-value\" className={cn('ddga-stat__value', className)} {...props} />;\n}\n\n/**\n * Styled slot for a consumer-supplied sparkline / mini-chart. The library ships\n * no charting dependency — drop your own `<svg>`/chart in here and it gets a\n * consistent height + spacing, stretched to the tile width.\n */\nfunction StatChart({ className, ...props }: StatChartProps) {\n return <div data-slot=\"stat-chart\" className={cn('ddga-stat__chart', className)} {...props} />;\n}\n\nfunction StatChange({ trend, sentiment, variant, className, children, ...props }: StatChangeProps) {\n const resolvedSentiment = resolveSentiment(trend, sentiment);\n return (\n <div\n data-slot=\"stat-change\"\n data-trend={trend}\n data-sentiment={resolvedSentiment}\n className={cn(\n 'ddga-stat__change',\n resolvedSentiment ? `ddga-stat__change--${resolvedSentiment}` : null,\n variant === 'chip' && 'ddga-stat__change--chip',\n className,\n )}\n {...props}\n >\n {trend ? <span className=\"ddga-stat__change-icon\">{TREND_ICONS[trend]}</span> : null}\n {children}\n </div>\n );\n}\n\n// ─── 4. Exports ─── //\n\nexport { Stat, StatLabel, StatValue, StatChart, StatChange, statVariants };\nexport type { StatProps, StatLabelProps, StatValueProps, StatChartProps, StatChangeProps };\n"]}
|
|
@@ -44,7 +44,14 @@ function ScrollArea({
|
|
|
44
44
|
ScrollAreaPrimitive.Viewport,
|
|
45
45
|
{
|
|
46
46
|
"data-slot": "scroll-area-viewport",
|
|
47
|
-
className: cn(
|
|
47
|
+
className: cn(
|
|
48
|
+
"ddga-scroll-area__viewport",
|
|
49
|
+
// Vertical-only: constrain Radix's inline `display:table` content
|
|
50
|
+
// wrapper so wide children don't overflow an axis that has no
|
|
51
|
+
// scrollbar (see scroll-area.css). Horizontal/both keep the default.
|
|
52
|
+
orientation === "vertical" && "ddga-scroll-area__viewport--vertical",
|
|
53
|
+
viewportClassName
|
|
54
|
+
),
|
|
48
55
|
ref: viewportRef,
|
|
49
56
|
tabIndex: 0,
|
|
50
57
|
role: hasLabel ? "region" : void 0,
|
|
@@ -100,4 +107,4 @@ export {
|
|
|
100
107
|
scrollAreaVariants,
|
|
101
108
|
ScrollArea
|
|
102
109
|
};
|
|
103
|
-
//# sourceMappingURL=chunk-
|
|
110
|
+
//# sourceMappingURL=chunk-TXQK3BAO.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ScrollArea/ScrollArea.tsx"],"sourcesContent":["'use client';\n\nimport { ScrollArea as ScrollAreaPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n// Orientation is driven by which scrollbar(s) render, NOT by a modifier class —\n// so the cva carries only the base class. (It previously emitted dead\n// `--vertical/--horizontal/--both` classes that no stylesheet matched.) Kept as\n// a cva and exported for API compatibility.\nconst scrollAreaVariants = cva('ddga-scroll-area');\n\nfunction warnMissingLabel(ariaLabel?: string, ariaLabelledby?: string) {\n if (process.env.NODE_ENV === 'production') return;\n if (ariaLabel || ariaLabelledby) return;\n // Warn on every render (dev only) — mirrors the Popover sibling's a11y warning.\n console.warn(\n '[dga/ScrollArea] <ScrollArea> has no accessible name. The scroll viewport is ' +\n 'keyboard-focusable; pass `aria-label` or `aria-labelledby` so screen-reader users ' +\n 'know what region they are scrolling. If the content is itself focusable (e.g. a list ' +\n 'of links) and you do not want a labelled region, pass `viewportProps={{ tabIndex: -1 }}`.',\n );\n}\n\ntype ScrollAreaOrientation = 'vertical' | 'horizontal' | 'both';\n\nexport interface ScrollAreaProps\n extends\n Omit<React.ComponentProps<typeof ScrollAreaPrimitive.Root>, 'asChild' | 'orientation'>,\n Omit<VariantProps<typeof scrollAreaVariants>, 'orientation'> {\n /** Which scrollbar(s) to render. Default `'vertical'`. */\n orientation?: ScrollAreaOrientation;\n /** Ref to the scrollable viewport — use for programmatic scrolling. */\n viewportRef?: React.Ref<HTMLDivElement>;\n /**\n * Extra props forwarded to the viewport element (use `viewportRef` for the ref).\n * To drop the extra tab stop when the scrolled content is itself fully focusable\n * (e.g. a list of links), pass `viewportProps={{ tabIndex: -1 }}`.\n */\n viewportProps?: Omit<React.ComponentProps<'div'>, 'ref'>;\n /** Names the scroll region. Warns (dev only) if neither this nor `aria-labelledby` is set. */\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n}\n\n/**\n * Cross-browser, design-system-styled scroll container (wraps Radix ScrollArea).\n *\n * Set the bounding size (height / max-height) on the element via `className` /\n * `style` — without a bounded size nothing scrolls, exactly like native overflow.\n * The viewport is keyboard-focusable (`tabIndex={0}`) so keyboard users can scroll\n * with the arrow / Page keys; pass `aria-label` to name the region.\n *\n * Does not support `asChild`: it is a structural wrapper composing several Radix\n * parts, and the meaningful node — the viewport — is exposed via `viewportRef`.\n */\nexport function ScrollArea({\n className,\n orientation = 'vertical',\n type = 'hover',\n scrollHideDelay = 600,\n viewportRef,\n viewportProps,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n ...props\n}: ScrollAreaProps) {\n warnMissingLabel(ariaLabel, ariaLabelledby);\n\n const hasLabel = Boolean(ariaLabel || ariaLabelledby);\n const showVertical = orientation === 'vertical' || orientation === 'both';\n const showHorizontal = orientation === 'horizontal' || orientation === 'both';\n\n const { className: viewportClassName, ...restViewportProps } = viewportProps ?? {};\n\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n type={type}\n scrollHideDelay={scrollHideDelay}\n className={cn(scrollAreaVariants(), className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className={cn('ddga-scroll-area__viewport'
|
|
1
|
+
{"version":3,"sources":["../src/components/ScrollArea/ScrollArea.tsx"],"sourcesContent":["'use client';\n\nimport { ScrollArea as ScrollAreaPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n// Orientation is driven by which scrollbar(s) render, NOT by a modifier class —\n// so the cva carries only the base class. (It previously emitted dead\n// `--vertical/--horizontal/--both` classes that no stylesheet matched.) Kept as\n// a cva and exported for API compatibility.\nconst scrollAreaVariants = cva('ddga-scroll-area');\n\nfunction warnMissingLabel(ariaLabel?: string, ariaLabelledby?: string) {\n if (process.env.NODE_ENV === 'production') return;\n if (ariaLabel || ariaLabelledby) return;\n // Warn on every render (dev only) — mirrors the Popover sibling's a11y warning.\n console.warn(\n '[dga/ScrollArea] <ScrollArea> has no accessible name. The scroll viewport is ' +\n 'keyboard-focusable; pass `aria-label` or `aria-labelledby` so screen-reader users ' +\n 'know what region they are scrolling. If the content is itself focusable (e.g. a list ' +\n 'of links) and you do not want a labelled region, pass `viewportProps={{ tabIndex: -1 }}`.',\n );\n}\n\ntype ScrollAreaOrientation = 'vertical' | 'horizontal' | 'both';\n\nexport interface ScrollAreaProps\n extends\n Omit<React.ComponentProps<typeof ScrollAreaPrimitive.Root>, 'asChild' | 'orientation'>,\n Omit<VariantProps<typeof scrollAreaVariants>, 'orientation'> {\n /** Which scrollbar(s) to render. Default `'vertical'`. */\n orientation?: ScrollAreaOrientation;\n /** Ref to the scrollable viewport — use for programmatic scrolling. */\n viewportRef?: React.Ref<HTMLDivElement>;\n /**\n * Extra props forwarded to the viewport element (use `viewportRef` for the ref).\n * To drop the extra tab stop when the scrolled content is itself fully focusable\n * (e.g. a list of links), pass `viewportProps={{ tabIndex: -1 }}`.\n */\n viewportProps?: Omit<React.ComponentProps<'div'>, 'ref'>;\n /** Names the scroll region. Warns (dev only) if neither this nor `aria-labelledby` is set. */\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n}\n\n/**\n * Cross-browser, design-system-styled scroll container (wraps Radix ScrollArea).\n *\n * Set the bounding size (height / max-height) on the element via `className` /\n * `style` — without a bounded size nothing scrolls, exactly like native overflow.\n * The viewport is keyboard-focusable (`tabIndex={0}`) so keyboard users can scroll\n * with the arrow / Page keys; pass `aria-label` to name the region.\n *\n * Does not support `asChild`: it is a structural wrapper composing several Radix\n * parts, and the meaningful node — the viewport — is exposed via `viewportRef`.\n */\nexport function ScrollArea({\n className,\n orientation = 'vertical',\n type = 'hover',\n scrollHideDelay = 600,\n viewportRef,\n viewportProps,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n ...props\n}: ScrollAreaProps) {\n warnMissingLabel(ariaLabel, ariaLabelledby);\n\n const hasLabel = Boolean(ariaLabel || ariaLabelledby);\n const showVertical = orientation === 'vertical' || orientation === 'both';\n const showHorizontal = orientation === 'horizontal' || orientation === 'both';\n\n const { className: viewportClassName, ...restViewportProps } = viewportProps ?? {};\n\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n type={type}\n scrollHideDelay={scrollHideDelay}\n className={cn(scrollAreaVariants(), className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className={cn(\n 'ddga-scroll-area__viewport',\n // Vertical-only: constrain Radix's inline `display:table` content\n // wrapper so wide children don't overflow an axis that has no\n // scrollbar (see scroll-area.css). Horizontal/both keep the default.\n orientation === 'vertical' && 'ddga-scroll-area__viewport--vertical',\n viewportClassName,\n )}\n ref={viewportRef}\n tabIndex={0}\n role={hasLabel ? 'region' : undefined}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n {...restViewportProps}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n {showVertical ? (\n <ScrollAreaPrimitive.Scrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation=\"vertical\"\n className=\"ddga-scroll-area__scrollbar\"\n >\n <ScrollAreaPrimitive.Thumb\n data-slot=\"scroll-area-thumb\"\n className=\"ddga-scroll-area__thumb\"\n />\n </ScrollAreaPrimitive.Scrollbar>\n ) : null}\n {showHorizontal ? (\n <ScrollAreaPrimitive.Scrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation=\"horizontal\"\n className=\"ddga-scroll-area__scrollbar\"\n >\n <ScrollAreaPrimitive.Thumb\n data-slot=\"scroll-area-thumb\"\n className=\"ddga-scroll-area__thumb\"\n />\n </ScrollAreaPrimitive.Scrollbar>\n ) : null}\n {orientation === 'both' ? (\n <ScrollAreaPrimitive.Corner\n data-slot=\"scroll-area-corner\"\n className=\"ddga-scroll-area__corner\"\n />\n ) : null}\n </ScrollAreaPrimitive.Root>\n );\n}\n\nexport { scrollAreaVariants };\nexport type { ScrollAreaOrientation };\n"],"mappings":";;;;;AAEA,SAAS,cAAc,2BAA2B;AAClD,SAAS,WAA8B;AA0EnC,SAOE,KAPF;AAnEJ,IAAM,qBAAqB,IAAI,kBAAkB;AAEjD,SAAS,iBAAiB,WAAoB,gBAAyB;AACrE,MAAI,QAAQ,IAAI,aAAa,aAAc;AAC3C,MAAI,aAAa,eAAgB;AAEjC,UAAQ;AAAA,IACN;AAAA,EAIF;AACF;AAkCO,SAAS,WAAW;AAAA,EACzB;AAAA,EACA,cAAc;AAAA,EACd,OAAO;AAAA,EACP,kBAAkB;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB,GAAG;AACL,GAAoB;AAClB,mBAAiB,WAAW,cAAc;AAE1C,QAAM,WAAW,QAAQ,aAAa,cAAc;AACpD,QAAM,eAAe,gBAAgB,cAAc,gBAAgB;AACnE,QAAM,iBAAiB,gBAAgB,gBAAgB,gBAAgB;AAEvE,QAAM,EAAE,WAAW,mBAAmB,GAAG,kBAAkB,IAAI,iBAAiB,CAAC;AAEjF,SACE;AAAA,IAAC,oBAAoB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA,WAAW,GAAG,mBAAmB,GAAG,SAAS;AAAA,MAC5C,GAAG;AAAA,MAEJ;AAAA;AAAA,UAAC,oBAAoB;AAAA,UAApB;AAAA,YACC,aAAU;AAAA,YACV,WAAW;AAAA,cACT;AAAA;AAAA;AAAA;AAAA,cAIA,gBAAgB,cAAc;AAAA,cAC9B;AAAA,YACF;AAAA,YACA,KAAK;AAAA,YACL,UAAU;AAAA,YACV,MAAM,WAAW,WAAW;AAAA,YAC5B,cAAY;AAAA,YACZ,mBAAiB;AAAA,YAChB,GAAG;AAAA,YAEH;AAAA;AAAA,QACH;AAAA,QACC,eACC;AAAA,UAAC,oBAAoB;AAAA,UAApB;AAAA,YACC,aAAU;AAAA,YACV,aAAY;AAAA,YACZ,WAAU;AAAA,YAEV;AAAA,cAAC,oBAAoB;AAAA,cAApB;AAAA,gBACC,aAAU;AAAA,gBACV,WAAU;AAAA;AAAA,YACZ;AAAA;AAAA,QACF,IACE;AAAA,QACH,iBACC;AAAA,UAAC,oBAAoB;AAAA,UAApB;AAAA,YACC,aAAU;AAAA,YACV,aAAY;AAAA,YACZ,WAAU;AAAA,YAEV;AAAA,cAAC,oBAAoB;AAAA,cAApB;AAAA,gBACC,aAAU;AAAA,gBACV,WAAU;AAAA;AAAA,YACZ;AAAA;AAAA,QACF,IACE;AAAA,QACH,gBAAgB,SACf;AAAA,UAAC,oBAAoB;AAAA,UAApB;AAAA,YACC,aAAU;AAAA,YACV,WAAU;AAAA;AAAA,QACZ,IACE;AAAA;AAAA;AAAA,EACN;AAEJ;","names":[]}
|
|
@@ -44,7 +44,14 @@ function ScrollArea({
|
|
|
44
44
|
_radixui.ScrollArea.Viewport,
|
|
45
45
|
{
|
|
46
46
|
"data-slot": "scroll-area-viewport",
|
|
47
|
-
className: _chunkV6MXOJQ4cjs.cn.call(void 0,
|
|
47
|
+
className: _chunkV6MXOJQ4cjs.cn.call(void 0,
|
|
48
|
+
"ddga-scroll-area__viewport",
|
|
49
|
+
// Vertical-only: constrain Radix's inline `display:table` content
|
|
50
|
+
// wrapper so wide children don't overflow an axis that has no
|
|
51
|
+
// scrollbar (see scroll-area.css). Horizontal/both keep the default.
|
|
52
|
+
orientation === "vertical" && "ddga-scroll-area__viewport--vertical",
|
|
53
|
+
viewportClassName
|
|
54
|
+
),
|
|
48
55
|
ref: viewportRef,
|
|
49
56
|
tabIndex: 0,
|
|
50
57
|
role: hasLabel ? "region" : void 0,
|
|
@@ -100,4 +107,4 @@ function ScrollArea({
|
|
|
100
107
|
|
|
101
108
|
|
|
102
109
|
exports.scrollAreaVariants = scrollAreaVariants; exports.ScrollArea = ScrollArea;
|
|
103
|
-
//# sourceMappingURL=chunk-
|
|
110
|
+
//# sourceMappingURL=chunk-VYOETLZU.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-VYOETLZU.cjs","../src/components/ScrollArea/ScrollArea.tsx"],"names":[],"mappings":"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","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/chunk-VYOETLZU.cjs","sourcesContent":[null,"'use client';\n\nimport { ScrollArea as ScrollAreaPrimitive } from 'radix-ui';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n// Orientation is driven by which scrollbar(s) render, NOT by a modifier class —\n// so the cva carries only the base class. (It previously emitted dead\n// `--vertical/--horizontal/--both` classes that no stylesheet matched.) Kept as\n// a cva and exported for API compatibility.\nconst scrollAreaVariants = cva('ddga-scroll-area');\n\nfunction warnMissingLabel(ariaLabel?: string, ariaLabelledby?: string) {\n if (process.env.NODE_ENV === 'production') return;\n if (ariaLabel || ariaLabelledby) return;\n // Warn on every render (dev only) — mirrors the Popover sibling's a11y warning.\n console.warn(\n '[dga/ScrollArea] <ScrollArea> has no accessible name. The scroll viewport is ' +\n 'keyboard-focusable; pass `aria-label` or `aria-labelledby` so screen-reader users ' +\n 'know what region they are scrolling. If the content is itself focusable (e.g. a list ' +\n 'of links) and you do not want a labelled region, pass `viewportProps={{ tabIndex: -1 }}`.',\n );\n}\n\ntype ScrollAreaOrientation = 'vertical' | 'horizontal' | 'both';\n\nexport interface ScrollAreaProps\n extends\n Omit<React.ComponentProps<typeof ScrollAreaPrimitive.Root>, 'asChild' | 'orientation'>,\n Omit<VariantProps<typeof scrollAreaVariants>, 'orientation'> {\n /** Which scrollbar(s) to render. Default `'vertical'`. */\n orientation?: ScrollAreaOrientation;\n /** Ref to the scrollable viewport — use for programmatic scrolling. */\n viewportRef?: React.Ref<HTMLDivElement>;\n /**\n * Extra props forwarded to the viewport element (use `viewportRef` for the ref).\n * To drop the extra tab stop when the scrolled content is itself fully focusable\n * (e.g. a list of links), pass `viewportProps={{ tabIndex: -1 }}`.\n */\n viewportProps?: Omit<React.ComponentProps<'div'>, 'ref'>;\n /** Names the scroll region. Warns (dev only) if neither this nor `aria-labelledby` is set. */\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n}\n\n/**\n * Cross-browser, design-system-styled scroll container (wraps Radix ScrollArea).\n *\n * Set the bounding size (height / max-height) on the element via `className` /\n * `style` — without a bounded size nothing scrolls, exactly like native overflow.\n * The viewport is keyboard-focusable (`tabIndex={0}`) so keyboard users can scroll\n * with the arrow / Page keys; pass `aria-label` to name the region.\n *\n * Does not support `asChild`: it is a structural wrapper composing several Radix\n * parts, and the meaningful node — the viewport — is exposed via `viewportRef`.\n */\nexport function ScrollArea({\n className,\n orientation = 'vertical',\n type = 'hover',\n scrollHideDelay = 600,\n viewportRef,\n viewportProps,\n children,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n ...props\n}: ScrollAreaProps) {\n warnMissingLabel(ariaLabel, ariaLabelledby);\n\n const hasLabel = Boolean(ariaLabel || ariaLabelledby);\n const showVertical = orientation === 'vertical' || orientation === 'both';\n const showHorizontal = orientation === 'horizontal' || orientation === 'both';\n\n const { className: viewportClassName, ...restViewportProps } = viewportProps ?? {};\n\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n type={type}\n scrollHideDelay={scrollHideDelay}\n className={cn(scrollAreaVariants(), className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className={cn(\n 'ddga-scroll-area__viewport',\n // Vertical-only: constrain Radix's inline `display:table` content\n // wrapper so wide children don't overflow an axis that has no\n // scrollbar (see scroll-area.css). Horizontal/both keep the default.\n orientation === 'vertical' && 'ddga-scroll-area__viewport--vertical',\n viewportClassName,\n )}\n ref={viewportRef}\n tabIndex={0}\n role={hasLabel ? 'region' : undefined}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n {...restViewportProps}\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n {showVertical ? (\n <ScrollAreaPrimitive.Scrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation=\"vertical\"\n className=\"ddga-scroll-area__scrollbar\"\n >\n <ScrollAreaPrimitive.Thumb\n data-slot=\"scroll-area-thumb\"\n className=\"ddga-scroll-area__thumb\"\n />\n </ScrollAreaPrimitive.Scrollbar>\n ) : null}\n {showHorizontal ? (\n <ScrollAreaPrimitive.Scrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation=\"horizontal\"\n className=\"ddga-scroll-area__scrollbar\"\n >\n <ScrollAreaPrimitive.Thumb\n data-slot=\"scroll-area-thumb\"\n className=\"ddga-scroll-area__thumb\"\n />\n </ScrollAreaPrimitive.Scrollbar>\n ) : null}\n {orientation === 'both' ? (\n <ScrollAreaPrimitive.Corner\n data-slot=\"scroll-area-corner\"\n className=\"ddga-scroll-area__corner\"\n />\n ) : null}\n </ScrollAreaPrimitive.Root>\n );\n}\n\nexport { scrollAreaVariants };\nexport type { ScrollAreaOrientation };\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Stat/Stat.tsx"],"sourcesContent":["'use client';\n\nimport { type ReactNode } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport { CaretUp, CaretDown, Minus } from '../../internal/icons';\n\n// ─── 1. Variants (cva) ─── //\n\nconst statVariants = cva('ddga-stat', {\n variants: {\n variant: {\n flat: 'ddga-stat--flat',\n elevated: 'ddga-stat--elevated',\n accent: 'ddga-stat--accent',\n // Soft sentiment-tinted gradient surface (reuses the accent tint vars).\n gradient: 'ddga-stat--gradient',\n },\n size: {\n sm: 'ddga-stat--sm',\n md: 'ddga-stat--md',\n lg: 'ddga-stat--lg',\n // Hero/display size for headline KPIs (display-scale value).\n xl: 'ddga-stat--xl',\n },\n },\n defaultVariants: {\n variant: 'flat',\n size: 'md',\n },\n});\n\ntype ChangeVariant = 'text' | 'chip';\n\ntype Trend = 'up' | 'down' | 'flat';\ntype Sentiment = 'positive' | 'negative' | 'neutral';\n\n// trend → caret icon (carried aria-hidden; carets are RTL-neutral).\nconst TREND_ICONS: Record<Trend, ReactNode> = {\n up: <CaretUp aria-hidden=\"true\" />,\n down: <CaretDown aria-hidden=\"true\" />,\n flat: <Minus aria-hidden=\"true\" />,\n};\n\n// Default sentiment when none is given explicitly.\nconst TREND_SENTIMENT: Record<Trend, Sentiment> = {\n up: 'positive',\n down: 'negative',\n flat: 'neutral',\n};\n\n// Explicit sentiment wins; else derive from trend; else undefined (no color).\nfunction resolveSentiment(trend?: Trend, sentiment?: Sentiment): Sentiment | undefined {\n if (sentiment) return sentiment;\n if (trend) return TREND_SENTIMENT[trend];\n return undefined;\n}\n\n// ─── 2. Types ─── //\n\ninterface StatProps extends React.ComponentProps<'div'>, VariantProps<typeof statVariants> {\n /** Small, muted label above the value. */\n label?: ReactNode;\n /** The metric, pre-formatted by the consumer (e.g. \"3,204\", \"SAR 1.2M\"). */\n value?: ReactNode;\n /** Change text — include the sign (e.g. \"+12.5%\") so AT conveys direction. */\n change?: ReactNode;\n /** Muted context beside the change (e.g. \"vs last month\"). */\n changeLabel?: ReactNode;\n /** Arrow direction: up → CaretUp, down → CaretDown, flat → Minus. */\n trend?: Trend;\n /** Change color. Omitted → derived from `trend`. Explicit always wins. */\n sentiment?: Sentiment;\n /**\n * How the change renders: `'text'` (default — colored text + caret) or\n * `'chip'` (the same, wrapped in a sentiment-tinted pill). Threaded to the\n * inner `StatChange`.\n */\n changeVariant?: ChangeVariant;\n /** Optional icon at the inline-end of the label row (decorative). */\n icon?: ReactNode;\n}\n\ntype StatLabelProps = React.ComponentProps<'div'>;\ntype StatValueProps = React.ComponentProps<'div'>;\ntype StatChartProps = React.ComponentProps<'div'>;\ninterface StatChangeProps extends React.ComponentProps<'div'> {\n trend?: Trend;\n sentiment?: Sentiment;\n /** `'chip'` wraps the change in a sentiment-tinted pill. Defaults to `'text'`. */\n variant?: ChangeVariant;\n}\n\n// ─── 3. Components ─── //\n\n/**\n * KPI / metric tile. Two ways to fill it, designed to combine:\n *\n * - **Prop mode** (the common case): pass `label` / `value` / `change` /\n * `changeLabel` / `trend` / `icon` and Stat renders the standard layout.\n * - **Compound children**: append extra content as children — it renders AFTER\n * the prop-mode rows.\n *\n * The blessed hybrid is **prop mode + a `<StatChart>` child** (a sparkline under\n * the metric). Do NOT also pass a child that duplicates a prop slot (e.g. a\n * `value` prop *and* a `<StatValue>` child) — both render and you get a\n * double. One source per slot. Stat owns its surface; use it directly (don't\n * wrap a bare `<Card>`), and lay tiles out with `<StatGroup>`.\n */\nfunction Stat({\n variant,\n size,\n label,\n value,\n change,\n changeLabel,\n trend,\n sentiment,\n changeVariant,\n icon,\n className,\n children,\n ...props\n}: StatProps) {\n const resolvedSentiment = resolveSentiment(trend, sentiment);\n return (\n <div\n data-slot=\"stat\"\n data-variant={variant ?? 'flat'}\n data-trend={trend}\n data-sentiment={resolvedSentiment}\n className={cn(statVariants({ variant, size }), className)}\n {...props}\n >\n {label || icon ? (\n <div className=\"ddga-stat__label-row\">\n {label ? <StatLabel>{label}</StatLabel> : null}\n {icon ? (\n <span className=\"ddga-stat__icon\" aria-hidden=\"true\">\n {icon}\n </span>\n ) : null}\n </div>\n ) : null}\n {value ? <StatValue>{value}</StatValue> : null}\n {change || changeLabel ? (\n <div className=\"ddga-stat__change-row\">\n {change ? (\n <StatChange trend={trend} sentiment={sentiment} variant={changeVariant}>\n {change}\n </StatChange>\n ) : null}\n {changeLabel ? <span className=\"ddga-stat__change-label\">{changeLabel}</span> : null}\n </div>\n ) : null}\n {children}\n </div>\n );\n}\n\nfunction StatLabel({ className, ...props }: StatLabelProps) {\n return <div data-slot=\"stat-label\" className={cn('ddga-stat__label', className)} {...props} />;\n}\n\nfunction StatValue({ className, ...props }: StatValueProps) {\n return <div data-slot=\"stat-value\" className={cn('ddga-stat__value', className)} {...props} />;\n}\n\n/**\n * Styled slot for a consumer-supplied sparkline / mini-chart. The library ships\n * no charting dependency — drop your own `<svg>`/chart in here and it gets a\n * consistent height + spacing, stretched to the tile width.\n */\nfunction StatChart({ className, ...props }: StatChartProps) {\n return <div data-slot=\"stat-chart\" className={cn('ddga-stat__chart', className)} {...props} />;\n}\n\nfunction StatChange({ trend, sentiment, variant, className, children, ...props }: StatChangeProps) {\n const resolvedSentiment = resolveSentiment(trend, sentiment);\n return (\n <div\n data-slot=\"stat-change\"\n data-trend={trend}\n data-sentiment={resolvedSentiment}\n className={cn(\n 'ddga-stat__change',\n resolvedSentiment ? `ddga-stat__change--${resolvedSentiment}` : null,\n variant === 'chip' && 'ddga-stat__change--chip',\n className,\n )}\n {...props}\n >\n {trend ? <span className=\"ddga-stat__change-icon\">{TREND_ICONS[trend]}</span> : null}\n {children}\n </div>\n );\n}\n\n// ─── 4. Exports ─── //\n\nexport { Stat, StatLabel, StatValue, StatChart, StatChange, statVariants };\nexport type { StatProps, StatLabelProps, StatValueProps, StatChartProps, StatChangeProps };\n"],"mappings":"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","names":[]}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../../chunk-
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../../chunk-CZCIERDM.cjs');
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var _chunkJ7GWUCFMcjs = require('../../chunk-J7GWUCFM.cjs');
|
|
2
5
|
|
|
3
6
|
|
|
4
7
|
|
|
@@ -22,5 +25,6 @@ require('../../chunk-V6MXOJQ4.cjs');
|
|
|
22
25
|
|
|
23
26
|
|
|
24
27
|
|
|
25
|
-
|
|
28
|
+
|
|
29
|
+
exports.Pagination = _chunkUPIDCMZIcjs.Pagination; exports.PaginationContent = _chunkUPIDCMZIcjs.PaginationContent; exports.PaginationEllipsis = _chunkUPIDCMZIcjs.PaginationEllipsis; exports.PaginationItem = _chunkUPIDCMZIcjs.PaginationItem; exports.PaginationLink = _chunkUPIDCMZIcjs.PaginationLink; exports.PaginationNext = _chunkUPIDCMZIcjs.PaginationNext; exports.PaginationPrevious = _chunkUPIDCMZIcjs.PaginationPrevious; exports.paginationLinkVariants = _chunkUPIDCMZIcjs.paginationLinkVariants; exports.paginationRange = _chunkJ7GWUCFMcjs.paginationRange; exports.paginationVariants = _chunkUPIDCMZIcjs.paginationVariants;
|
|
26
30
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/components/Pagination/index.cjs"],"names":[],"mappings":"AAAA,6GAAiC;AACjC;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,4DAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,
|
|
1
|
+
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/components/Pagination/index.cjs"],"names":[],"mappings":"AAAA,6GAAiC;AACjC;AACE;AACF,4DAAiC;AACjC;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,4DAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,qnBAAC","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/components/Pagination/index.cjs"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import "../../chunk-
|
|
1
|
+
import "../../chunk-B6ODWTVF.js";
|
|
2
|
+
import {
|
|
3
|
+
paginationRange
|
|
4
|
+
} from "../../chunk-HIZSEYQY.js";
|
|
2
5
|
import {
|
|
3
6
|
Pagination,
|
|
4
7
|
PaginationContent,
|
|
@@ -21,6 +24,7 @@ export {
|
|
|
21
24
|
PaginationNext,
|
|
22
25
|
PaginationPrevious,
|
|
23
26
|
paginationLinkVariants,
|
|
27
|
+
paginationRange,
|
|
24
28
|
paginationVariants
|
|
25
29
|
};
|
|
26
30
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/components/Pagination/paginationRange.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,4DAAiC;AACjC;AACE;AACF,4DAAC","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/components/Pagination/paginationRange.cjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkVYOETLZUcjs = require('../../chunk-VYOETLZU.cjs');
|
|
6
6
|
require('../../chunk-V6MXOJQ4.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
exports.ScrollArea =
|
|
10
|
+
exports.ScrollArea = _chunkVYOETLZUcjs.ScrollArea; exports.scrollAreaVariants = _chunkVYOETLZUcjs.scrollAreaVariants;
|
|
11
11
|
//# sourceMappingURL=ScrollArea.cjs.map
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var _chunkVYOETLZUcjs = require('../../chunk-VYOETLZU.cjs');
|
|
6
6
|
require('../../chunk-V6MXOJQ4.cjs');
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
exports.ScrollArea =
|
|
10
|
+
exports.ScrollArea = _chunkVYOETLZUcjs.ScrollArea; exports.scrollAreaVariants = _chunkVYOETLZUcjs.scrollAreaVariants;
|
|
11
11
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
var _chunkNUC6WJU4cjs = require('../../chunk-NUC6WJU4.cjs');
|
|
15
15
|
require('../../chunk-I6UOIS4J.cjs');
|
|
16
16
|
require('../../chunk-LG2IADSZ.cjs');
|
|
17
|
-
require('../../chunk-YUJZEQJW.cjs');
|
|
18
17
|
require('../../chunk-J4OE3JP5.cjs');
|
|
18
|
+
require('../../chunk-YUJZEQJW.cjs');
|
|
19
19
|
require('../../chunk-P2JM7CUD.cjs');
|
|
20
20
|
require('../../chunk-BPFCWXSN.cjs');
|
|
21
21
|
require('../../chunk-FQLVTLUI.cjs');
|
|
@@ -14,8 +14,8 @@ import {
|
|
|
14
14
|
} from "../../chunk-66EVFQVL.js";
|
|
15
15
|
import "../../chunk-66R54X6R.js";
|
|
16
16
|
import "../../chunk-IFB53HNO.js";
|
|
17
|
-
import "../../chunk-F7NPGAKU.js";
|
|
18
17
|
import "../../chunk-WY4KTEIL.js";
|
|
18
|
+
import "../../chunk-F7NPGAKU.js";
|
|
19
19
|
import "../../chunk-RZEJPDIW.js";
|
|
20
20
|
import "../../chunk-XFVRBYPC.js";
|
|
21
21
|
import "../../chunk-TMXABSFE.js";
|
|
@@ -31,13 +31,13 @@ var _chunk3MEIVAYOcjs = require('../../chunk-3MEIVAYO.cjs');
|
|
|
31
31
|
var _chunkNUC6WJU4cjs = require('../../chunk-NUC6WJU4.cjs');
|
|
32
32
|
require('../../chunk-I6UOIS4J.cjs');
|
|
33
33
|
require('../../chunk-LG2IADSZ.cjs');
|
|
34
|
+
require('../../chunk-J4OE3JP5.cjs');
|
|
34
35
|
|
|
35
36
|
|
|
36
37
|
var _chunkYUJZEQJWcjs = require('../../chunk-YUJZEQJW.cjs');
|
|
37
38
|
|
|
38
39
|
|
|
39
40
|
var _chunkVXR7IJMHcjs = require('../../chunk-VXR7IJMH.cjs');
|
|
40
|
-
require('../../chunk-J4OE3JP5.cjs');
|
|
41
41
|
require('../../chunk-P2JM7CUD.cjs');
|
|
42
42
|
require('../../chunk-S7ENBLZK.cjs');
|
|
43
43
|
require('../../chunk-KPZ5T4DW.cjs');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/components/Sidebar/index.cjs"],"names":[],"mappings":"AAAA,6GAAiC;AACjC;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,4DAAiC;AACjC;AACE;AACA;AACA;AACA;AACF,4DAAiC;AACjC;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,4DAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC;AACE;AACF,4DAAiC;AACjC;AACE;AACF,4DAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC
|
|
1
|
+
{"version":3,"sources":["/home/devdhaif/work/react/dga-dev/packages/react/dist/components/Sidebar/index.cjs"],"names":[],"mappings":"AAAA,6GAAiC;AACjC;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,4DAAiC;AACjC;AACE;AACA;AACA;AACA;AACF,4DAAiC;AACjC;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,4DAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC;AACE;AACF,4DAAiC;AACjC;AACE;AACF,4DAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC,oCAAiC;AACjC;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,ykDAAC","file":"/home/devdhaif/work/react/dga-dev/packages/react/dist/components/Sidebar/index.cjs"}
|
|
@@ -31,13 +31,13 @@ import {
|
|
|
31
31
|
} from "../../chunk-66EVFQVL.js";
|
|
32
32
|
import "../../chunk-66R54X6R.js";
|
|
33
33
|
import "../../chunk-IFB53HNO.js";
|
|
34
|
+
import "../../chunk-WY4KTEIL.js";
|
|
34
35
|
import {
|
|
35
36
|
useSidebar
|
|
36
37
|
} from "../../chunk-F7NPGAKU.js";
|
|
37
38
|
import {
|
|
38
39
|
useIsMobile
|
|
39
40
|
} from "../../chunk-QHCXQQ2J.js";
|
|
40
|
-
import "../../chunk-WY4KTEIL.js";
|
|
41
41
|
import "../../chunk-RZEJPDIW.js";
|
|
42
42
|
import "../../chunk-O6AFVTKN.js";
|
|
43
43
|
import "../../chunk-VAF6PKVY.js";
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkKRIWNW4Acjs = require('../../chunk-KRIWNW4A.cjs');
|
|
10
10
|
require('../../chunk-IKWD2OEN.cjs');
|
|
11
11
|
require('../../chunk-V6MXOJQ4.cjs');
|
|
12
12
|
|
|
@@ -16,5 +16,5 @@ require('../../chunk-V6MXOJQ4.cjs');
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
|
|
19
|
-
exports.Stat =
|
|
19
|
+
exports.Stat = _chunkKRIWNW4Acjs.Stat; exports.StatChange = _chunkKRIWNW4Acjs.StatChange; exports.StatChart = _chunkKRIWNW4Acjs.StatChart; exports.StatLabel = _chunkKRIWNW4Acjs.StatLabel; exports.StatValue = _chunkKRIWNW4Acjs.StatValue; exports.statVariants = _chunkKRIWNW4Acjs.statVariants;
|
|
20
20
|
//# sourceMappingURL=Stat.cjs.map
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkKRIWNW4Acjs = require('../../chunk-KRIWNW4A.cjs');
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
@@ -22,5 +22,5 @@ require('../../chunk-V6MXOJQ4.cjs');
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
exports.Stat =
|
|
25
|
+
exports.Stat = _chunkKRIWNW4Acjs.Stat; exports.StatChange = _chunkKRIWNW4Acjs.StatChange; exports.StatChart = _chunkKRIWNW4Acjs.StatChart; exports.StatGroup = _chunkAM2OVOQVcjs.StatGroup; exports.StatLabel = _chunkKRIWNW4Acjs.StatLabel; exports.StatValue = _chunkKRIWNW4Acjs.StatValue; exports.statGroupVariants = _chunkAM2OVOQVcjs.statGroupVariants; exports.statVariants = _chunkKRIWNW4Acjs.statVariants;
|
|
26
26
|
//# sourceMappingURL=index.cjs.map
|