@flamingo-stack/openframe-frontend-core 0.0.591 → 0.0.592

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.
Files changed (142) hide show
  1. package/dist/{chunk-BQE4HTDR.js → chunk-2JNCZDJR.js} +2 -2
  2. package/dist/{chunk-YEKPHSWC.cjs → chunk-3JOBM57M.cjs} +22 -22
  3. package/dist/{chunk-YEKPHSWC.cjs.map → chunk-3JOBM57M.cjs.map} +1 -1
  4. package/dist/{chunk-WKOJL6A2.cjs → chunk-5LJZWTOE.cjs} +10 -10
  5. package/dist/{chunk-WKOJL6A2.cjs.map → chunk-5LJZWTOE.cjs.map} +1 -1
  6. package/dist/{chunk-NXYOUBOL.cjs → chunk-5MHDMDPX.cjs} +21 -21
  7. package/dist/{chunk-NXYOUBOL.cjs.map → chunk-5MHDMDPX.cjs.map} +1 -1
  8. package/dist/{chunk-U2XRBHBX.js → chunk-6GMMR667.js} +9 -9
  9. package/dist/{chunk-WIMGAPVH.js → chunk-ASFEUMFW.js} +4 -4
  10. package/dist/{chunk-4UP2SGSO.js → chunk-AUA6OSU7.js} +3 -3
  11. package/dist/{chunk-YMAHVHCX.cjs → chunk-BZEWPW5A.cjs} +3 -3
  12. package/dist/{chunk-YMAHVHCX.cjs.map → chunk-BZEWPW5A.cjs.map} +1 -1
  13. package/dist/{chunk-SW3CZ2KS.cjs → chunk-COY57SZP.cjs} +129 -84
  14. package/dist/chunk-COY57SZP.cjs.map +1 -0
  15. package/dist/{chunk-VGBTCUPG.js → chunk-CRW4WRMH.js} +2 -2
  16. package/dist/{chunk-E455M3WJ.js → chunk-F543W3F2.js} +4 -4
  17. package/dist/{chunk-ZZF6Z7KB.cjs → chunk-FKXDDJEQ.cjs} +11 -11
  18. package/dist/{chunk-ZZF6Z7KB.cjs.map → chunk-FKXDDJEQ.cjs.map} +1 -1
  19. package/dist/{chunk-RGCBUNMJ.js → chunk-FSCQOWXI.js} +2 -2
  20. package/dist/{chunk-USDG6IWK.cjs → chunk-FVADHGDP.cjs} +7 -7
  21. package/dist/{chunk-USDG6IWK.cjs.map → chunk-FVADHGDP.cjs.map} +1 -1
  22. package/dist/{chunk-OKWGSJAI.js → chunk-GGQZBSFN.js} +1 -1
  23. package/dist/chunk-GGQZBSFN.js.map +1 -0
  24. package/dist/{chunk-RNXY35DZ.cjs → chunk-H64ZHSYR.cjs} +1 -1
  25. package/dist/chunk-H64ZHSYR.cjs.map +1 -0
  26. package/dist/{chunk-OS72RV57.cjs → chunk-HGEA6PW7.cjs} +3 -3
  27. package/dist/{chunk-OS72RV57.cjs.map → chunk-HGEA6PW7.cjs.map} +1 -1
  28. package/dist/{chunk-ZFHIMK4W.js → chunk-JIINHJIT.js} +5 -5
  29. package/dist/{chunk-CWO3YFVZ.js → chunk-LRQCKSZC.js} +2 -2
  30. package/dist/{chunk-LL6J6N76.js → chunk-LXD2QJFG.js} +3 -3
  31. package/dist/{chunk-2TJSDSXW.js → chunk-MOHSA65M.js} +2 -2
  32. package/dist/{chunk-JHVCH3CK.cjs → chunk-NEFNARFF.cjs} +6 -6
  33. package/dist/{chunk-JHVCH3CK.cjs.map → chunk-NEFNARFF.cjs.map} +1 -1
  34. package/dist/{chunk-XK7SLEZB.cjs → chunk-NICIJRZ4.cjs} +3 -3
  35. package/dist/{chunk-XK7SLEZB.cjs.map → chunk-NICIJRZ4.cjs.map} +1 -1
  36. package/dist/{chunk-LUWFLC3T.js → chunk-NYH3NVUF.js} +3 -3
  37. package/dist/{chunk-BOED5ISE.js → chunk-NZQYZKIN.js} +6 -6
  38. package/dist/{chunk-AZ4A4RBL.cjs → chunk-O4VGEJ7I.cjs} +60 -60
  39. package/dist/{chunk-AZ4A4RBL.cjs.map → chunk-O4VGEJ7I.cjs.map} +1 -1
  40. package/dist/{chunk-B7ZCBGUN.cjs → chunk-O4VZOA2Q.cjs} +3 -3
  41. package/dist/{chunk-B7ZCBGUN.cjs.map → chunk-O4VZOA2Q.cjs.map} +1 -1
  42. package/dist/{chunk-QVAKJB64.js → chunk-OO6AMBHV.js} +2 -2
  43. package/dist/{chunk-U3V4TPT5.js → chunk-R25AUM2R.js} +3 -3
  44. package/dist/{chunk-VGY7D6LG.cjs → chunk-STYNZ4QM.cjs} +3 -3
  45. package/dist/{chunk-VGY7D6LG.cjs.map → chunk-STYNZ4QM.cjs.map} +1 -1
  46. package/dist/{chunk-FHKP4H6N.cjs → chunk-TQMZFXWZ.cjs} +5 -5
  47. package/dist/{chunk-FHKP4H6N.cjs.map → chunk-TQMZFXWZ.cjs.map} +1 -1
  48. package/dist/{chunk-AMCARR6Y.cjs → chunk-V7RUX5CX.cjs} +15 -15
  49. package/dist/{chunk-AMCARR6Y.cjs.map → chunk-V7RUX5CX.cjs.map} +1 -1
  50. package/dist/{chunk-CXILZQFT.cjs → chunk-W2RUBABW.cjs} +19 -19
  51. package/dist/{chunk-CXILZQFT.cjs.map → chunk-W2RUBABW.cjs.map} +1 -1
  52. package/dist/{chunk-DKVNW2QD.cjs → chunk-WOGLPNK3.cjs} +3 -3
  53. package/dist/{chunk-DKVNW2QD.cjs.map → chunk-WOGLPNK3.cjs.map} +1 -1
  54. package/dist/{chunk-HV6MO4HG.cjs → chunk-WP3AVAMP.cjs} +37 -37
  55. package/dist/{chunk-HV6MO4HG.cjs.map → chunk-WP3AVAMP.cjs.map} +1 -1
  56. package/dist/{chunk-ZYA6274A.js → chunk-WVHQQ3NY.js} +87 -42
  57. package/dist/chunk-WVHQQ3NY.js.map +1 -0
  58. package/dist/{chunk-WMZ5AUTB.js → chunk-WZJOILPU.js} +2 -2
  59. package/dist/{chunk-ALTSOKHP.js → chunk-XHDBU5EI.js} +2 -2
  60. package/dist/{chunk-T6RY2MC6.js → chunk-XNGE5EE5.js} +8 -8
  61. package/dist/{chunk-5SJSG5RV.cjs → chunk-YBENO4XG.cjs} +8 -8
  62. package/dist/{chunk-5SJSG5RV.cjs.map → chunk-YBENO4XG.cjs.map} +1 -1
  63. package/dist/{chunk-OBJEFMOI.cjs → chunk-ZT2Z2BYH.cjs} +66 -66
  64. package/dist/{chunk-OBJEFMOI.cjs.map → chunk-ZT2Z2BYH.cjs.map} +1 -1
  65. package/dist/{chunk-BATTVHZT.js → chunk-ZZHHKE2Q.js} +3 -3
  66. package/dist/components/case-studies/index.cjs +10 -10
  67. package/dist/components/case-studies/index.js +4 -4
  68. package/dist/components/contact/index.cjs +5 -5
  69. package/dist/components/contact/index.js +4 -4
  70. package/dist/components/docs/index.cjs +8 -8
  71. package/dist/components/docs/index.js +7 -7
  72. package/dist/components/embeds/index.cjs +5 -5
  73. package/dist/components/embeds/index.js +4 -4
  74. package/dist/components/faq/index.cjs +6 -6
  75. package/dist/components/faq/index.js +5 -5
  76. package/dist/components/features/index.cjs +4 -4
  77. package/dist/components/features/index.js +3 -3
  78. package/dist/components/help-center-pages/index.cjs +27 -27
  79. package/dist/components/help-center-pages/index.js +18 -18
  80. package/dist/components/index.cjs +40 -40
  81. package/dist/components/index.js +18 -18
  82. package/dist/components/meeting-scheduler/index.cjs +31 -31
  83. package/dist/components/meeting-scheduler/index.js +5 -5
  84. package/dist/components/navigation/index.cjs +7 -7
  85. package/dist/components/navigation/index.js +6 -6
  86. package/dist/components/onboarding-guides/index.cjs +8 -8
  87. package/dist/components/onboarding-guides/index.js +7 -7
  88. package/dist/components/related-content/index.cjs +4 -4
  89. package/dist/components/related-content/index.js +3 -3
  90. package/dist/components/tickets/index.cjs +9 -9
  91. package/dist/components/tickets/index.js +8 -8
  92. package/dist/components/ui/data-table/data-table-body.d.ts +18 -1
  93. package/dist/components/ui/data-table/data-table-body.d.ts.map +1 -1
  94. package/dist/components/ui/data-table/data-table-row.d.ts +8 -1
  95. package/dist/components/ui/data-table/data-table-row.d.ts.map +1 -1
  96. package/dist/components/ui/data-table/data-table-skeleton.d.ts +8 -1
  97. package/dist/components/ui/data-table/data-table-skeleton.d.ts.map +1 -1
  98. package/dist/components/ui/data-table/index.d.ts +1 -1
  99. package/dist/components/ui/entity-image.d.ts +12 -1
  100. package/dist/components/ui/entity-image.d.ts.map +1 -1
  101. package/dist/components/ui/index.cjs +4 -4
  102. package/dist/components/ui/index.js +3 -3
  103. package/dist/hooks/index.cjs +3 -3
  104. package/dist/hooks/index.js +2 -2
  105. package/dist/index.cjs +8 -8
  106. package/dist/index.js +7 -7
  107. package/dist/utils/index.cjs.map +1 -1
  108. package/dist/utils/index.js.map +1 -1
  109. package/dist/utils/search-params.cjs.map +1 -1
  110. package/dist/utils/search-params.js.map +1 -1
  111. package/package.json +1 -1
  112. package/src/__tests__/data-table-row-height.test.tsx +139 -0
  113. package/src/__tests__/mlg-platform-leaves.test.ts +1 -1
  114. package/src/components/ui/data-table/data-table-body.tsx +37 -7
  115. package/src/components/ui/data-table/data-table-row.tsx +24 -6
  116. package/src/components/ui/data-table/data-table-skeleton.tsx +24 -3
  117. package/src/components/ui/entity-image.tsx +19 -3
  118. package/src/hooks/state/__tests__/use-api-params.test.ts +1 -1
  119. package/src/utils/search-params.ts +4 -4
  120. package/dist/chunk-OKWGSJAI.js.map +0 -1
  121. package/dist/chunk-RNXY35DZ.cjs.map +0 -1
  122. package/dist/chunk-SW3CZ2KS.cjs.map +0 -1
  123. package/dist/chunk-ZYA6274A.js.map +0 -1
  124. /package/dist/{chunk-BQE4HTDR.js.map → chunk-2JNCZDJR.js.map} +0 -0
  125. /package/dist/{chunk-U2XRBHBX.js.map → chunk-6GMMR667.js.map} +0 -0
  126. /package/dist/{chunk-WIMGAPVH.js.map → chunk-ASFEUMFW.js.map} +0 -0
  127. /package/dist/{chunk-4UP2SGSO.js.map → chunk-AUA6OSU7.js.map} +0 -0
  128. /package/dist/{chunk-VGBTCUPG.js.map → chunk-CRW4WRMH.js.map} +0 -0
  129. /package/dist/{chunk-E455M3WJ.js.map → chunk-F543W3F2.js.map} +0 -0
  130. /package/dist/{chunk-RGCBUNMJ.js.map → chunk-FSCQOWXI.js.map} +0 -0
  131. /package/dist/{chunk-ZFHIMK4W.js.map → chunk-JIINHJIT.js.map} +0 -0
  132. /package/dist/{chunk-CWO3YFVZ.js.map → chunk-LRQCKSZC.js.map} +0 -0
  133. /package/dist/{chunk-LL6J6N76.js.map → chunk-LXD2QJFG.js.map} +0 -0
  134. /package/dist/{chunk-2TJSDSXW.js.map → chunk-MOHSA65M.js.map} +0 -0
  135. /package/dist/{chunk-LUWFLC3T.js.map → chunk-NYH3NVUF.js.map} +0 -0
  136. /package/dist/{chunk-BOED5ISE.js.map → chunk-NZQYZKIN.js.map} +0 -0
  137. /package/dist/{chunk-QVAKJB64.js.map → chunk-OO6AMBHV.js.map} +0 -0
  138. /package/dist/{chunk-U3V4TPT5.js.map → chunk-R25AUM2R.js.map} +0 -0
  139. /package/dist/{chunk-WMZ5AUTB.js.map → chunk-WZJOILPU.js.map} +0 -0
  140. /package/dist/{chunk-ALTSOKHP.js.map → chunk-XHDBU5EI.js.map} +0 -0
  141. /package/dist/{chunk-T6RY2MC6.js.map → chunk-XNGE5EE5.js.map} +0 -0
  142. /package/dist/{chunk-BATTVHZT.js.map → chunk-ZZHHKE2Q.js.map} +0 -0
