@plumile/ui 0.1.115 → 0.1.117
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/lib/esm/admin/templates/admin_shell_layout/AdminShellLayout.js +15 -14
- package/lib/esm/admin/templates/admin_shell_layout/AdminShellLayout.js.map +1 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownArticleContainer.css.js +0 -1
- package/lib/esm/atomic/molecules/markdown/components/MarkdownDelete.css.js +1 -0
- package/lib/esm/backoffice/organisms/backoffice_data_table/BackofficeDataTable.js +59 -56
- package/lib/esm/backoffice/organisms/backoffice_data_table/BackofficeDataTable.js.map +1 -1
- package/lib/esm/backoffice/organisms/backoffice_data_table/backofficeDataTable.css.js +2 -2
- package/lib/esm/backoffice/organisms/backoffice_data_table/backofficeDataTable.css.js.map +1 -1
- package/lib/esm/backoffice/organisms/backoffice_virtualized_connection_table/BackofficeVirtualizedConnectionTable.js +3 -2
- package/lib/esm/backoffice/organisms/backoffice_virtualized_connection_table/BackofficeVirtualizedConnectionTable.js.map +1 -1
- package/lib/esm/backoffice/templates/detail_page_template/DetailPageTemplate.js +42 -39
- package/lib/esm/backoffice/templates/detail_page_template/DetailPageTemplate.js.map +1 -1
- package/lib/esm/backoffice/templates/detail_page_template/detailPageTemplate.css.js +3 -3
- package/lib/esm/backoffice/templates/detail_page_template/detailPageTemplate.css.js.map +1 -1
- package/lib/esm/backoffice/templates/list_page_template/ListPageTemplate.js +45 -29
- package/lib/esm/backoffice/templates/list_page_template/ListPageTemplate.js.map +1 -1
- package/lib/esm/backoffice/templates/list_page_template/listPageTemplate.css.js +73 -13
- package/lib/esm/backoffice/templates/list_page_template/listPageTemplate.css.js.map +1 -1
- package/lib/esm/components/data-table/DataTable.css.js +52 -52
- package/lib/esm/components/data-table/DataTable.css.js.map +1 -1
- package/lib/esm/components/data-table/DataTable.js +43 -39
- package/lib/esm/components/data-table/DataTable.js.map +1 -1
- package/lib/esm/components/data-table/ResponsiveRecordList.css.js +7 -7
- package/lib/esm/components/data-table/ResponsiveRecordList.css.js.map +1 -1
- package/lib/esm/components/data-table/ResponsiveRecordList.js +86 -61
- package/lib/esm/components/data-table/ResponsiveRecordList.js.map +1 -1
- package/lib/esm/components/data-table/VirtualizedConnectionTable.js +158 -142
- package/lib/esm/components/data-table/VirtualizedConnectionTable.js.map +1 -1
- package/lib/esm/components/layout/AppShell.js +2 -1
- package/lib/esm/components/layout/AppShell.js.map +1 -1
- package/lib/esm/components/layout/PageShell.css.js +8 -8
- package/lib/esm/components/layout/PageShell.css.js.map +1 -1
- package/lib/esm/components/layout/PageShell.js +115 -107
- package/lib/esm/components/layout/PageShell.js.map +1 -1
- package/lib/esm/node_modules/dagre-d3-es/src/dagre/layout.js +49 -49
- package/lib/esm/node_modules/dagre-d3-es/src/dagre/position/bk.js +69 -69
- package/lib/esm/node_modules/es-toolkit/dist/_internal/globalThis.js +8 -0
- package/lib/esm/node_modules/es-toolkit/dist/_internal/globalThis.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/_internal/isUnsafeProperty.js +8 -0
- package/lib/esm/node_modules/es-toolkit/dist/_internal/isUnsafeProperty.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/_internal/getSymbols.js +8 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/_internal/getSymbols.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/_internal/getTag.js +8 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/_internal/getTag.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/_internal/isPrototype.js +9 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/_internal/isPrototype.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/_internal/tags.js +6 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/_internal/tags.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/function/memoize.js +16 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/function/memoize.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/object/clone.js +101 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/object/clone.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/object/cloneDeep.js +9 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/object/cloneDeep.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/object/cloneDeepWith.js +33 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/object/cloneDeepWith.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/object/merge.js +10 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/object/merge.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/object/mergeWith.js +53 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/object/mergeWith.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/predicate/isArguments.js +9 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/predicate/isArguments.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/predicate/isArray.js +8 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/predicate/isArray.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/predicate/isArrayLike.js +9 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/predicate/isArrayLike.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/predicate/isArrayLikeObject.js +10 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/predicate/isArrayLikeObject.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/predicate/isEmpty.js +20 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/predicate/isEmpty.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/predicate/isObjectLike.js +8 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/predicate/isObjectLike.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/predicate/isPlainObject.js +16 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/predicate/isPlainObject.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/predicate/isTypedArray.js +9 -0
- package/lib/esm/node_modules/es-toolkit/dist/compat/predicate/isTypedArray.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/function/noop.js +6 -0
- package/lib/esm/node_modules/es-toolkit/dist/function/noop.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/object/clone.js +28 -0
- package/lib/esm/node_modules/es-toolkit/dist/object/clone.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/object/cloneDeepWith.js +118 -0
- package/lib/esm/node_modules/es-toolkit/dist/object/cloneDeepWith.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/predicate/isBuffer.js +9 -0
- package/lib/esm/node_modules/es-toolkit/dist/predicate/isBuffer.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/predicate/isLength.js +8 -0
- package/lib/esm/node_modules/es-toolkit/dist/predicate/isLength.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/predicate/isPrimitive.js +8 -0
- package/lib/esm/node_modules/es-toolkit/dist/predicate/isPrimitive.js.map +1 -0
- package/lib/esm/node_modules/es-toolkit/dist/predicate/isTypedArray.js +8 -0
- package/lib/esm/node_modules/es-toolkit/dist/predicate/isTypedArray.js.map +1 -0
- package/lib/esm/node_modules/lodash-es/_arrayLikeKeys.js +8 -8
- package/lib/esm/node_modules/lodash-es/_assignMergeValue.js +3 -3
- package/lib/esm/node_modules/lodash-es/_assignValue.js +3 -3
- package/lib/esm/node_modules/lodash-es/_baseClone.js +31 -31
- package/lib/esm/node_modules/lodash-es/_baseForOwn.js +3 -3
- package/lib/esm/node_modules/lodash-es/_baseIsEqualDeep.js +10 -10
- package/lib/esm/node_modules/lodash-es/_baseMerge.js +9 -9
- package/lib/esm/node_modules/lodash-es/_baseMergeDeep.js +17 -17
- package/lib/esm/node_modules/lodash-es/_baseOrderBy.js +11 -11
- package/lib/esm/node_modules/lodash-es/_baseRest.js +3 -3
- package/lib/esm/node_modules/lodash-es/_baseSet.js +4 -4
- package/lib/esm/node_modules/lodash-es/_baseSetToString.js +7 -7
- package/lib/esm/node_modules/lodash-es/_baseToString.js +5 -5
- package/lib/esm/node_modules/lodash-es/_createRange.js +3 -3
- package/lib/esm/node_modules/lodash-es/_createSet.js +5 -5
- package/lib/esm/node_modules/lodash-es/_flatRest.js +3 -3
- package/lib/esm/node_modules/lodash-es/_getSymbolsIn.js +7 -7
- package/lib/esm/node_modules/lodash-es/_getTag.js +7 -7
- package/lib/esm/node_modules/lodash-es/_hasPath.js +4 -4
- package/lib/esm/node_modules/lodash-es/_initCloneByTag.js +8 -8
- package/lib/esm/node_modules/lodash-es/_initCloneObject.js +3 -3
- package/lib/esm/node_modules/lodash-es/_isFlattenable.js +3 -3
- package/lib/esm/node_modules/lodash-es/_isIterateeCall.js +4 -4
- package/lib/esm/node_modules/lodash-es/_isKey.js +4 -4
- package/lib/esm/node_modules/lodash-es/_setToString.js +3 -3
- package/lib/esm/node_modules/lodash-es/defaults.js +9 -9
- package/lib/esm/node_modules/lodash-es/forIn.js +3 -3
- package/lib/esm/node_modules/lodash-es/isEmpty.js +6 -6
- package/lib/esm/node_modules/lodash-es/isPlainObject.js +4 -4
- package/lib/esm/node_modules/lodash-es/map.js +3 -3
- package/lib/esm/node_modules/lodash-es/merge.js +4 -4
- package/lib/esm/node_modules/lodash-es/toNumber.js +7 -7
- package/lib/esm/node_modules/lodash-es/union.js +5 -5
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{architectureDiagram-Q4EWVU46.js → architectureDiagram-3BPJPVTR.js} +14 -12
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{architectureDiagram-Q4EWVU46.js.map → architectureDiagram-3BPJPVTR.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{blockDiagram-DXYQGD6D.js → blockDiagram-GPEHLZMM.js} +453 -428
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/blockDiagram-GPEHLZMM.js.map +1 -0
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{c4Diagram-AHTNJAMY.js → c4Diagram-AAUBKEIU.js} +5 -5
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{c4Diagram-AHTNJAMY.js.map → c4Diagram-AAUBKEIU.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-EDXVE4YY.js → chunk-2J33WTMH.js} +3 -3
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-EDXVE4YY.js.map → chunk-2J33WTMH.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-5FUZZQ4R.js → chunk-3OPIFGDE.js} +290 -262
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/chunk-3OPIFGDE.js.map +1 -0
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-5PVQY5BW.js → chunk-5ZQYHXKU.js} +6 -6
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/chunk-5ZQYHXKU.js.map +1 -0
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-4TB4RGXK.js → chunk-727SXJPM.js} +487 -391
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/chunk-727SXJPM.js.map +1 -0
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-OYMX7WX6.js → chunk-AQP2D5EJ.js} +157 -147
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/chunk-AQP2D5EJ.js.map +1 -0
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-ICPOFSXX.js → chunk-CSCIHK7Q.js} +193 -99
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/chunk-CSCIHK7Q.js.map +1 -0
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-ENJZ2VHE.js → chunk-KSCS5N6A.js} +14 -14
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/chunk-KSCS5N6A.js.map +1 -0
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-ZZ45TVLE.js → chunk-L5ZTLDWV.js} +4 -4
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-ZZ45TVLE.js.map → chunk-L5ZTLDWV.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-336JU56O.js → chunk-LZXEDZCA.js} +7 -7
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-336JU56O.js.map → chunk-LZXEDZCA.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-YZCP3GAM.js → chunk-ND2GUHAM.js} +3 -3
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-YZCP3GAM.js.map → chunk-ND2GUHAM.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-X2U36JSP.js → chunk-NZK2D7GU.js} +3 -3
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-X2U36JSP.js.map → chunk-NZK2D7GU.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-U2HBQHQK.js → chunk-O5CBEL6O.js} +4 -4
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-U2HBQHQK.js.map → chunk-O5CBEL6O.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-426QAEUC.js → chunk-WU5MYG2G.js} +3 -3
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{chunk-426QAEUC.js.map → chunk-WU5MYG2G.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{classDiagram-6PBFFD2Q.js → classDiagram-4FO5ZUOK.js} +13 -13
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{classDiagram-6PBFFD2Q.js.map → classDiagram-4FO5ZUOK.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{classDiagram-v2-HSJHXN6E.js → classDiagram-v2-Q7XG4LA2.js} +13 -13
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{classDiagram-v2-HSJHXN6E.js.map → classDiagram-v2-Q7XG4LA2.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{dagre-KV5264BT.js → dagre-BM42HDAG.js} +10 -10
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{dagre-KV5264BT.js.map → dagre-BM42HDAG.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{diagram-MMDJMWI5.js → diagram-2AECGRRQ.js} +5 -5
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{diagram-MMDJMWI5.js.map → diagram-2AECGRRQ.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{diagram-5BDNPKRD.js → diagram-5GNKFQAL.js} +5 -5
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{diagram-5BDNPKRD.js.map → diagram-5GNKFQAL.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/diagram-KO2AKTUF.js +435 -0
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/diagram-KO2AKTUF.js.map +1 -0
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{diagram-TYMM5635.js → diagram-LMA3HP47.js} +5 -5
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{diagram-TYMM5635.js.map → diagram-LMA3HP47.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{diagram-G4DWMVQ6.js → diagram-OG6HWLK6.js} +7 -7
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{diagram-G4DWMVQ6.js.map → diagram-OG6HWLK6.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{erDiagram-SMLLAGMA.js → erDiagram-TEJ5UH35.js} +11 -11
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{erDiagram-SMLLAGMA.js.map → erDiagram-TEJ5UH35.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{flowDiagram-DWJPFMVM.js → flowDiagram-I6XJVG4X.js} +12 -12
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{flowDiagram-DWJPFMVM.js.map → flowDiagram-I6XJVG4X.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{ganttDiagram-T4ZO3ILL.js → ganttDiagram-6RSMTGT7.js} +9 -6
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/ganttDiagram-6RSMTGT7.js.map +1 -0
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{gitGraphDiagram-UUTBAWPF.js → gitGraphDiagram-PVQCEYII.js} +4 -4
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{gitGraphDiagram-UUTBAWPF.js.map → gitGraphDiagram-PVQCEYII.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{infoDiagram-42DDH7IO.js → infoDiagram-5YYISTIA.js} +5 -5
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{infoDiagram-42DDH7IO.js.map → infoDiagram-5YYISTIA.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{ishikawaDiagram-UXIWVN3A.js → ishikawaDiagram-YF4QCWOH.js} +5 -5
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{ishikawaDiagram-UXIWVN3A.js.map → ishikawaDiagram-YF4QCWOH.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{journeyDiagram-VCZTEJTY.js → journeyDiagram-JHISSGLW.js} +4 -4
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{journeyDiagram-VCZTEJTY.js.map → journeyDiagram-JHISSGLW.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{kanban-definition-6JOO6SKY.js → kanban-definition-UN3LZRKU.js} +9 -9
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{kanban-definition-6JOO6SKY.js.map → kanban-definition-UN3LZRKU.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{mindmap-definition-QFDTVHPH.js → mindmap-definition-RKZ34NQL.js} +12 -12
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{mindmap-definition-QFDTVHPH.js.map → mindmap-definition-RKZ34NQL.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{pieDiagram-DEJITSTG.js → pieDiagram-4H26LBE5.js} +5 -5
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{pieDiagram-DEJITSTG.js.map → pieDiagram-4H26LBE5.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{quadrantDiagram-34T5L4WZ.js → quadrantDiagram-W4KKPZXB.js} +316 -289
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/quadrantDiagram-W4KKPZXB.js.map +1 -0
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{requirementDiagram-MS252O5E.js → requirementDiagram-4Y6WPE33.js} +11 -11
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{requirementDiagram-MS252O5E.js.map → requirementDiagram-4Y6WPE33.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{sankeyDiagram-XADWPNL6.js → sankeyDiagram-5OEKKPKP.js} +80 -31
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{sankeyDiagram-XADWPNL6.js.map → sankeyDiagram-5OEKKPKP.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{sequenceDiagram-FGHM5R23.js → sequenceDiagram-3UESZ5HK.js} +17 -10
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/sequenceDiagram-3UESZ5HK.js.map +1 -0
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{stateDiagram-FHFEXIEX.js → stateDiagram-AJRCARHV.js} +12 -12
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{stateDiagram-FHFEXIEX.js.map → stateDiagram-AJRCARHV.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{stateDiagram-v2-QKLJ7IA2.js → stateDiagram-v2-BHNVJYJU.js} +12 -12
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{stateDiagram-v2-QKLJ7IA2.js.map → stateDiagram-v2-BHNVJYJU.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{timeline-definition-GMOUNBTQ.js → timeline-definition-PNZ67QCA.js} +5 -5
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{timeline-definition-GMOUNBTQ.js.map → timeline-definition-PNZ67QCA.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{vennDiagram-DHZGUBPP.js → vennDiagram-CIIHVFJN.js} +5 -5
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{vennDiagram-DHZGUBPP.js.map → vennDiagram-CIIHVFJN.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{wardleyDiagram-NUSXRM2D.js → wardleyDiagram-YWT4CUSO.js} +188 -122
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/wardleyDiagram-YWT4CUSO.js.map +1 -0
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{xychartDiagram-5P7HB3ND.js → xychartDiagram-2RQKCTM6.js} +6 -6
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/{xychartDiagram-5P7HB3ND.js.map → xychartDiagram-2RQKCTM6.js.map} +1 -1
- package/lib/esm/node_modules/mermaid/dist/mermaid.core.js +308 -281
- package/lib/esm/node_modules/mermaid/dist/mermaid.core.js.map +1 -1
- package/lib/esm/node_modules/stylis/src/Enum.js +2 -2
- package/lib/esm/node_modules/stylis/src/Enum.js.map +1 -1
- package/lib/esm/node_modules/stylis/src/Middleware.js +13 -0
- package/lib/esm/node_modules/stylis/src/Middleware.js.map +1 -0
- package/lib/esm/node_modules/uuid/dist/rng.js +9 -0
- package/lib/esm/node_modules/uuid/dist/rng.js.map +1 -0
- package/lib/esm/node_modules/uuid/dist/{esm-browser/stringify.js → stringify.js} +1 -1
- package/lib/esm/node_modules/uuid/dist/stringify.js.map +1 -0
- package/lib/esm/node_modules/uuid/dist/v4.js +21 -0
- package/lib/esm/node_modules/uuid/dist/v4.js.map +1 -0
- package/lib/esm/style.css +1 -1
- package/lib/types/admin/templates/admin_shell_layout/AdminShellLayout.d.ts +3 -2
- package/lib/types/admin/templates/admin_shell_layout/AdminShellLayout.d.ts.map +1 -1
- package/lib/types/backoffice/organisms/backoffice_data_table/BackofficeDataTable.d.ts +3 -2
- package/lib/types/backoffice/organisms/backoffice_data_table/BackofficeDataTable.d.ts.map +1 -1
- package/lib/types/backoffice/organisms/backoffice_data_table/backofficeDataTable.css.d.ts +1 -0
- package/lib/types/backoffice/organisms/backoffice_data_table/backofficeDataTable.css.d.ts.map +1 -1
- package/lib/types/backoffice/organisms/backoffice_virtualized_connection_table/BackofficeVirtualizedConnectionTable.d.ts +3 -2
- package/lib/types/backoffice/organisms/backoffice_virtualized_connection_table/BackofficeVirtualizedConnectionTable.d.ts.map +1 -1
- package/lib/types/backoffice/templates/detail_page_template/DetailPageTemplate.d.ts.map +1 -1
- package/lib/types/backoffice/templates/detail_page_template/detailPageTemplate.css.d.ts +5 -0
- package/lib/types/backoffice/templates/detail_page_template/detailPageTemplate.css.d.ts.map +1 -1
- package/lib/types/backoffice/templates/list_page_template/ListPageTemplate.d.ts +1 -0
- package/lib/types/backoffice/templates/list_page_template/ListPageTemplate.d.ts.map +1 -1
- package/lib/types/backoffice/templates/list_page_template/listPageTemplate.css.d.ts +17 -2
- package/lib/types/backoffice/templates/list_page_template/listPageTemplate.css.d.ts.map +1 -1
- package/lib/types/components/data-table/DataTable.css.d.ts +2 -0
- package/lib/types/components/data-table/DataTable.css.d.ts.map +1 -1
- package/lib/types/components/data-table/DataTable.d.ts +5 -2
- package/lib/types/components/data-table/DataTable.d.ts.map +1 -1
- package/lib/types/components/data-table/ResponsiveRecordList.css.d.ts +2 -0
- package/lib/types/components/data-table/ResponsiveRecordList.css.d.ts.map +1 -1
- package/lib/types/components/data-table/ResponsiveRecordList.d.ts +1 -1
- package/lib/types/components/data-table/ResponsiveRecordList.d.ts.map +1 -1
- package/lib/types/components/data-table/VirtualizedConnectionTable.d.ts +3 -2
- package/lib/types/components/data-table/VirtualizedConnectionTable.d.ts.map +1 -1
- package/lib/types/components/layout/AppShell.d.ts +3 -2
- package/lib/types/components/layout/AppShell.d.ts.map +1 -1
- package/lib/types/components/layout/PageShell.css.d.ts +3 -0
- package/lib/types/components/layout/PageShell.css.d.ts.map +1 -1
- package/lib/types/components/layout/PageShell.d.ts +3 -1
- package/lib/types/components/layout/PageShell.d.ts.map +1 -1
- package/package.json +6 -6
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/blockDiagram-DXYQGD6D.js.map +0 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/chunk-4TB4RGXK.js.map +0 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/chunk-5FUZZQ4R.js.map +0 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/chunk-5PVQY5BW.js.map +0 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ENJZ2VHE.js.map +0 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/chunk-ICPOFSXX.js.map +0 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/chunk-OYMX7WX6.js.map +0 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/ganttDiagram-T4ZO3ILL.js.map +0 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/quadrantDiagram-34T5L4WZ.js.map +0 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/sequenceDiagram-FGHM5R23.js.map +0 -1
- package/lib/esm/node_modules/mermaid/dist/chunks/mermaid.core/wardleyDiagram-NUSXRM2D.js.map +0 -1
- package/lib/esm/node_modules/uuid/dist/esm-browser/native.js +0 -5
- package/lib/esm/node_modules/uuid/dist/esm-browser/native.js.map +0 -1
- package/lib/esm/node_modules/uuid/dist/esm-browser/rng.js +0 -13
- package/lib/esm/node_modules/uuid/dist/esm-browser/rng.js.map +0 -1
- package/lib/esm/node_modules/uuid/dist/esm-browser/stringify.js.map +0 -1
- package/lib/esm/node_modules/uuid/dist/esm-browser/v4.js +0 -20
- package/lib/esm/node_modules/uuid/dist/esm-browser/v4.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.js","names":[],"sources":["../../../../src/components/data-table/DataTable.tsx"],"sourcesContent":["import { type CSSProperties, type JSX } from 'react';\n\nimport * as styles from './DataTable.css.js';\nimport type { DataTableBreakpoint } from './tableBreakpoints.js';\nimport { cx } from '../../theme/tools.js';\nimport { useUiTranslation } from '../../i18n/useUiTranslation.js';\nimport type { SlotClasses } from '../../styles/slots.js';\n\nexport type DataTableColumn<Row> = {\n id: string;\n header: JSX.Element | string;\n cell: (row: Row) => JSX.Element | string | null;\n minVisibleAt?: DataTableBreakpoint;\n className?: string;\n isPrimary?: boolean;\n align?: 'left' | 'center' | 'right';\n priority?: 'primary' | 'important' | 'secondary' | 'debug';\n mobileRole?:\n | 'title'\n | 'subtitle'\n | 'meta'\n | 'badge'\n | 'status'\n | 'action'\n | 'hidden';\n};\n\nexport type GetRowId<Row> = (row: Row, index: number) => string;\n\nexport type DataTableKind = NonNullable<\n Parameters<typeof styles.container>[0]\n>['kind'];\n\nexport type DataTableDensity = NonNullable<\n Parameters<typeof styles.densityRecipe>[0]\n>['density'];\n\nexport type DataTableRowState = NonNullable<\n Parameters<typeof styles.rowStateRecipe>[0]\n>['state'];\n\nexport type DataTableHeaderBehavior = {\n sticky?: boolean;\n offsetTop?: number;\n};\n\ntype DataTableSlot =\n | 'container'\n | 'header'\n | 'headerRow'\n | 'headerCell'\n | 'primaryHeaderCell'\n | 'body'\n | 'row'\n | 'rowEven'\n | 'rowOdd'\n | 'cell'\n | 'primaryCell'\n | 'emptyRow'\n | 'emptyCell';\n\nexport type DataTableProps<Row> = {\n columns: readonly DataTableColumn<Row>[];\n rows: readonly Row[];\n getRowId: GetRowId<Row>;\n emptyState?: JSX.Element;\n className?: string;\n headerClassName?: string;\n bodyClassName?: string;\n rowClassName?: (row: Row, index: number) => string | null | undefined;\n gridTemplateClassName?: string;\n gridTemplateColumns?: string;\n kind?: DataTableKind;\n density?: DataTableDensity;\n headerBehavior?: DataTableHeaderBehavior;\n rowState?: (row: Row, index: number) => DataTableRowState;\n classes?: SlotClasses<DataTableSlot>;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n};\n\nconst DEFAULT_TEMPLATE_CELL = 'minmax(0, 1fr)';\n\nconst getVisibilityClass = (minVisibleAt?: DataTableBreakpoint) => {\n if (minVisibleAt == null) {\n return null;\n }\n\n return styles.hideBelowRecipe({ minVisibleAt });\n};\n\nconst buildInlineTemplate = (\n columnCount: number,\n gridTemplateColumns?: string,\n): CSSProperties => {\n if (typeof gridTemplateColumns === 'string' && gridTemplateColumns !== '') {\n return { gridTemplateColumns };\n }\n return {\n gridTemplateColumns: `repeat(${columnCount}, ${DEFAULT_TEMPLATE_CELL})`,\n };\n};\n\n/**\n * Generic responsive data table component.\n */\nexport const DataTable = <Row,>({\n columns,\n rows,\n getRowId,\n emptyState,\n className,\n headerClassName,\n bodyClassName,\n rowClassName,\n gridTemplateClassName,\n gridTemplateColumns,\n kind,\n density,\n headerBehavior,\n rowState,\n classes,\n ariaLabel,\n ariaLabelledBy,\n}: DataTableProps<Row>): JSX.Element => {\n const { t } = useUiTranslation();\n const resolvedKind: DataTableKind = kind ?? 'default';\n const resolvedAriaLabel = ariaLabel ?? t('common.table.label');\n let tableAriaLabel: string | undefined = resolvedAriaLabel;\n if (ariaLabelledBy != null) {\n tableAriaLabel = undefined;\n }\n const defaultEmptyState = (\n <div className={cx(styles.emptyCell, classes?.emptyCell)}>\n {t('common.table.empty')}\n </div>\n ) as JSX.Element;\n const resolvedEmptyState = emptyState ?? defaultEmptyState;\n const showEmpty = rows.length === 0;\n\n let inlineTemplateStyle: CSSProperties | undefined;\n if (gridTemplateClassName == null) {\n inlineTemplateStyle = buildInlineTemplate(\n columns.length,\n gridTemplateColumns,\n );\n }\n let headerStickyClass: string | null = null;\n if (headerBehavior?.sticky === true) {\n headerStickyClass = styles.stickyHeader;\n }\n let headerStyle: CSSProperties | undefined;\n if (headerBehavior?.offsetTop != null) {\n headerStyle = { top: headerBehavior.offsetTop };\n }\n\n const resolvedDensity: DataTableDensity = density ?? 'default';\n const sharedRowClasses: string[] = [\n styles.densityRecipe({ density: resolvedDensity }),\n ];\n if (gridTemplateClassName != null) {\n sharedRowClasses.push(gridTemplateClassName);\n }\n\n let rowsContent: JSX.Element;\n if (showEmpty) {\n rowsContent = (\n <div className={cx(styles.emptyRow, classes?.emptyRow)} role=\"row\">\n <div role=\"cell\">{resolvedEmptyState}</div>\n </div>\n );\n } else {\n rowsContent = (\n <>\n {rows.map((row, index) => {\n const rowId = getRowId(row, index);\n const rowClasses = [styles.row({ kind: resolvedKind }), classes?.row];\n const state = rowState?.(row, index);\n if (state != null) {\n rowClasses.push(styles.rowStateRecipe({ state }));\n }\n if (index % 2 === 0) {\n rowClasses.push(\n styles.rowEven({ kind: resolvedKind }),\n classes?.rowEven,\n );\n } else {\n rowClasses.push(\n styles.rowOdd({ kind: resolvedKind }),\n classes?.rowOdd,\n );\n }\n for (const sharedClass of sharedRowClasses) {\n rowClasses.push(sharedClass);\n }\n\n if (rowClassName != null) {\n const customClass = rowClassName(row, index);\n if (customClass != null) {\n rowClasses.push(customClass);\n }\n }\n\n return (\n <div\n key={rowId}\n role=\"row\"\n className={cx(...rowClasses)}\n style={inlineTemplateStyle}\n >\n {columns.map((column) => {\n const cellClasses = [\n styles.cell({ kind: resolvedKind }),\n classes?.cell,\n ];\n const visibilityClass = getVisibilityClass(column.minVisibleAt);\n\n if (visibilityClass != null) {\n cellClasses.push(visibilityClass);\n }\n\n if (column.className != null) {\n cellClasses.push(column.className);\n }\n if (column.isPrimary) {\n cellClasses.push(styles.primaryCell, classes?.primaryCell);\n }\n if (column.align != null) {\n cellClasses.push(styles.alignRecipe({ align: column.align }));\n }\n\n const content = column.cell(row);\n\n return (\n <div\n key={column.id}\n role=\"cell\"\n className={cx(...cellClasses)}\n >\n {content}\n </div>\n );\n })}\n </div>\n );\n })}\n </>\n );\n }\n\n return (\n <div\n className={cx(\n styles.container({ kind: resolvedKind }),\n classes?.container,\n className,\n )}\n role=\"table\"\n aria-label={tableAriaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n <div\n className={cx(\n styles.header({ kind: resolvedKind }),\n headerStickyClass,\n classes?.header,\n headerClassName,\n )}\n style={headerStyle}\n role=\"rowgroup\"\n >\n <div\n className={cx(\n styles.headerRow,\n classes?.headerRow,\n ...sharedRowClasses,\n )}\n role=\"row\"\n style={inlineTemplateStyle}\n >\n {columns.map((column) => {\n const headerClasses = [\n styles.headerCell({ kind: resolvedKind }),\n classes?.headerCell,\n ];\n const visibilityClass = getVisibilityClass(column.minVisibleAt);\n if (visibilityClass != null) {\n headerClasses.push(visibilityClass);\n }\n\n if (column.className != null) {\n headerClasses.push(column.className);\n }\n if (column.isPrimary) {\n headerClasses.push(\n styles.primaryHeaderCell,\n classes?.primaryHeaderCell,\n );\n }\n if (column.align != null) {\n headerClasses.push(styles.alignRecipe({ align: column.align }));\n }\n\n return (\n <div\n key={column.id}\n role=\"columnheader\"\n className={cx(...headerClasses)}\n >\n {column.header}\n </div>\n );\n })}\n </div>\n </div>\n\n <div\n className={cx(\n styles.body({ kind: resolvedKind }),\n classes?.body,\n bodyClassName,\n )}\n role=\"rowgroup\"\n >\n {rowsContent}\n </div>\n </div>\n );\n};\n\nexport const __test = {\n getVisibilityClass,\n buildInlineTemplate,\n} as const;\n"],"mappings":";;;;;AAiFA,IAAM,IAAwB,kBAExB,KAAsB,MACtB,KAAgB,OACX,OAGF,EAAuB,EAAE,iBAAc,CAAC,EAG3C,KACJ,GACA,MAEI,OAAO,KAAwB,YAAY,MAAwB,KAC9D,EAAE,wBAAqB,GAEzB,EACL,qBAAqB,UAAU,EAAY,IAAI,EAAsB,IACtE,EAMU,KAAmB,EAC9B,YACA,SACA,aACA,eACA,cACA,oBACA,kBACA,iBACA,0BACA,wBACA,SACA,YACA,mBACA,aACA,YACA,cACA,wBACsC;CACtC,IAAM,EAAE,SAAM,GAAkB,EAC1B,IAA8B,KAAQ,WAExC,IADsB,KAAa,EAAE,qBAAqB;CAE9D,AAAI,KAAkB,SACpB,IAAiB,KAAA;CAEnB,IAAM,IACJ,kBAAC,OAAD;EAAK,WAAW,EAAG,GAAkB,GAAS,UAAU;YACrD,EAAE,qBAAqB;EACpB,CAAA,EAEF,IAAqB,KAAc,GACnC,IAAY,EAAK,WAAW,GAE9B;CACJ,AAAI,MACF,IAAsB,EACpB,EAAQ,QACR,EACD;CAEH,IAAI,IAAmC;CACvC,AAAI,GAAgB,WAAW,OAC7B,IAAoB;CAEtB,IAAI;CACJ,AAAI,GAAgB,aAAa,SAC/B,IAAc,EAAE,KAAK,EAAe,WAAW;CAIjD,IAAM,IAA6B,CACjC,EAAqB,EAAE,SAFiB,KAAW,WAEF,CAAC,CACnD;CACD,AAAI,KAAyB,QAC3B,EAAiB,KAAK,EAAsB;CAG9C,IAAI;CAsFJ,OArFA,AAOE,IAPE,IAEA,kBAAC,OAAD;EAAK,WAAW,EAAG,GAAiB,GAAS,SAAS;EAAE,MAAK;YAC3D,kBAAC,OAAD;GAAK,MAAK;aAAQ;GAAyB,CAAA;EACvC,CAAA,GAIN,kBAAA,GAAA,EAAA,UACG,EAAK,KAAK,GAAK,MAAU;EACxB,IAAM,IAAQ,EAAS,GAAK,EAAM,EAC5B,IAAa,CAAC,EAAW,EAAE,MAAM,GAAc,CAAC,EAAE,GAAS,IAAI,EAC/D,IAAQ,IAAW,GAAK,EAAM;EAIpC,AAHI,KAAS,QACX,EAAW,KAAK,EAAsB,EAAE,UAAO,CAAC,CAAC,EAE/C,IAAQ,KAAM,IAChB,EAAW,KACT,EAAe,EAAE,MAAM,GAAc,CAAC,EACtC,GAAS,QACV,GAED,EAAW,KACT,EAAc,EAAE,MAAM,GAAc,CAAC,EACrC,GAAS,OACV;EAEH,KAAK,IAAM,KAAe,GACxB,EAAW,KAAK,EAAY;EAG9B,IAAI,KAAgB,MAAM;GACxB,IAAM,IAAc,EAAa,GAAK,EAAM;GAC5C,AAAI,KAAe,QACjB,EAAW,KAAK,EAAY;;EAIhC,OACE,kBAAC,OAAD;GAEE,MAAK;GACL,WAAW,EAAG,GAAG,EAAW;GAC5B,OAAO;aAEN,EAAQ,KAAK,MAAW;IACvB,IAAM,IAAc,CAClB,EAAY,EAAE,MAAM,GAAc,CAAC,EACnC,GAAS,KACV,EACK,IAAkB,EAAmB,EAAO,aAAa;IAY/D,AAVI,KAAmB,QACrB,EAAY,KAAK,EAAgB,EAG/B,EAAO,aAAa,QACtB,EAAY,KAAK,EAAO,UAAU,EAEhC,EAAO,aACT,EAAY,KAAK,GAAoB,GAAS,YAAY,EAExD,EAAO,SAAS,QAClB,EAAY,KAAK,EAAmB,EAAE,OAAO,EAAO,OAAO,CAAC,CAAC;IAG/D,IAAM,IAAU,EAAO,KAAK,EAAI;IAEhC,OACE,kBAAC,OAAD;KAEE,MAAK;KACL,WAAW,EAAG,GAAG,EAAY;eAE5B;KACG,EALC,EAAO,GAKR;KAER;GACE,EAtCC,EAsCD;GAER,EACD,CAAA,EAKL,kBAAC,OAAD;EACE,WAAW,EACT,EAAiB,EAAE,MAAM,GAAc,CAAC,EACxC,GAAS,WACT,EACD;EACD,MAAK;EACL,cAAY;EACZ,mBAAiB;YARnB,CAUE,kBAAC,OAAD;GACE,WAAW,EACT,EAAc,EAAE,MAAM,GAAc,CAAC,EACrC,GACA,GAAS,QACT,EACD;GACD,OAAO;GACP,MAAK;aAEL,kBAAC,OAAD;IACE,WAAW,EACT,GACA,GAAS,WACT,GAAG,EACJ;IACD,MAAK;IACL,OAAO;cAEN,EAAQ,KAAK,MAAW;KACvB,IAAM,IAAgB,CACpB,EAAkB,EAAE,MAAM,GAAc,CAAC,EACzC,GAAS,WACV,EACK,IAAkB,EAAmB,EAAO,aAAa;KAkB/D,OAjBI,KAAmB,QACrB,EAAc,KAAK,EAAgB,EAGjC,EAAO,aAAa,QACtB,EAAc,KAAK,EAAO,UAAU,EAElC,EAAO,aACT,EAAc,KACZ,GACA,GAAS,kBACV,EAEC,EAAO,SAAS,QAClB,EAAc,KAAK,EAAmB,EAAE,OAAO,EAAO,OAAO,CAAC,CAAC,EAI/D,kBAAC,OAAD;MAEE,MAAK;MACL,WAAW,EAAG,GAAG,EAAc;gBAE9B,EAAO;MACJ,EALC,EAAO,GAKR;MAER;IACE,CAAA;GACF,CAAA,EAEN,kBAAC,OAAD;GACE,WAAW,EACT,EAAY,EAAE,MAAM,GAAc,CAAC,EACnC,GAAS,MACT,EACD;GACD,MAAK;aAEJ;GACG,CAAA,CACF;;GAIG,IAAS;CACpB;CACA;CACD"}
|
|
1
|
+
{"version":3,"file":"DataTable.js","names":[],"sources":["../../../../src/components/data-table/DataTable.tsx"],"sourcesContent":["import { type CSSProperties, type JSX, type ReactNode } from 'react';\n\nimport * as styles from './DataTable.css.js';\nimport type { DataTableBreakpoint } from './tableBreakpoints.js';\nimport { cx } from '../../theme/tools.js';\nimport { useUiTranslation } from '../../i18n/useUiTranslation.js';\nimport type { SlotClasses } from '../../styles/slots.js';\n\nexport type DataTableColumn<Row> = {\n id: string;\n header: JSX.Element | string;\n cell: (row: Row) => JSX.Element | string | null;\n minVisibleAt?: DataTableBreakpoint;\n className?: string;\n isPrimary?: boolean;\n align?: 'left' | 'center' | 'right';\n priority?: 'primary' | 'important' | 'secondary' | 'debug';\n mobileRole?:\n | 'title'\n | 'subtitle'\n | 'meta'\n | 'badge'\n | 'status'\n | 'action'\n | 'hidden';\n};\n\nexport type GetRowId<Row> = (row: Row, index: number) => string;\n\nexport type DataTableKind = NonNullable<\n Parameters<typeof styles.container>[0]\n>['kind'];\n\nexport type DataTableDensity = NonNullable<\n Parameters<typeof styles.densityRecipe>[0]\n>['density'];\n\nexport type DataTableRowState = NonNullable<\n Parameters<typeof styles.rowStateRecipe>[0]\n>['state'];\n\nexport type DataTableHeaderBehavior = {\n sticky?: boolean;\n offsetTop?: number;\n};\n\nexport type DataTableBodyScrollMode = 'page' | 'contained';\n\ntype DataTableSlot =\n | 'container'\n | 'header'\n | 'headerRow'\n | 'headerCell'\n | 'primaryHeaderCell'\n | 'body'\n | 'row'\n | 'rowEven'\n | 'rowOdd'\n | 'cell'\n | 'primaryCell'\n | 'emptyRow'\n | 'emptyCell';\n\nexport type DataTableProps<Row> = {\n columns: readonly DataTableColumn<Row>[];\n rows: readonly Row[];\n getRowId: GetRowId<Row>;\n emptyState?: JSX.Element;\n className?: string;\n headerClassName?: string;\n bodyClassName?: string;\n rowClassName?: (row: Row, index: number) => string | null | undefined;\n gridTemplateClassName?: string;\n gridTemplateColumns?: string;\n kind?: DataTableKind;\n density?: DataTableDensity;\n headerBehavior?: DataTableHeaderBehavior;\n bodyScrollMode?: DataTableBodyScrollMode;\n rowState?: (row: Row, index: number) => DataTableRowState;\n classes?: SlotClasses<DataTableSlot>;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n bodyFooterNode?: ReactNode;\n};\n\nconst DEFAULT_TEMPLATE_CELL = 'minmax(0, 1fr)';\n\nconst getVisibilityClass = (minVisibleAt?: DataTableBreakpoint) => {\n if (minVisibleAt == null) {\n return null;\n }\n\n return styles.hideBelowRecipe({ minVisibleAt });\n};\n\nconst buildInlineTemplate = (\n columnCount: number,\n gridTemplateColumns?: string,\n): CSSProperties => {\n if (typeof gridTemplateColumns === 'string' && gridTemplateColumns !== '') {\n return { gridTemplateColumns };\n }\n return {\n gridTemplateColumns: `repeat(${columnCount}, ${DEFAULT_TEMPLATE_CELL})`,\n };\n};\n\n/**\n * Generic responsive data table component.\n */\nexport const DataTable = <Row,>({\n columns,\n rows,\n getRowId,\n emptyState,\n className,\n headerClassName,\n bodyClassName,\n rowClassName,\n gridTemplateClassName,\n gridTemplateColumns,\n kind,\n density,\n headerBehavior,\n bodyScrollMode = 'page',\n rowState,\n classes,\n ariaLabel,\n ariaLabelledBy,\n bodyFooterNode,\n}: DataTableProps<Row>): JSX.Element => {\n const { t } = useUiTranslation();\n const resolvedKind: DataTableKind = kind ?? 'default';\n const resolvedAriaLabel = ariaLabel ?? t('common.table.label');\n let tableAriaLabel: string | undefined = resolvedAriaLabel;\n if (ariaLabelledBy != null) {\n tableAriaLabel = undefined;\n }\n const defaultEmptyState = (\n <div className={cx(styles.emptyCell, classes?.emptyCell)}>\n {t('common.table.empty')}\n </div>\n ) as JSX.Element;\n const resolvedEmptyState = emptyState ?? defaultEmptyState;\n const showEmpty = rows.length === 0;\n const hasContainedBodyScroll = bodyScrollMode === 'contained';\n\n let inlineTemplateStyle: CSSProperties | undefined;\n if (gridTemplateClassName == null) {\n inlineTemplateStyle = buildInlineTemplate(\n columns.length,\n gridTemplateColumns,\n );\n }\n let headerStickyClass: string | null = null;\n if (headerBehavior?.sticky === true) {\n headerStickyClass = styles.stickyHeader;\n }\n let headerStyle: CSSProperties | undefined;\n if (headerBehavior?.offsetTop != null) {\n headerStyle = { top: headerBehavior.offsetTop };\n }\n\n const resolvedDensity: DataTableDensity = density ?? 'default';\n const sharedRowClasses: string[] = [\n styles.densityRecipe({ density: resolvedDensity }),\n ];\n if (gridTemplateClassName != null) {\n sharedRowClasses.push(gridTemplateClassName);\n }\n\n let rowsContent: JSX.Element;\n if (showEmpty) {\n rowsContent = (\n <div className={cx(styles.emptyRow, classes?.emptyRow)} role=\"row\">\n <div role=\"cell\">{resolvedEmptyState}</div>\n </div>\n );\n } else {\n rowsContent = (\n <>\n {rows.map((row, index) => {\n const rowId = getRowId(row, index);\n const rowClasses = [styles.row({ kind: resolvedKind }), classes?.row];\n const state = rowState?.(row, index);\n if (state != null) {\n rowClasses.push(styles.rowStateRecipe({ state }));\n }\n if (index % 2 === 0) {\n rowClasses.push(\n styles.rowEven({ kind: resolvedKind }),\n classes?.rowEven,\n );\n } else {\n rowClasses.push(\n styles.rowOdd({ kind: resolvedKind }),\n classes?.rowOdd,\n );\n }\n for (const sharedClass of sharedRowClasses) {\n rowClasses.push(sharedClass);\n }\n\n if (rowClassName != null) {\n const customClass = rowClassName(row, index);\n if (customClass != null) {\n rowClasses.push(customClass);\n }\n }\n\n return (\n <div\n key={rowId}\n role=\"row\"\n className={cx(...rowClasses)}\n style={inlineTemplateStyle}\n >\n {columns.map((column) => {\n const cellClasses = [\n styles.cell({ kind: resolvedKind }),\n classes?.cell,\n ];\n const visibilityClass = getVisibilityClass(column.minVisibleAt);\n\n if (visibilityClass != null) {\n cellClasses.push(visibilityClass);\n }\n\n if (column.className != null) {\n cellClasses.push(column.className);\n }\n if (column.isPrimary) {\n cellClasses.push(styles.primaryCell, classes?.primaryCell);\n }\n if (column.align != null) {\n cellClasses.push(styles.alignRecipe({ align: column.align }));\n }\n\n const content = column.cell(row);\n\n return (\n <div\n key={column.id}\n role=\"cell\"\n className={cx(...cellClasses)}\n >\n {content}\n </div>\n );\n })}\n </div>\n );\n })}\n </>\n );\n }\n\n let containedContainerClassName: string | null = null;\n let containedBodyClassName: string | null = null;\n if (hasContainedBodyScroll) {\n containedContainerClassName = styles.containerWithContainedBody;\n containedBodyClassName = styles.bodyContained;\n }\n\n return (\n <div\n className={cx(\n styles.container({ kind: resolvedKind }),\n containedContainerClassName,\n classes?.container,\n className,\n )}\n role=\"table\"\n aria-label={tableAriaLabel}\n aria-labelledby={ariaLabelledBy}\n data-scroll-mode={bodyScrollMode}\n >\n <div\n className={cx(\n styles.header({ kind: resolvedKind }),\n headerStickyClass,\n classes?.header,\n headerClassName,\n )}\n style={headerStyle}\n role=\"rowgroup\"\n >\n <div\n className={cx(\n styles.headerRow,\n classes?.headerRow,\n ...sharedRowClasses,\n )}\n role=\"row\"\n style={inlineTemplateStyle}\n >\n {columns.map((column) => {\n const headerClasses = [\n styles.headerCell({ kind: resolvedKind }),\n classes?.headerCell,\n ];\n const visibilityClass = getVisibilityClass(column.minVisibleAt);\n if (visibilityClass != null) {\n headerClasses.push(visibilityClass);\n }\n\n if (column.className != null) {\n headerClasses.push(column.className);\n }\n if (column.isPrimary) {\n headerClasses.push(\n styles.primaryHeaderCell,\n classes?.primaryHeaderCell,\n );\n }\n if (column.align != null) {\n headerClasses.push(styles.alignRecipe({ align: column.align }));\n }\n\n return (\n <div\n key={column.id}\n role=\"columnheader\"\n className={cx(...headerClasses)}\n >\n {column.header}\n </div>\n );\n })}\n </div>\n </div>\n\n <div\n className={cx(\n styles.body({ kind: resolvedKind }),\n containedBodyClassName,\n classes?.body,\n bodyClassName,\n )}\n role=\"rowgroup\"\n data-scroll-mode={bodyScrollMode}\n >\n {rowsContent}\n {bodyFooterNode}\n </div>\n </div>\n );\n};\n\nexport const __test = {\n getVisibilityClass,\n buildInlineTemplate,\n} as const;\n"],"mappings":"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"}
|
|
@@ -9,17 +9,17 @@
|
|
|
9
9
|
/* empty css */
|
|
10
10
|
import { createRuntimeFn as e } from "@vanilla-extract/recipes/createRuntimeFn";
|
|
11
11
|
//#region src/components/data-table/ResponsiveRecordList.css.ts
|
|
12
|
-
var t = "r17fa50", n = "r17fa52 r17fa51 txvbqb9hy", r = "r17fa53
|
|
13
|
-
defaultClassName: "
|
|
12
|
+
var t = "r17fa50", n = "r17fa52 r17fa51 txvbqb9hy", r = "r17fa53 txvbqb9ip txvbqbai7 txvbqbcgg txvbqbjh7", i = "r17fa55 r17fa54 txvbqb9my txvbqbjh7 txvbqbu7g", a = "r17fa56 txvbqb9hy", o = "r17fa57 txvbqb9ip txvbqbai7 txvbqbao7 txvbqbu7g", s = e({
|
|
13
|
+
defaultClassName: "r17fa5d r17fa59 r17fa58 txvbqb9ip txvbqbai7 txvbqbaog txvbqbk5y _1995g4r1 _1995g4r0 _1995g4r2 _1995g4ra _1995g4rd _1995g4rh _1995g4rl",
|
|
14
14
|
variantClassNames: { density: {
|
|
15
|
-
compact: "
|
|
16
|
-
default: "
|
|
17
|
-
comfortable: "
|
|
15
|
+
compact: "r17fa5e r17fa5a txvbqbao7 txvbqblb7",
|
|
16
|
+
default: "r17fa5f r17fa5b txvbqbaog txvbqblbg",
|
|
17
|
+
comfortable: "r17fa5g r17fa5c txvbqbaog txvbqblbg"
|
|
18
18
|
} },
|
|
19
19
|
defaultVariants: { density: "compact" },
|
|
20
20
|
compoundVariants: []
|
|
21
|
-
}),
|
|
21
|
+
}), c = "r17fa5h txvbqbcg txvbqb9ip txvbqbaog txvbqbdpp txvbqbk5y", l = "r17fa5i txvbqb9ip txvbqbai7 txvbqbany txvbqbk5y", u = "r17fa5j txvbqbv9z txvbqb8y txvbqbamp txvbqbfap txvbqbk5y txvbqbl87", d = "r17fa5k txvbqbva1 txvbqb8p txvbqbfap txvbqbk5y txvbqbl87", f = "r17fa5l txvbqb9iy txvbqbao7 txvbqbbtp txvbqbbth", p = "r17fa5m txvbqb9ip txvbqbai7 txvbqbb9g txvbqbk5y", m = "r17fa5n txvbqbva3 txvbqb8p txvbqbamp txvbqbefg txvbqb66", h = "r17fa5o txvbqbv9z txvbqb8y txvbqbk5y txvbqbl87", g = "r17fa5p txvbqbcp txvbqb9ip txvbqbajy txvbqbao7", _ = "r17fa5q txvbqbcp txvbqb9ip txvbqbaj7 txvbqbdp7";
|
|
22
22
|
//#endregion
|
|
23
|
-
export {
|
|
23
|
+
export { s as card, _ as cardActions, g as cardBadges, c as cardHeader, f as cardMetaGrid, p as cardMetaItem, m as cardMetaLabel, h as cardMetaValue, d as cardSubtitle, u as cardTitle, l as cardTitleGroup, o as cards, n as cardsOnly, i as cardsViewport, r as containedRoot, a as forceHidden, t as tableOnly };
|
|
24
24
|
|
|
25
25
|
//# sourceMappingURL=ResponsiveRecordList.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponsiveRecordList.css.js","names":[],"sources":["../../../../src/components/data-table/ResponsiveRecordList.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { recipe } from '@vanilla-extract/recipes';\n\nimport { adminSurfaceRecipe } from '../../admin/theme/adminSurface.css.js';\nimport { sprinkles } from '../../theme/sprinkles.css.js';\nimport { vars } from '../../theme/themeContract.js';\n\nconst TABLET_MEDIA_QUERY = 'screen and (max-width: 767px)';\n\nexport const tableOnly = style({\n '@media': {\n [TABLET_MEDIA_QUERY]: {\n display: 'none',\n },\n },\n});\n\nexport const cardsOnly = style([\n sprinkles({\n display: 'none',\n }),\n {\n '@media': {\n [TABLET_MEDIA_QUERY]: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n },\n },\n },\n]);\n\nexport const forceHidden = sprinkles({\n display: 'none',\n});\n\nexport const cards = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n width: 'full',\n});\n\nexport const card = recipe({\n base: style([\n sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n minWidth: 0,\n }),\n adminSurfaceRecipe({\n level: 'panel',\n radius: 'md',\n border: 'subtle',\n elevation: 'subtle',\n padding: 'md',\n }),\n {\n selectors: {\n '&:hover': {\n borderColor: vars.colors.border,\n boxShadow: vars.boxShadow.md,\n },\n },\n },\n ]),\n variants: {\n density: {\n compact: sprinkles({\n gap: 2,\n padding: 3,\n }),\n default: sprinkles({\n gap: 3,\n padding: 4,\n }),\n comfortable: sprinkles({\n gap: 3,\n padding: 4,\n }),\n },\n },\n defaultVariants: {\n density: 'compact',\n },\n});\n\nexport const cardHeader = sprinkles({\n alignItems: 'flex-start',\n display: 'flex',\n gap: 3,\n justifyContent: 'space-between',\n minWidth: 0,\n});\n\nexport const cardTitleGroup = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n minWidth: 0,\n});\n\nexport const cardTitle = sprinkles({\n color: 'text',\n fontSize: 'sm',\n fontWeight: 'semibold',\n lineHeight: 'tight',\n minWidth: 0,\n overflowWrap: 'anywhere',\n});\n\nexport const cardSubtitle = sprinkles({\n color: 'textSecondary',\n fontSize: 'xs',\n lineHeight: 'tight',\n minWidth: 0,\n overflowWrap: 'anywhere',\n});\n\nexport const cardMetaGrid = sprinkles({\n display: 'grid',\n gap: 2,\n gridTemplateColumns: {\n base: 2,\n sm: 1,\n },\n});\n\nexport const cardMetaItem = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 0.5,\n minWidth: 0,\n});\n\nexport const cardMetaLabel = sprinkles({\n color: 'textMuted',\n fontSize: 'xs',\n fontWeight: 'semibold',\n letterSpacing: 'caps',\n textTransform: 'uppercase',\n});\n\nexport const cardMetaValue = sprinkles({\n color: 'text',\n fontSize: 'sm',\n minWidth: 0,\n overflowWrap: 'anywhere',\n});\n\nexport const cardBadges = sprinkles({\n alignItems: 'center',\n display: 'flex',\n flexWrap: 'wrap',\n gap: 2,\n});\n\nexport const cardActions = sprinkles({\n alignItems: 'center',\n display: 'flex',\n flexShrink: 0,\n justifyContent: 'flex-end',\n});\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"ResponsiveRecordList.css.js","names":[],"sources":["../../../../src/components/data-table/ResponsiveRecordList.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\nimport { recipe } from '@vanilla-extract/recipes';\n\nimport { adminSurfaceRecipe } from '../../admin/theme/adminSurface.css.js';\nimport { sprinkles } from '../../theme/sprinkles.css.js';\nimport { vars } from '../../theme/themeContract.js';\n\nconst TABLET_MEDIA_QUERY = 'screen and (max-width: 767px)';\n\nexport const tableOnly = style({\n '@media': {\n [TABLET_MEDIA_QUERY]: {\n display: 'none',\n },\n },\n});\n\nexport const cardsOnly = style([\n sprinkles({\n display: 'none',\n }),\n {\n '@media': {\n [TABLET_MEDIA_QUERY]: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n },\n },\n },\n]);\n\nexport const containedRoot = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n height: 'full',\n minHeight: 0,\n});\n\nexport const cardsViewport = style([\n sprinkles({\n flex: 1,\n minHeight: 0,\n width: 'full',\n }),\n {\n overflowY: 'auto',\n scrollbarWidth: 'thin',\n scrollbarColor: `${vars.colors.border} transparent`,\n },\n]);\n\nexport const forceHidden = sprinkles({\n display: 'none',\n});\n\nexport const cards = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n width: 'full',\n});\n\nexport const card = recipe({\n base: style([\n sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 3,\n minWidth: 0,\n }),\n adminSurfaceRecipe({\n level: 'panel',\n radius: 'md',\n border: 'subtle',\n elevation: 'subtle',\n padding: 'md',\n }),\n {\n selectors: {\n '&:hover': {\n borderColor: vars.colors.border,\n boxShadow: vars.boxShadow.md,\n },\n },\n },\n ]),\n variants: {\n density: {\n compact: sprinkles({\n gap: 2,\n padding: 3,\n }),\n default: sprinkles({\n gap: 3,\n padding: 4,\n }),\n comfortable: sprinkles({\n gap: 3,\n padding: 4,\n }),\n },\n },\n defaultVariants: {\n density: 'compact',\n },\n});\n\nexport const cardHeader = sprinkles({\n alignItems: 'flex-start',\n display: 'flex',\n gap: 3,\n justifyContent: 'space-between',\n minWidth: 0,\n});\n\nexport const cardTitleGroup = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n minWidth: 0,\n});\n\nexport const cardTitle = sprinkles({\n color: 'text',\n fontSize: 'sm',\n fontWeight: 'semibold',\n lineHeight: 'tight',\n minWidth: 0,\n overflowWrap: 'anywhere',\n});\n\nexport const cardSubtitle = sprinkles({\n color: 'textSecondary',\n fontSize: 'xs',\n lineHeight: 'tight',\n minWidth: 0,\n overflowWrap: 'anywhere',\n});\n\nexport const cardMetaGrid = sprinkles({\n display: 'grid',\n gap: 2,\n gridTemplateColumns: {\n base: 2,\n sm: 1,\n },\n});\n\nexport const cardMetaItem = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 0.5,\n minWidth: 0,\n});\n\nexport const cardMetaLabel = sprinkles({\n color: 'textMuted',\n fontSize: 'xs',\n fontWeight: 'semibold',\n letterSpacing: 'caps',\n textTransform: 'uppercase',\n});\n\nexport const cardMetaValue = sprinkles({\n color: 'text',\n fontSize: 'sm',\n minWidth: 0,\n overflowWrap: 'anywhere',\n});\n\nexport const cardBadges = sprinkles({\n alignItems: 'center',\n display: 'flex',\n flexWrap: 'wrap',\n gap: 2,\n});\n\nexport const cardActions = sprinkles({\n alignItems: 'center',\n display: 'flex',\n flexShrink: 0,\n justifyContent: 'flex-end',\n});\n"],"mappings":""}
|
|
@@ -1,84 +1,109 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { cx as e } from "../../theme/tools.js";
|
|
2
|
+
import { DataTable as t } from "./DataTable.js";
|
|
3
|
+
import { card as n, cardActions as r, cardBadges as i, cardHeader as a, cardMetaGrid as o, cardMetaItem as s, cardMetaLabel as c, cardMetaValue as l, cardSubtitle as u, cardTitle as d, cardTitleGroup as f, cards as p, cardsOnly as m, cardsViewport as h, containedRoot as g, tableOnly as _ } from "./ResponsiveRecordList.css.js";
|
|
4
|
+
import { useEffect as v, useState as y } from "react";
|
|
5
|
+
import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
|
|
4
6
|
//#region src/components/data-table/ResponsiveRecordList.tsx
|
|
5
|
-
var
|
|
6
|
-
let
|
|
7
|
-
return
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
var C = "(max-width: 767px)", w = (e, t) => e == null ? null : e.cell(t), T = (e, t) => e.find((e) => e.mobileRole === t) ?? null, E = (e) => e.mobileRole === "hidden" ? !1 : e.mobileRole === "meta" ? !0 : e.mobileRole == null ? e.priority === "important" || e.priority === "secondary" : !1, D = () => {
|
|
8
|
+
let [e, t] = y(() => typeof window > "u" ? !1 : window.matchMedia(C).matches);
|
|
9
|
+
return v(() => {
|
|
10
|
+
if (typeof window > "u") return () => {};
|
|
11
|
+
let e = window.matchMedia(C), n = () => {
|
|
12
|
+
t(e.matches);
|
|
13
|
+
};
|
|
14
|
+
return n(), e.addEventListener("change", n), () => {
|
|
15
|
+
e.removeEventListener("change", n);
|
|
16
|
+
};
|
|
17
|
+
}, []), e;
|
|
18
|
+
}, O = ({ columns: v, rows: y, getRowId: C, mode: O = "auto", density: k = "compact", renderAction: A, className: j, bodyScrollMode: M, ...N }) => {
|
|
19
|
+
let P = M === "contained", F = D(), I = null, L, R = null;
|
|
20
|
+
P && (I = g, L = h, R = h);
|
|
21
|
+
let z = T(v, "title") ?? v.find((e) => e.isPrimary === !0 || e.priority === "primary") ?? v[0] ?? null, B = T(v, "subtitle"), V = v.filter((e) => e.mobileRole === "badge" || e.mobileRole === "status"), H = v.filter((e) => e !== z && e !== B && E(e)), U = /* @__PURE__ */ x(b, { children: N.emptyState ?? null });
|
|
22
|
+
if (y.length > 0 && (U = /* @__PURE__ */ x("div", {
|
|
23
|
+
className: p,
|
|
24
|
+
children: y.map((e, t) => {
|
|
25
|
+
let p = C(e, t), m = w(z, e), h = w(B, e), g = A?.(e), _ = null;
|
|
26
|
+
h != null && h !== "" && (_ = /* @__PURE__ */ x("div", {
|
|
27
|
+
className: u,
|
|
13
28
|
children: h
|
|
14
29
|
}));
|
|
15
|
-
let
|
|
16
|
-
|
|
17
|
-
className: n,
|
|
18
|
-
children: y
|
|
19
|
-
}));
|
|
20
|
-
let S = null;
|
|
21
|
-
j.length > 0 && (S = /* @__PURE__ */ g("div", {
|
|
30
|
+
let v = null;
|
|
31
|
+
g != null && (v = /* @__PURE__ */ x("div", {
|
|
22
32
|
className: r,
|
|
23
|
-
children:
|
|
33
|
+
children: g
|
|
24
34
|
}));
|
|
25
|
-
let
|
|
26
|
-
|
|
27
|
-
className:
|
|
28
|
-
children:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
35
|
+
let y = null;
|
|
36
|
+
V.length > 0 && (y = /* @__PURE__ */ x("div", {
|
|
37
|
+
className: i,
|
|
38
|
+
children: V.map((t) => /* @__PURE__ */ x("span", { children: t.cell(e) }, t.id))
|
|
39
|
+
}));
|
|
40
|
+
let b = null;
|
|
41
|
+
return H.length > 0 && (b = /* @__PURE__ */ x("dl", {
|
|
42
|
+
className: o,
|
|
43
|
+
children: H.map((t) => /* @__PURE__ */ S("div", {
|
|
44
|
+
className: s,
|
|
45
|
+
children: [/* @__PURE__ */ x("dt", {
|
|
34
46
|
className: c,
|
|
47
|
+
children: t.header
|
|
48
|
+
}), /* @__PURE__ */ x("dd", {
|
|
49
|
+
className: l,
|
|
35
50
|
children: t.cell(e)
|
|
36
51
|
})]
|
|
37
52
|
}, t.id))
|
|
38
|
-
})), /* @__PURE__ */
|
|
39
|
-
className:
|
|
53
|
+
})), /* @__PURE__ */ S("article", {
|
|
54
|
+
className: n({ density: k }),
|
|
40
55
|
children: [
|
|
41
|
-
/* @__PURE__ */
|
|
42
|
-
className:
|
|
43
|
-
children: [/* @__PURE__ */
|
|
44
|
-
className:
|
|
45
|
-
children: [/* @__PURE__ */
|
|
46
|
-
className:
|
|
56
|
+
/* @__PURE__ */ S("div", {
|
|
57
|
+
className: a,
|
|
58
|
+
children: [/* @__PURE__ */ S("div", {
|
|
59
|
+
className: f,
|
|
60
|
+
children: [/* @__PURE__ */ x("div", {
|
|
61
|
+
className: d,
|
|
47
62
|
children: m
|
|
48
|
-
}),
|
|
49
|
-
}),
|
|
63
|
+
}), _]
|
|
64
|
+
}), v]
|
|
50
65
|
}),
|
|
51
|
-
|
|
52
|
-
|
|
66
|
+
y,
|
|
67
|
+
b
|
|
53
68
|
]
|
|
54
69
|
}, p);
|
|
55
70
|
})
|
|
56
|
-
})),
|
|
57
|
-
className:
|
|
58
|
-
children:
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
71
|
+
})), O === "cards") return /* @__PURE__ */ x("div", {
|
|
72
|
+
className: e(j, I),
|
|
73
|
+
children: /* @__PURE__ */ S("div", {
|
|
74
|
+
className: L,
|
|
75
|
+
children: [U, N.bodyFooterNode]
|
|
76
|
+
})
|
|
77
|
+
});
|
|
78
|
+
if (O === "table") return /* @__PURE__ */ x(t, {
|
|
79
|
+
...N,
|
|
80
|
+
rows: y,
|
|
81
|
+
columns: v,
|
|
63
82
|
getRowId: C,
|
|
64
|
-
className:
|
|
65
|
-
density:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
83
|
+
className: j,
|
|
84
|
+
density: k,
|
|
85
|
+
bodyScrollMode: M,
|
|
86
|
+
bodyFooterNode: N.bodyFooterNode
|
|
87
|
+
});
|
|
88
|
+
let W = N.bodyFooterNode, G = null;
|
|
89
|
+
return F && (W = null, G = N.bodyFooterNode), /* @__PURE__ */ S("div", {
|
|
90
|
+
className: e(j, I),
|
|
91
|
+
children: [/* @__PURE__ */ x(t, {
|
|
92
|
+
...N,
|
|
93
|
+
rows: y,
|
|
94
|
+
columns: v,
|
|
72
95
|
getRowId: C,
|
|
73
|
-
density:
|
|
74
|
-
className:
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
96
|
+
density: k,
|
|
97
|
+
className: _,
|
|
98
|
+
bodyScrollMode: M,
|
|
99
|
+
bodyFooterNode: W
|
|
100
|
+
}), /* @__PURE__ */ S("div", {
|
|
101
|
+
className: e(m, R),
|
|
102
|
+
children: [U, G]
|
|
78
103
|
})]
|
|
79
104
|
});
|
|
80
105
|
};
|
|
81
106
|
//#endregion
|
|
82
|
-
export {
|
|
107
|
+
export { O as ResponsiveRecordList, O as default };
|
|
83
108
|
|
|
84
109
|
//# sourceMappingURL=ResponsiveRecordList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponsiveRecordList.js","names":[],"sources":["../../../../src/components/data-table/ResponsiveRecordList.tsx"],"sourcesContent":["import { type JSX, type ReactNode } from 'react';\n\nimport {\n DataTable,\n type DataTableColumn,\n type DataTableDensity,\n type DataTableProps,\n} from './DataTable.js';\nimport * as styles from './ResponsiveRecordList.css.js';\n\nexport type ResponsiveRecordListMode = 'table' | 'cards' | 'auto';\nexport type ResponsiveRecordListDensity = DataTableDensity;\n\nexport type ResponsiveRecordListColumn<Row> = DataTableColumn<Row> & {\n priority?: 'primary' | 'important' | 'secondary' | 'debug';\n mobileRole?:\n | 'title'\n | 'subtitle'\n | 'meta'\n | 'badge'\n | 'status'\n | 'action'\n | 'hidden';\n};\n\nexport type ResponsiveRecordListProps<Row> = Omit<\n DataTableProps<Row>,\n 'columns'\n> & {\n columns: readonly ResponsiveRecordListColumn<Row>[];\n mode?: ResponsiveRecordListMode;\n density?: ResponsiveRecordListDensity;\n renderAction?: (row: Row) => ReactNode;\n};\n\nconst renderCellText = <Row,>(\n column: ResponsiveRecordListColumn<Row> | null,\n row: Row,\n): ReactNode => {\n if (column == null) {\n return null;\n }\n return column.cell(row);\n};\n\nconst findColumn = <Row,>(\n columns: readonly ResponsiveRecordListColumn<Row>[],\n role: ResponsiveRecordListColumn<Row>['mobileRole'],\n): ResponsiveRecordListColumn<Row> | null => {\n return (\n columns.find((column) => {\n return column.mobileRole === role;\n }) ?? null\n );\n};\n\nconst isMetaColumn = <Row,>(\n column: ResponsiveRecordListColumn<Row>,\n): boolean => {\n if (column.mobileRole === 'hidden') {\n return false;\n }\n if (column.mobileRole === 'meta') {\n return true;\n }\n if (column.mobileRole != null) {\n return false;\n }\n return column.priority === 'important' || column.priority === 'secondary';\n};\n\nexport const ResponsiveRecordList = <Row,>({\n columns,\n rows,\n getRowId,\n mode = 'auto',\n density = 'compact',\n renderAction,\n className,\n ...tableProps\n}: ResponsiveRecordListProps<Row>): JSX.Element => {\n const titleColumn =\n findColumn(columns, 'title') ??\n columns.find((column) => {\n return column.isPrimary === true || column.priority === 'primary';\n }) ??\n columns[0] ??\n null;\n const subtitleColumn = findColumn(columns, 'subtitle');\n const badgeColumns = columns.filter((column) => {\n return column.mobileRole === 'badge' || column.mobileRole === 'status';\n });\n const metaColumns = columns.filter((column) => {\n return (\n column !== titleColumn &&\n column !== subtitleColumn &&\n isMetaColumn(column)\n );\n });\n\n let cards: JSX.Element = <>{tableProps.emptyState ?? null}</>;\n if (rows.length > 0) {\n cards = (\n <div className={styles.cards}>\n {rows.map((row, index) => {\n const rowId = getRowId(row, index);\n const title = renderCellText(titleColumn, row);\n const subtitle = renderCellText(subtitleColumn, row);\n const action = renderAction?.(row);\n let subtitleNode: JSX.Element | null = null;\n if (subtitle != null && subtitle !== '') {\n subtitleNode = (\n <div className={styles.cardSubtitle}>{subtitle}</div>\n );\n }\n let actionNode: JSX.Element | null = null;\n if (action != null) {\n actionNode = <div className={styles.cardActions}>{action}</div>;\n }\n let badgeNode: JSX.Element | null = null;\n if (badgeColumns.length > 0) {\n badgeNode = (\n <div className={styles.cardBadges}>\n {badgeColumns.map((column) => {\n return <span key={column.id}>{column.cell(row)}</span>;\n })}\n </div>\n );\n }\n let metaNode: JSX.Element | null = null;\n if (metaColumns.length > 0) {\n metaNode = (\n <dl className={styles.cardMetaGrid}>\n {metaColumns.map((column) => {\n return (\n <div key={column.id} className={styles.cardMetaItem}>\n <dt className={styles.cardMetaLabel}>{column.header}</dt>\n <dd className={styles.cardMetaValue}>\n {column.cell(row)}\n </dd>\n </div>\n );\n })}\n </dl>\n );\n }\n\n return (\n <article key={rowId} className={styles.card({ density })}>\n <div className={styles.cardHeader}>\n <div className={styles.cardTitleGroup}>\n <div className={styles.cardTitle}>{title}</div>\n {subtitleNode}\n </div>\n {actionNode}\n </div>\n {badgeNode}\n {metaNode}\n </article>\n );\n })}\n </div>\n );\n }\n\n if (mode === 'cards') {\n return <div className={className}>{cards}</div>;\n }\n\n if (mode === 'table') {\n return (\n <DataTable\n {...tableProps}\n rows={rows}\n columns={columns}\n getRowId={getRowId}\n className={className}\n density={density}\n />\n );\n }\n\n return (\n <div className={className}>\n <DataTable\n {...tableProps}\n rows={rows}\n columns={columns}\n getRowId={getRowId}\n density={density}\n className={styles.tableOnly}\n />\n <div className={styles.cardsOnly}>{cards}</div>\n </div>\n );\n};\n\nexport default ResponsiveRecordList;\n"],"mappings":";;;;AAmCA,IAAM,KACJ,GACA,MAEI,KAAU,OACL,OAEF,EAAO,KAAK,EAAI,EAGnB,KACJ,GACA,MAGE,EAAQ,MAAM,MACL,EAAO,eAAe,EAC7B,IAAI,MAIJ,KACJ,MAEI,EAAO,eAAe,WACjB,KAEL,EAAO,eAAe,SACjB,KAEL,EAAO,cAAc,OAGlB,EAAO,aAAa,eAAe,EAAO,aAAa,cAFrD,IAKE,KAA8B,EACzC,YACA,SACA,aACA,UAAO,QACP,aAAU,WACV,iBACA,cACA,GAAG,QAC8C;CACjD,IAAM,IACJ,EAAW,GAAS,QAAQ,IAC5B,EAAQ,MAAM,MACL,EAAO,cAAc,MAAQ,EAAO,aAAa,UACxD,IACF,EAAQ,MACR,MACI,IAAiB,EAAW,GAAS,WAAW,EAChD,IAAe,EAAQ,QAAQ,MAC5B,EAAO,eAAe,WAAW,EAAO,eAAe,SAC9D,EACI,IAAc,EAAQ,QAAQ,MAEhC,MAAW,KACX,MAAW,KACX,EAAa,EAAO,CAEtB,EAEE,IAAqB,kBAAA,GAAA,EAAA,UAAG,EAAW,cAAc,MAAQ,CAAA;CAkF7D,OAjFI,EAAK,SAAS,MAChB,IACE,kBAAC,OAAD;EAAK,WAAW;YACb,EAAK,KAAK,GAAK,MAAU;GACxB,IAAM,IAAQ,EAAS,GAAK,EAAM,EAC5B,IAAQ,EAAe,GAAa,EAAI,EACxC,IAAW,EAAe,GAAgB,EAAI,EAC9C,IAAS,IAAe,EAAI,EAC9B,IAAmC;GACvC,AAAI,KAAY,QAAQ,MAAa,OACnC,IACE,kBAAC,OAAD;IAAK,WAAW;cAAsB;IAAe,CAAA;GAGzD,IAAI,IAAiC;GACrC,AAAI,KAAU,SACZ,IAAa,kBAAC,OAAD;IAAK,WAAW;cAAqB;IAAa,CAAA;GAEjE,IAAI,IAAgC;GACpC,AAAI,EAAa,SAAS,MACxB,IACE,kBAAC,OAAD;IAAK,WAAW;cACb,EAAa,KAAK,MACV,kBAAC,QAAD,EAAA,UAAuB,EAAO,KAAK,EAAI,EAAQ,EAApC,EAAO,GAA6B,CACtD;IACE,CAAA;GAGV,IAAI,IAA+B;GAkBnC,OAjBI,EAAY,SAAS,MACvB,IACE,kBAAC,MAAD;IAAI,WAAW;cACZ,EAAY,KAAK,MAEd,kBAAC,OAAD;KAAqB,WAAW;eAAhC,CACE,kBAAC,MAAD;MAAI,WAAW;gBAAuB,EAAO;MAAY,CAAA,EACzD,kBAAC,MAAD;MAAI,WAAW;gBACZ,EAAO,KAAK,EAAI;MACd,CAAA,CACD;OALI,EAAO,GAKX,CAER;IACC,CAAA,GAKP,kBAAC,WAAD;IAAqB,WAAW,EAAY,EAAE,YAAS,CAAC;cAAxD;KACE,kBAAC,OAAD;MAAK,WAAW;gBAAhB,CACE,kBAAC,OAAD;OAAK,WAAW;iBAAhB,CACE,kBAAC,OAAD;QAAK,WAAW;kBAAmB;QAAY,CAAA,EAC9C,EACG;UACL,EACG;;KACL;KACA;KACO;MAVI,EAUJ;IAEZ;EACE,CAAA,GAIN,MAAS,UACJ,kBAAC,OAAD;EAAgB;YAAY;EAAY,CAAA,GAG7C,MAAS,UAET,kBAAC,GAAD;EACE,GAAI;EACE;EACG;EACC;EACC;EACF;EACT,CAAA,GAKJ,kBAAC,OAAD;EAAgB;YAAhB,CACE,kBAAC,GAAD;GACE,GAAI;GACE;GACG;GACC;GACD;GACT,WAAW;GACX,CAAA,EACF,kBAAC,OAAD;GAAK,WAAW;aAAmB;GAAY,CAAA,CAC3C"}
|
|
1
|
+
{"version":3,"file":"ResponsiveRecordList.js","names":[],"sources":["../../../../src/components/data-table/ResponsiveRecordList.tsx"],"sourcesContent":["import { useEffect, useState, type JSX, type ReactNode } from 'react';\n\nimport {\n DataTable,\n type DataTableColumn,\n type DataTableDensity,\n type DataTableProps,\n} from './DataTable.js';\nimport * as styles from './ResponsiveRecordList.css.js';\nimport { cx } from '../../theme/tools.js';\n\nconst CARDS_MEDIA_QUERY = '(max-width: 767px)';\n\nexport type ResponsiveRecordListMode = 'table' | 'cards' | 'auto';\nexport type ResponsiveRecordListDensity = DataTableDensity;\n\nexport type ResponsiveRecordListColumn<Row> = DataTableColumn<Row> & {\n priority?: 'primary' | 'important' | 'secondary' | 'debug';\n mobileRole?:\n | 'title'\n | 'subtitle'\n | 'meta'\n | 'badge'\n | 'status'\n | 'action'\n | 'hidden';\n};\n\nexport type ResponsiveRecordListProps<Row> = Omit<\n DataTableProps<Row>,\n 'columns'\n> & {\n columns: readonly ResponsiveRecordListColumn<Row>[];\n mode?: ResponsiveRecordListMode;\n density?: ResponsiveRecordListDensity;\n renderAction?: (row: Row) => ReactNode;\n};\n\nconst renderCellText = <Row,>(\n column: ResponsiveRecordListColumn<Row> | null,\n row: Row,\n): ReactNode => {\n if (column == null) {\n return null;\n }\n return column.cell(row);\n};\n\nconst findColumn = <Row,>(\n columns: readonly ResponsiveRecordListColumn<Row>[],\n role: ResponsiveRecordListColumn<Row>['mobileRole'],\n): ResponsiveRecordListColumn<Row> | null => {\n return (\n columns.find((column) => {\n return column.mobileRole === role;\n }) ?? null\n );\n};\n\nconst isMetaColumn = <Row,>(\n column: ResponsiveRecordListColumn<Row>,\n): boolean => {\n if (column.mobileRole === 'hidden') {\n return false;\n }\n if (column.mobileRole === 'meta') {\n return true;\n }\n if (column.mobileRole != null) {\n return false;\n }\n return column.priority === 'important' || column.priority === 'secondary';\n};\n\nconst useIsCardsViewport = (): boolean => {\n const [matches, setMatches] = useState(() => {\n if (typeof window === 'undefined') {\n return false;\n }\n return window.matchMedia(CARDS_MEDIA_QUERY).matches;\n });\n\n useEffect(() => {\n if (typeof window === 'undefined') {\n return () => {};\n }\n const mediaQuery = window.matchMedia(CARDS_MEDIA_QUERY);\n const handleChange = () => {\n setMatches(mediaQuery.matches);\n };\n\n handleChange();\n mediaQuery.addEventListener('change', handleChange);\n\n return () => {\n mediaQuery.removeEventListener('change', handleChange);\n };\n }, []);\n\n return matches;\n};\n\nexport const ResponsiveRecordList = <Row,>({\n columns,\n rows,\n getRowId,\n mode = 'auto',\n density = 'compact',\n renderAction,\n className,\n bodyScrollMode,\n ...tableProps\n}: ResponsiveRecordListProps<Row>): JSX.Element => {\n const hasContainedBodyScroll = bodyScrollMode === 'contained';\n const isCardsViewport = useIsCardsViewport();\n let containedRootClassName: string | null = null;\n let cardsViewportClassName: string | undefined;\n let containedCardsOnlyClassName: string | null = null;\n if (hasContainedBodyScroll) {\n containedRootClassName = styles.containedRoot;\n cardsViewportClassName = styles.cardsViewport;\n containedCardsOnlyClassName = styles.cardsViewport;\n }\n const titleColumn =\n findColumn(columns, 'title') ??\n columns.find((column) => {\n return column.isPrimary === true || column.priority === 'primary';\n }) ??\n columns[0] ??\n null;\n const subtitleColumn = findColumn(columns, 'subtitle');\n const badgeColumns = columns.filter((column) => {\n return column.mobileRole === 'badge' || column.mobileRole === 'status';\n });\n const metaColumns = columns.filter((column) => {\n return (\n column !== titleColumn &&\n column !== subtitleColumn &&\n isMetaColumn(column)\n );\n });\n\n let cards: JSX.Element = <>{tableProps.emptyState ?? null}</>;\n if (rows.length > 0) {\n cards = (\n <div className={styles.cards}>\n {rows.map((row, index) => {\n const rowId = getRowId(row, index);\n const title = renderCellText(titleColumn, row);\n const subtitle = renderCellText(subtitleColumn, row);\n const action = renderAction?.(row);\n let subtitleNode: JSX.Element | null = null;\n if (subtitle != null && subtitle !== '') {\n subtitleNode = (\n <div className={styles.cardSubtitle}>{subtitle}</div>\n );\n }\n let actionNode: JSX.Element | null = null;\n if (action != null) {\n actionNode = <div className={styles.cardActions}>{action}</div>;\n }\n let badgeNode: JSX.Element | null = null;\n if (badgeColumns.length > 0) {\n badgeNode = (\n <div className={styles.cardBadges}>\n {badgeColumns.map((column) => {\n return <span key={column.id}>{column.cell(row)}</span>;\n })}\n </div>\n );\n }\n let metaNode: JSX.Element | null = null;\n if (metaColumns.length > 0) {\n metaNode = (\n <dl className={styles.cardMetaGrid}>\n {metaColumns.map((column) => {\n return (\n <div key={column.id} className={styles.cardMetaItem}>\n <dt className={styles.cardMetaLabel}>{column.header}</dt>\n <dd className={styles.cardMetaValue}>\n {column.cell(row)}\n </dd>\n </div>\n );\n })}\n </dl>\n );\n }\n\n return (\n <article key={rowId} className={styles.card({ density })}>\n <div className={styles.cardHeader}>\n <div className={styles.cardTitleGroup}>\n <div className={styles.cardTitle}>{title}</div>\n {subtitleNode}\n </div>\n {actionNode}\n </div>\n {badgeNode}\n {metaNode}\n </article>\n );\n })}\n </div>\n );\n }\n\n if (mode === 'cards') {\n return (\n <div className={cx(className, containedRootClassName)}>\n <div className={cardsViewportClassName}>\n {cards}\n {tableProps.bodyFooterNode}\n </div>\n </div>\n );\n }\n\n if (mode === 'table') {\n return (\n <DataTable\n {...tableProps}\n rows={rows}\n columns={columns}\n getRowId={getRowId}\n className={className}\n density={density}\n bodyScrollMode={bodyScrollMode}\n bodyFooterNode={tableProps.bodyFooterNode}\n />\n );\n }\n\n let tableBodyFooterNode = tableProps.bodyFooterNode;\n let cardsBodyFooterNode: ReactNode = null;\n if (isCardsViewport) {\n tableBodyFooterNode = null;\n cardsBodyFooterNode = tableProps.bodyFooterNode;\n }\n\n return (\n <div className={cx(className, containedRootClassName)}>\n <DataTable\n {...tableProps}\n rows={rows}\n columns={columns}\n getRowId={getRowId}\n density={density}\n className={styles.tableOnly}\n bodyScrollMode={bodyScrollMode}\n bodyFooterNode={tableBodyFooterNode}\n />\n <div className={cx(styles.cardsOnly, containedCardsOnlyClassName)}>\n {cards}\n {cardsBodyFooterNode}\n </div>\n </div>\n );\n};\n\nexport default ResponsiveRecordList;\n"],"mappings":"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"}
|