@@ -1,19 +1,19 @@
1
1
  "use client";
2
2
  import {
3
3
  PersistentPaginationWrapper
4
- } from "./chunk-CWO3YFVZ.js";
4
+ } from "./chunk-LRQCKSZC.js";
5
5
  import {
6
6
  DeliveryRow
7
- } from "./chunk-VGBTCUPG.js";
7
+ } from "./chunk-CRW4WRMH.js";
8
8
  import {
9
9
  EmptyState
10
- } from "./chunk-BQE4HTDR.js";
10
+ } from "./chunk-2JNCZDJR.js";
11
11
  import {
12
12
  DetailPageSkeleton
13
- } from "./chunk-RGCBUNMJ.js";
13
+ } from "./chunk-FSCQOWXI.js";
14
14
  import {
15
15
  useSelfFetch
16
- } from "./chunk-WMZ5AUTB.js";
16
+ } from "./chunk-WZJOILPU.js";
17
17
  import {
18
18
  Accordion,
19
19
  AccordionContent,
@@ -29,16 +29,16 @@ import {
29
29
  RichMarkdownRenderer,
30
30
  devSectionAnchorId,
31
31
  resolveContentHref
32
- } from "./chunk-ZYA6274A.js";
32
+ } from "./chunk-WVHQQ3NY.js";
33
33
  import {
34
34
  useHumanitySignals,
35
35
  useScrollToHash
36
- } from "./chunk-2TJSDSXW.js";
36
+ } from "./chunk-MOHSA65M.js";
37
37
  import {
38
38
  contentFetch,
39
39
  pageCount,
40
40
  positiveInt
41
- } from "./chunk-OKWGSJAI.js";
41
+ } from "./chunk-GGQZBSFN.js";
42
42
  import {
43
43
  Video,
44
44
  executeNavigationImperative,
@@ -1377,4 +1377,4 @@ export {
1377
1377
  useLegalDocs,
1378
1378
  LegalDocumentPage
1379
1379
  };
1380
- //# sourceMappingURL=chunk-U2XRBHBX.js.map
1380
+ //# sourceMappingURL=chunk-6GMMR667.js.map
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import {
3
3
  useOptionalTicketLive
4
- } from "./chunk-QVAKJB64.js";
4
+ } from "./chunk-OO6AMBHV.js";
5
5
  import {
6
6
  AppLayoutDrawerContainerContext,
7
7
  AppLayoutDrawerCoordinationContext,
@@ -12,11 +12,11 @@ import {
12
12
  UnreadDot,
13
13
  buildTicketOpenHref,
14
14
  useOptionalNotifications
15
- } from "./chunk-ZYA6274A.js";
15
+ } from "./chunk-WVHQQ3NY.js";
16
16
  import {
17
17
  useFocusTrap,
18
18
  useLocalStorage
19
- } from "./chunk-2TJSDSXW.js";
19
+ } from "./chunk-MOHSA65M.js";
20
20
  import {
21
21
  OVERLAY_BACKDROP_CLASS,
22
22
  useIsHydrated
@@ -1888,4 +1888,4 @@ export {
1888
1888
  MobileBurgerMenu,
1889
1889
  AppLayout
1890
1890
  };
1891
- //# sourceMappingURL=chunk-WIMGAPVH.js.map
1891
+ //# sourceMappingURL=chunk-ASFEUMFW.js.map
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  import {
3
3
  EmbedViewerFrame
4
- } from "./chunk-ZYA6274A.js";
4
+ } from "./chunk-WVHQQ3NY.js";
5
5
  import {
6
6
  toGoogleSheetsEmbedUrl,
7
7
  toGoogleSheetsOriginalUrl
8
- } from "./chunk-2TJSDSXW.js";
8
+ } from "./chunk-MOHSA65M.js";
9
9
  import {
10
10
  AdobePdfIcon,
11
11
  GoogleSheetsIcon
@@ -124,4 +124,4 @@ export {
124
124
  GoogleSheetsViewer,
125
125
  PdfViewer
126
126
  };
127
- //# sourceMappingURL=chunk-4UP2SGSO.js.map
127
+ //# sourceMappingURL=chunk-AUA6OSU7.js.map
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
2
2
 
3
3
 
4
- var _chunkB7ZCBGUNcjs = require('./chunk-B7ZCBGUN.cjs');
4
+ var _chunkO4VZOA2Qcjs = require('./chunk-O4VZOA2Q.cjs');
5
5
 
6
6
 
7
7
  var _chunk23V5BSHDcjs = require('./chunk-23V5BSHD.cjs');
@@ -116,7 +116,7 @@ function PersistentPaginationWrapper({
116
116
  },
117
117
  "aria-hidden": isPaginationDisabled,
118
118
  children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
119
- _chunkB7ZCBGUNcjs.UnifiedPagination,
119
+ _chunkO4VZOA2Qcjs.UnifiedPagination,
120
120
  {
121
121
  currentPage: displayCurrentPage,
122
122
  totalPages: displayTotalPages,
@@ -136,4 +136,4 @@ function PersistentPaginationWrapper({
136
136
 
137
137
 
138
138
  exports.PersistentPagination = PersistentPagination; exports.usePaginationLoading = usePaginationLoading; exports.PersistentPaginationWrapper = PersistentPaginationWrapper;
139
- //# sourceMappingURL=chunk-YMAHVHCX.cjs.map
139
+ //# sourceMappingURL=chunk-BZEWPW5A.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-YMAHVHCX.cjs","../src/components/persistent-pagination.tsx"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACwFQ,+CAAA;AA/BD,SAAS,oBAAA,CAAqB;AAAA,EACnC,SAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,gBAAA,EAAkB,GAAA;AAAA,EAClB,mBAAA,EAAqB;AACvB,CAAA,EAA8B;AAI5B,EAAA,uBACE,8BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,kCAAA;AAAA,QACT,qCAAA;AAAA,QACA,kCAAA;AAAA,QACA,UAAA,GAAa,qBAAA;AAAA,QACb;AAAA,MACF,CAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,UAAA,EAAY,gBAAA,EAAkB,CAAA;AAAA,QACvC,kBAAA,EAAoB,CAAA,EAAA;AACtB,MAAA;AACK,MAAA;AACM,MAAA;AACA,MAAA;AACG,MAAA;AAGb,MAAA;AACC,QAAA;AAA0D,UAAA;AACJ,UAAA;AAAY,UAAA;AAAK,UAAA;AACvE,QAAA;AAIF,wBAAA;AAAC,UAAA;AAAA,UAAA;AACe,YAAA;AACP,YAAA;AACL,cAAA;AACF,YAAA;AACa,YAAA;AAEZ,YAAA;AAAA,UAAA;AACH,QAAA;AAAA,MAAA;AAAA,IAAA;AAGF,EAAA;AAEJ;AAKgB;AACR,EAAA;AAEkB,EAAA;AACT,IAAA;AACG,IAAA;AACK,IAAA;AACD,IAAA;AACtB,EAAA;AAE0B,EAAA;AACT,IAAA;AACU,MAAA;AACzB,IAAA;AACe,IAAA;AACjB,EAAA;AAEO,EAAA;AACL,IAAA;AACA,IAAA;AACA,IAAA;AACF,EAAA;AACF;AAcgB;AACd,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACmC;AAGhB,EAAA;AACO,EAAA;AACC,EAAA;AAErB,EAAA;AACgB,EAAA;AAGpB,EAAA;AAAC,IAAA;AAAA,IAAA;AACY,MAAA;AACT,QAAA;AACC,QAAA;AACD,QAAA;AACF,MAAA;AACO,MAAA;AACI,QAAA;AACW,QAAA;AACtB,MAAA;AACK,MAAA;AACM,MAAA;AACA,MAAA;AACG,MAAA;AACI,MAAA;AAGhB,MAAA;AAAc,QAAA;AAShB,wBAAA;AAAC,UAAA;AAAA,UAAA;AACe,YAAA;AACP,YAAA;AACL,cAAA;AACF,YAAA;AACa,YAAA;AAKb,YAAA;AAAC,cAAA;AAAA,cAAA;AACc,gBAAA;AACD,gBAAA;AACZ,gBAAA;AAAiD,gBAAA;AAAA,cAAA;AACnD,YAAA;AAAA,UAAA;AACF,QAAA;AAAA,MAAA;AAAA,IAAA;AAGF,EAAA;AAEJ;ADvF6B;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-YMAHVHCX.cjs","sourcesContent":[null,"'use client';\n\nimport type { ReactNode } from 'react';\nimport { cn } from '../utils/cn';\nimport { UnifiedPagination } from './unified-pagination';\n\ninterface PersistentPaginationProps {\n /**\n * Whether pagination is currently in a loading state\n */\n isLoading: boolean;\n /**\n * The pagination component\n */\n children: ReactNode;\n /**\n * Current page number\n */\n currentPage: number;\n /**\n * Total number of pages\n */\n totalPages: number;\n /**\n * Additional CSS classes\n */\n className?: string;\n /**\n * Disabled opacity (0-1)\n */\n disabledOpacity?: number;\n /**\n * Transition duration in milliseconds\n */\n transitionDuration?: number;\n /**\n * Whether to show loading state in pagination\n */\n showLoadingState?: boolean;\n}\n\n/**\n * PersistentPagination\n *\n * A wrapper component that keeps pagination visible during loading states\n * but provides visual feedback that it's temporarily disabled.\n *\n * Features:\n * - Maintains pagination visibility during content loading\n * - Disables interaction but preserves layout\n * - Shows current page context even when loading\n * - Provides accessibility support for loading states\n * - Smooth transitions between enabled/disabled states\n *\n * Usage:\n * ```tsx\n * <PersistentPagination\n * isLoading={isLoadingVendors}\n * currentPage={currentPage}\n * totalPages={totalPages}\n * >\n * <Pagination currentPage={currentPage} totalPages={totalPages} />\n * </PersistentPagination>\n * ```\n */\nexport function PersistentPagination({\n isLoading,\n children,\n currentPage,\n totalPages,\n className,\n disabledOpacity = 0.5,\n transitionDuration = 300,\n}: PersistentPaginationProps) {\n // ALWAYS show pagination for predictable layout - just gray it out when not needed\n // Removed condition that hides pagination completely\n\n return (\n <div\n className={cn(\n 'relative transition-all ease-in-out',\n 'flex items-center justify-center',\n isLoading && 'pointer-events-none',\n className,\n )}\n style={{\n opacity: isLoading ? disabledOpacity : 1,\n transitionDuration: `${transitionDuration}ms`,\n }}\n role=\"navigation\"\n aria-label=\"Pagination\"\n aria-busy={isLoading}\n data-loading={isLoading}\n >\n {/* Loading state announcement for screen readers */}\n {isLoading && (\n <div className=\"sr-only\" role=\"status\" aria-live=\"polite\">\n Pagination temporarily disabled while loading page {currentPage} of {totalPages}\n </div>\n )}\n\n {/* Pagination controls with disabled state */}\n <div\n className={cn('relative transition-all ease-in-out', isLoading && 'cursor-not-allowed')}\n style={{\n transitionDuration: `${transitionDuration}ms`,\n }}\n aria-hidden={isLoading}\n >\n {children}\n </div>\n\n {/* REMOVED: Loading overlay - only card skeletons should show during loading */}\n </div>\n );\n}\n\n/**\n * Hook for managing pagination loading states\n */\nexport function usePaginationLoading(isLoading: boolean, currentPage: number, totalPages: number) {\n const shouldShowPagination = totalPages > 1 || isLoading;\n\n const paginationProps = {\n 'aria-busy': isLoading,\n 'data-loading': isLoading,\n 'data-current-page': currentPage,\n 'data-total-pages': totalPages,\n };\n\n const getLoadingMessage = () => {\n if (isLoading) {\n return `Loading page ${currentPage} of ${totalPages}`;\n }\n return `Page ${currentPage} of ${totalPages}`;\n };\n\n return {\n shouldShowPagination,\n paginationProps,\n getLoadingMessage,\n };\n}\n\n/**\n * Enhanced pagination component that includes loading states\n */\ninterface PersistentPaginationWrapperProps {\n isLoading: boolean;\n currentPage: number;\n totalPages: number;\n onPageChange?: (page: number) => void;\n className?: string;\n variant?: 'vendor' | 'blog';\n}\n\nexport function PersistentPaginationWrapper({\n isLoading,\n currentPage,\n totalPages,\n onPageChange,\n className,\n}: PersistentPaginationWrapperProps) {\n // ALWAYS show pagination for predictable layout\n // For no results (totalPages = 0), show grayed out pagination\n const hasResults = totalPages > 0;\n const displayTotalPages = hasResults ? totalPages : 1;\n const displayCurrentPage = hasResults ? currentPage : 1;\n // Only disable during loading, but still show when no results (just grayed out)\n const isPaginationDisabled = isLoading;\n const hasNoResults = !hasResults && !isLoading;\n\n return (\n <div\n className={cn(\n 'relative flex items-center justify-center transition-all ease-in-out',\n (isPaginationDisabled || hasNoResults) && 'pointer-events-none',\n className,\n )}\n style={{\n opacity: isPaginationDisabled ? 0.3 : hasNoResults ? 0.5 : 1,\n transitionDuration: '300ms',\n }}\n role=\"navigation\"\n aria-label=\"Pagination\"\n aria-busy={isLoading}\n data-loading={isLoading}\n data-has-results={hasResults}\n >\n {/* Loading/no results state announcement for screen readers */}\n {(isLoading || !hasResults) && (\n <div className=\"sr-only\" role=\"status\" aria-live=\"polite\">\n {isLoading\n ? `Pagination temporarily disabled while loading page ${displayCurrentPage} of ${displayTotalPages}`\n : `No results available - pagination disabled`}\n </div>\n )}\n\n {/* Pagination controls with disabled state */}\n <div\n className={cn('relative transition-all ease-in-out', isPaginationDisabled && 'cursor-not-allowed')}\n style={{\n transitionDuration: '300ms',\n }}\n aria-hidden={isPaginationDisabled}\n >\n {/* UnifiedPagination directly — Pagination and BlogPagination in\n multi-platform-hub are both thin wrappers around it, so the wrapper\n never has to be handed down from the consuming app. */}\n <UnifiedPagination\n currentPage={displayCurrentPage}\n totalPages={displayTotalPages}\n onPageChange={hasResults ? onPageChange : () => {}} // Provide empty function instead of undefined\n />\n </div>\n\n {/* REMOVED: Loading overlays - only card skeletons should show during loading */}\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-BZEWPW5A.cjs","../src/components/persistent-pagination.tsx"],"names":[],"mappings":"AAAA,qFAAY;AACZ;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACwFQ,+CAAA;AA/BD,SAAS,oBAAA,CAAqB;AAAA,EACnC,SAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,gBAAA,EAAkB,GAAA;AAAA,EAClB,mBAAA,EAAqB;AACvB,CAAA,EAA8B;AAI5B,EAAA,uBACE,8BAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,kCAAA;AAAA,QACT,qCAAA;AAAA,QACA,kCAAA;AAAA,QACA,UAAA,GAAa,qBAAA;AAAA,QACb;AAAA,MACF,CAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,UAAA,EAAY,gBAAA,EAAkB,CAAA;AAAA,QACvC,kBAAA,EAAoB,CAAA,EAAA;AACtB,MAAA;AACK,MAAA;AACM,MAAA;AACA,MAAA;AACG,MAAA;AAGb,MAAA;AACC,QAAA;AAA0D,UAAA;AACJ,UAAA;AAAY,UAAA;AAAK,UAAA;AACvE,QAAA;AAIF,wBAAA;AAAC,UAAA;AAAA,UAAA;AACe,YAAA;AACP,YAAA;AACL,cAAA;AACF,YAAA;AACa,YAAA;AAEZ,YAAA;AAAA,UAAA;AACH,QAAA;AAAA,MAAA;AAAA,IAAA;AAGF,EAAA;AAEJ;AAKgB;AACR,EAAA;AAEkB,EAAA;AACT,IAAA;AACG,IAAA;AACK,IAAA;AACD,IAAA;AACtB,EAAA;AAE0B,EAAA;AACT,IAAA;AACU,MAAA;AACzB,IAAA;AACe,IAAA;AACjB,EAAA;AAEO,EAAA;AACL,IAAA;AACA,IAAA;AACA,IAAA;AACF,EAAA;AACF;AAcgB;AACd,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACA,EAAA;AACmC;AAGhB,EAAA;AACO,EAAA;AACC,EAAA;AAErB,EAAA;AACgB,EAAA;AAGpB,EAAA;AAAC,IAAA;AAAA,IAAA;AACY,MAAA;AACT,QAAA;AACC,QAAA;AACD,QAAA;AACF,MAAA;AACO,MAAA;AACI,QAAA;AACW,QAAA;AACtB,MAAA;AACK,MAAA;AACM,MAAA;AACA,MAAA;AACG,MAAA;AACI,MAAA;AAGhB,MAAA;AAAc,QAAA;AAShB,wBAAA;AAAC,UAAA;AAAA,UAAA;AACe,YAAA;AACP,YAAA;AACL,cAAA;AACF,YAAA;AACa,YAAA;AAKb,YAAA;AAAC,cAAA;AAAA,cAAA;AACc,gBAAA;AACD,gBAAA;AACZ,gBAAA;AAAiD,gBAAA;AAAA,cAAA;AACnD,YAAA;AAAA,UAAA;AACF,QAAA;AAAA,MAAA;AAAA,IAAA;AAGF,EAAA;AAEJ;ADvF6B;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/openframe-oss-lib/openframe-oss-lib/openframe-frontend-core/dist/chunk-BZEWPW5A.cjs","sourcesContent":[null,"'use client';\n\nimport type { ReactNode } from 'react';\nimport { cn } from '../utils/cn';\nimport { UnifiedPagination } from './unified-pagination';\n\ninterface PersistentPaginationProps {\n /**\n * Whether pagination is currently in a loading state\n */\n isLoading: boolean;\n /**\n * The pagination component\n */\n children: ReactNode;\n /**\n * Current page number\n */\n currentPage: number;\n /**\n * Total number of pages\n */\n totalPages: number;\n /**\n * Additional CSS classes\n */\n className?: string;\n /**\n * Disabled opacity (0-1)\n */\n disabledOpacity?: number;\n /**\n * Transition duration in milliseconds\n */\n transitionDuration?: number;\n /**\n * Whether to show loading state in pagination\n */\n showLoadingState?: boolean;\n}\n\n/**\n * PersistentPagination\n *\n * A wrapper component that keeps pagination visible during loading states\n * but provides visual feedback that it's temporarily disabled.\n *\n * Features:\n * - Maintains pagination visibility during content loading\n * - Disables interaction but preserves layout\n * - Shows current page context even when loading\n * - Provides accessibility support for loading states\n * - Smooth transitions between enabled/disabled states\n *\n * Usage:\n * ```tsx\n * <PersistentPagination\n * isLoading={isLoadingVendors}\n * currentPage={currentPage}\n * totalPages={totalPages}\n * >\n * <Pagination currentPage={currentPage} totalPages={totalPages} />\n * </PersistentPagination>\n * ```\n */\nexport function PersistentPagination({\n isLoading,\n children,\n currentPage,\n totalPages,\n className,\n disabledOpacity = 0.5,\n transitionDuration = 300,\n}: PersistentPaginationProps) {\n // ALWAYS show pagination for predictable layout - just gray it out when not needed\n // Removed condition that hides pagination completely\n\n return (\n <div\n className={cn(\n 'relative transition-all ease-in-out',\n 'flex items-center justify-center',\n isLoading && 'pointer-events-none',\n className,\n )}\n style={{\n opacity: isLoading ? disabledOpacity : 1,\n transitionDuration: `${transitionDuration}ms`,\n }}\n role=\"navigation\"\n aria-label=\"Pagination\"\n aria-busy={isLoading}\n data-loading={isLoading}\n >\n {/* Loading state announcement for screen readers */}\n {isLoading && (\n <div className=\"sr-only\" role=\"status\" aria-live=\"polite\">\n Pagination temporarily disabled while loading page {currentPage} of {totalPages}\n </div>\n )}\n\n {/* Pagination controls with disabled state */}\n <div\n className={cn('relative transition-all ease-in-out', isLoading && 'cursor-not-allowed')}\n style={{\n transitionDuration: `${transitionDuration}ms`,\n }}\n aria-hidden={isLoading}\n >\n {children}\n </div>\n\n {/* REMOVED: Loading overlay - only card skeletons should show during loading */}\n </div>\n );\n}\n\n/**\n * Hook for managing pagination loading states\n */\nexport function usePaginationLoading(isLoading: boolean, currentPage: number, totalPages: number) {\n const shouldShowPagination = totalPages > 1 || isLoading;\n\n const paginationProps = {\n 'aria-busy': isLoading,\n 'data-loading': isLoading,\n 'data-current-page': currentPage,\n 'data-total-pages': totalPages,\n };\n\n const getLoadingMessage = () => {\n if (isLoading) {\n return `Loading page ${currentPage} of ${totalPages}`;\n }\n return `Page ${currentPage} of ${totalPages}`;\n };\n\n return {\n shouldShowPagination,\n paginationProps,\n getLoadingMessage,\n };\n}\n\n/**\n * Enhanced pagination component that includes loading states\n */\ninterface PersistentPaginationWrapperProps {\n isLoading: boolean;\n currentPage: number;\n totalPages: number;\n onPageChange?: (page: number) => void;\n className?: string;\n variant?: 'vendor' | 'blog';\n}\n\nexport function PersistentPaginationWrapper({\n isLoading,\n currentPage,\n totalPages,\n onPageChange,\n className,\n}: PersistentPaginationWrapperProps) {\n // ALWAYS show pagination for predictable layout\n // For no results (totalPages = 0), show grayed out pagination\n const hasResults = totalPages > 0;\n const displayTotalPages = hasResults ? totalPages : 1;\n const displayCurrentPage = hasResults ? currentPage : 1;\n // Only disable during loading, but still show when no results (just grayed out)\n const isPaginationDisabled = isLoading;\n const hasNoResults = !hasResults && !isLoading;\n\n return (\n <div\n className={cn(\n 'relative flex items-center justify-center transition-all ease-in-out',\n (isPaginationDisabled || hasNoResults) && 'pointer-events-none',\n className,\n )}\n style={{\n opacity: isPaginationDisabled ? 0.3 : hasNoResults ? 0.5 : 1,\n transitionDuration: '300ms',\n }}\n role=\"navigation\"\n aria-label=\"Pagination\"\n aria-busy={isLoading}\n data-loading={isLoading}\n data-has-results={hasResults}\n >\n {/* Loading/no results state announcement for screen readers */}\n {(isLoading || !hasResults) && (\n <div className=\"sr-only\" role=\"status\" aria-live=\"polite\">\n {isLoading\n ? `Pagination temporarily disabled while loading page ${displayCurrentPage} of ${displayTotalPages}`\n : `No results available - pagination disabled`}\n </div>\n )}\n\n {/* Pagination controls with disabled state */}\n <div\n className={cn('relative transition-all ease-in-out', isPaginationDisabled && 'cursor-not-allowed')}\n style={{\n transitionDuration: '300ms',\n }}\n aria-hidden={isPaginationDisabled}\n >\n {/* UnifiedPagination directly — Pagination and BlogPagination in\n multi-platform-hub are both thin wrappers around it, so the wrapper\n never has to be handed down from the consuming app. */}\n <UnifiedPagination\n currentPage={displayCurrentPage}\n totalPages={displayTotalPages}\n onPageChange={hasResults ? onPageChange : () => {}} // Provide empty function instead of undefined\n />\n </div>\n\n {/* REMOVED: Loading overlays - only card skeletons should show during loading */}\n </div>\n );\n}\n"]}