@aquera/nile-elements 1.3.5-beta-1.0 → 1.3.6-beta-1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/demo/index.css +3 -0
- package/demo/index.html +128 -6
- package/demo/variables.css +0 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +300 -231
- package/dist/nile-date-picker/nile-date-picker.cjs.js +1 -1
- package/dist/nile-date-picker/nile-date-picker.cjs.js.map +1 -1
- package/dist/nile-date-picker/nile-date-picker.esm.js +1 -1
- package/dist/nile-floating-panel/anchor-manager.cjs.js +2 -0
- package/dist/nile-floating-panel/anchor-manager.cjs.js.map +1 -0
- package/dist/nile-floating-panel/anchor-manager.esm.js +1 -0
- package/dist/nile-floating-panel/content-manager.cjs.js +2 -0
- package/dist/nile-floating-panel/content-manager.cjs.js.map +1 -0
- package/dist/nile-floating-panel/content-manager.esm.js +1 -0
- package/dist/nile-floating-panel/event-manager.cjs.js +2 -0
- package/dist/nile-floating-panel/event-manager.cjs.js.map +1 -0
- package/dist/nile-floating-panel/event-manager.esm.js +1 -0
- package/dist/nile-floating-panel/index.cjs.js +2 -0
- package/dist/nile-floating-panel/index.esm.js +1 -0
- package/dist/nile-floating-panel/nile-floating-panel.cjs.js +2 -0
- package/dist/nile-floating-panel/nile-floating-panel.cjs.js.map +1 -0
- package/dist/nile-floating-panel/nile-floating-panel.css.cjs.js +2 -0
- package/dist/nile-floating-panel/nile-floating-panel.css.cjs.js.map +1 -0
- package/dist/nile-floating-panel/nile-floating-panel.css.esm.js +37 -0
- package/dist/nile-floating-panel/nile-floating-panel.esm.js +1 -0
- package/dist/nile-floating-panel/position-manager.cjs.js +2 -0
- package/dist/nile-floating-panel/position-manager.cjs.js.map +1 -0
- package/dist/nile-floating-panel/position-manager.esm.js +1 -0
- package/dist/nile-floating-panel/style-manager.cjs.js +2 -0
- package/dist/nile-floating-panel/style-manager.cjs.js.map +1 -0
- package/dist/nile-floating-panel/style-manager.esm.js +1 -0
- package/dist/nile-floating-panel/types.cjs.js +2 -0
- package/dist/nile-floating-panel/types.cjs.js.map +1 -0
- package/dist/nile-floating-panel/types.esm.js +1 -0
- package/dist/nile-grid/nile-grid-body/nile-grid-body.css.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-body/nile-grid-body.css.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-body/nile-grid-body.css.esm.js +1 -1
- package/dist/nile-grid/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-cell-item/nile-grid-cell-item.css.esm.js +11 -10
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.css.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.css.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-head-item/nile-grid-head-item.css.esm.js +14 -13
- package/dist/nile-grid/nile-grid-row/nile-grid-row.css.cjs.js +1 -1
- package/dist/nile-grid/nile-grid-row/nile-grid-row.css.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid-row/nile-grid-row.css.esm.js +4 -3
- package/dist/nile-grid/nile-grid.css.cjs.js +1 -1
- package/dist/nile-grid/nile-grid.css.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid.css.esm.js +7 -7
- package/dist/nile-grid/nile-grid.width.cjs.js +1 -1
- package/dist/nile-grid/nile-grid.width.cjs.js.map +1 -1
- package/dist/nile-grid/nile-grid.width.esm.js +1 -1
- package/dist/nile-icon/index.cjs.js +1 -1
- package/dist/nile-icon/index.cjs.js.map +1 -1
- package/dist/nile-icon/index.esm.js +4 -4
- package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.cjs.js.map +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.css.cjs.js.map +1 -1
- package/dist/nile-inline-sidebar/nile-inline-sidebar.css.esm.js +10 -2
- package/dist/nile-inline-sidebar/nile-inline-sidebar.esm.js +10 -6
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js +1 -1
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.cjs.js.map +1 -1
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.css.cjs.js +1 -1
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.css.cjs.js.map +1 -1
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.css.esm.js +8 -2
- package/dist/nile-inline-sidebar-item/nile-inline-sidebar-item.esm.js +2 -2
- package/dist/nile-side-bar/nile-side-bar.cjs.js +1 -1
- package/dist/nile-side-bar/nile-side-bar.cjs.js.map +1 -1
- package/dist/nile-side-bar/nile-side-bar.css.cjs.js +1 -1
- package/dist/nile-side-bar/nile-side-bar.css.cjs.js.map +1 -1
- package/dist/nile-side-bar/nile-side-bar.css.esm.js +24 -29
- package/dist/nile-side-bar/nile-side-bar.esm.js +7 -1
- package/dist/nile-side-bar-expand/nile-side-bar-expand.cjs.js +1 -1
- package/dist/nile-side-bar-expand/nile-side-bar-expand.cjs.js.map +1 -1
- package/dist/nile-side-bar-expand/nile-side-bar-expand.css.cjs.js +1 -1
- package/dist/nile-side-bar-expand/nile-side-bar-expand.css.cjs.js.map +1 -1
- package/dist/nile-side-bar-expand/nile-side-bar-expand.css.esm.js +3 -5
- package/dist/nile-side-bar-expand/nile-side-bar-expand.esm.js +8 -8
- package/dist/nile-side-bar-footer/nile-side-bar-footer.css.cjs.js +1 -1
- package/dist/nile-side-bar-footer/nile-side-bar-footer.css.cjs.js.map +1 -1
- package/dist/nile-side-bar-footer/nile-side-bar-footer.css.esm.js +5 -3
- package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.cjs.js +1 -1
- package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.cjs.js.map +1 -1
- package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.cjs.js +1 -1
- package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.cjs.js.map +1 -1
- package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.css.esm.js +17 -5
- package/dist/nile-side-bar-footer-item/nile-side-bar-footer-item.esm.js +3 -3
- package/dist/nile-side-bar-group/nile-side-bar-group.css.cjs.js +1 -1
- package/dist/nile-side-bar-group/nile-side-bar-group.css.cjs.js.map +1 -1
- package/dist/nile-side-bar-group/nile-side-bar-group.css.esm.js +4 -7
- package/dist/nile-side-bar-group-item/nile-side-bar-group-item.css.cjs.js +1 -1
- package/dist/nile-side-bar-group-item/nile-side-bar-group-item.css.cjs.js.map +1 -1
- package/dist/nile-side-bar-group-item/nile-side-bar-group-item.css.esm.js +58 -56
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js.map +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.esm.js +1 -1
- package/dist/nile-virtual-select/portal-manager.cjs.js +1 -1
- package/dist/nile-virtual-select/portal-manager.cjs.js.map +1 -1
- package/dist/nile-virtual-select/portal-manager.esm.js +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/nile-date-picker/nile-date-picker.js +3 -1
- package/dist/src/nile-date-picker/nile-date-picker.js.map +1 -1
- package/dist/src/nile-floating-panel/anchor-manager.d.ts +6 -0
- package/dist/src/nile-floating-panel/anchor-manager.js +27 -0
- package/dist/src/nile-floating-panel/anchor-manager.js.map +1 -0
- package/dist/src/nile-floating-panel/content-manager.d.ts +5 -0
- package/dist/src/nile-floating-panel/content-manager.js +44 -0
- package/dist/src/nile-floating-panel/content-manager.js.map +1 -0
- package/dist/src/nile-floating-panel/event-manager.d.ts +14 -0
- package/dist/src/nile-floating-panel/event-manager.js +52 -0
- package/dist/src/nile-floating-panel/event-manager.js.map +1 -0
- package/dist/src/nile-floating-panel/index.d.ts +1 -0
- package/dist/src/nile-floating-panel/index.js +2 -0
- package/dist/src/nile-floating-panel/index.js.map +1 -0
- package/dist/src/{nile-grid-body/nile-grid-body.css.d.ts → nile-floating-panel/nile-floating-panel.css.d.ts} +1 -3
- package/dist/src/nile-floating-panel/nile-floating-panel.css.js +47 -0
- package/dist/src/nile-floating-panel/nile-floating-panel.css.js.map +1 -0
- package/dist/src/nile-floating-panel/nile-floating-panel.d.ts +43 -0
- package/dist/src/nile-floating-panel/nile-floating-panel.js +238 -0
- package/dist/src/nile-floating-panel/nile-floating-panel.js.map +1 -0
- package/dist/src/nile-floating-panel/position-manager.d.ts +17 -0
- package/dist/src/nile-floating-panel/position-manager.js +72 -0
- package/dist/src/nile-floating-panel/position-manager.js.map +1 -0
- package/dist/src/nile-floating-panel/style-manager.d.ts +9 -0
- package/dist/src/nile-floating-panel/style-manager.js +44 -0
- package/dist/src/nile-floating-panel/style-manager.js.map +1 -0
- package/dist/src/nile-floating-panel/types.d.ts +11 -0
- package/dist/src/nile-floating-panel/types.js +2 -0
- package/dist/src/nile-floating-panel/types.js.map +1 -0
- package/dist/src/nile-grid/nile-grid-body/nile-grid-body.css.js +1 -1
- package/dist/src/nile-grid/nile-grid-body/nile-grid-body.css.js.map +1 -1
- package/dist/src/nile-grid/nile-grid-cell-item/nile-grid-cell-item.css.js +9 -8
- package/dist/src/nile-grid/nile-grid-cell-item/nile-grid-cell-item.css.js.map +1 -1
- package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.css.js +12 -11
- package/dist/src/nile-grid/nile-grid-head-item/nile-grid-head-item.css.js.map +1 -1
- package/dist/src/nile-grid/nile-grid-row/nile-grid-row.css.js +4 -3
- package/dist/src/nile-grid/nile-grid-row/nile-grid-row.css.js.map +1 -1
- package/dist/src/nile-grid/nile-grid.css.js +5 -5
- package/dist/src/nile-grid/nile-grid.css.js.map +1 -1
- package/dist/src/nile-grid/nile-grid.layout.js +3 -3
- package/dist/src/nile-grid/nile-grid.layout.js.map +1 -1
- package/dist/src/nile-icon/index.js +1 -1
- package/dist/src/nile-icon/index.js.map +1 -1
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js +10 -2
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.css.js.map +1 -1
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js +10 -3
- package/dist/src/nile-inline-sidebar/nile-inline-sidebar.js.map +1 -1
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.js +6 -0
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.js.map +1 -1
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.d.ts +1 -0
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js +4 -0
- package/dist/src/nile-inline-sidebar-item/nile-inline-sidebar-item.js.map +1 -1
- package/dist/src/nile-side-bar/nile-side-bar.css.js +22 -27
- package/dist/src/nile-side-bar/nile-side-bar.css.js.map +1 -1
- package/dist/src/nile-side-bar/nile-side-bar.js +7 -1
- package/dist/src/nile-side-bar/nile-side-bar.js.map +1 -1
- package/dist/src/nile-side-bar-expand/nile-side-bar-expand.css.js +3 -5
- package/dist/src/nile-side-bar-expand/nile-side-bar-expand.css.js.map +1 -1
- package/dist/src/nile-side-bar-expand/nile-side-bar-expand.d.ts +2 -0
- package/dist/src/nile-side-bar-expand/nile-side-bar-expand.js +12 -4
- package/dist/src/nile-side-bar-expand/nile-side-bar-expand.js.map +1 -1
- package/dist/src/nile-side-bar-footer/nile-side-bar-footer.css.js +3 -1
- package/dist/src/nile-side-bar-footer/nile-side-bar-footer.css.js.map +1 -1
- package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.js +15 -3
- package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.js.map +1 -1
- package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.d.ts +1 -0
- package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.js +8 -1
- package/dist/src/nile-side-bar-footer-item/nile-side-bar-footer-item.js.map +1 -1
- package/dist/src/nile-side-bar-group/nile-side-bar-group.css.js +2 -5
- package/dist/src/nile-side-bar-group/nile-side-bar-group.css.js.map +1 -1
- package/dist/src/nile-side-bar-group-item/nile-side-bar-group-item.css.js +48 -46
- package/dist/src/nile-side-bar-group-item/nile-side-bar-group-item.css.js.map +1 -1
- package/dist/src/nile-virtual-select/nile-virtual-select.js +1 -1
- package/dist/src/nile-virtual-select/nile-virtual-select.js.map +1 -1
- package/dist/src/nile-virtual-select/portal-manager.js +1 -1
- package/dist/src/nile-virtual-select/portal-manager.js.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/index.ts +2 -1
- package/src/nile-date-picker/nile-date-picker.ts +3 -1
- package/src/nile-floating-panel/anchor-manager.ts +33 -0
- package/src/nile-floating-panel/content-manager.ts +54 -0
- package/src/nile-floating-panel/event-manager.ts +74 -0
- package/src/nile-floating-panel/index.ts +2 -0
- package/src/nile-floating-panel/nile-floating-panel.css.ts +50 -0
- package/src/nile-floating-panel/nile-floating-panel.ts +291 -0
- package/src/nile-floating-panel/position-manager.ts +102 -0
- package/src/nile-floating-panel/style-manager.ts +54 -0
- package/src/nile-floating-panel/types.ts +15 -0
- package/src/nile-grid/nile-grid-body/nile-grid-body.css.ts +1 -1
- package/src/nile-grid/nile-grid-cell-item/nile-grid-cell-item.css.ts +9 -8
- package/src/nile-grid/nile-grid-head-item/nile-grid-head-item.css.ts +12 -11
- package/src/nile-grid/nile-grid-row/nile-grid-row.css.ts +4 -3
- package/src/nile-grid/nile-grid.css.ts +5 -5
- package/src/nile-grid/nile-grid.layout.ts +3 -3
- package/src/nile-icon/index.ts +1 -1
- package/src/nile-inline-sidebar/nile-inline-sidebar.css.ts +10 -2
- package/src/nile-inline-sidebar/nile-inline-sidebar.ts +16 -5
- package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.css.ts +6 -0
- package/src/nile-inline-sidebar-item/nile-inline-sidebar-item.ts +1 -0
- package/src/nile-side-bar/nile-side-bar.css.ts +22 -27
- package/src/nile-side-bar/nile-side-bar.ts +8 -1
- package/src/nile-side-bar-expand/nile-side-bar-expand.css.ts +3 -5
- package/src/nile-side-bar-expand/nile-side-bar-expand.ts +6 -4
- package/src/nile-side-bar-footer/nile-side-bar-footer.css.ts +3 -1
- package/src/nile-side-bar-footer-item/nile-side-bar-footer-item.css.ts +15 -3
- package/src/nile-side-bar-footer-item/nile-side-bar-footer-item.ts +9 -1
- package/src/nile-side-bar-group/nile-side-bar-group.css.ts +2 -5
- package/src/nile-side-bar-group-item/nile-side-bar-group-item.css.ts +49 -47
- package/src/nile-virtual-select/nile-virtual-select.ts +1 -1
- package/src/nile-virtual-select/portal-manager.ts +1 -1
- package/vscode-html-custom-data.json +77 -3
- package/dist/axe.min-140df6c2.cjs.js +0 -2
- package/dist/axe.min-140df6c2.cjs.js.map +0 -1
- package/dist/axe.min-591c52c3.esm.js +0 -1
- package/dist/css-tag-3c4464f5.esm.js +0 -6
- package/dist/css-tag-b6258454.cjs.js +0 -6
- package/dist/css-tag-b6258454.cjs.js.map +0 -1
- package/dist/fixture-ba65262e.esm.js +0 -569
- package/dist/fixture-d1470b58.cjs.js +0 -395
- package/dist/fixture-d1470b58.cjs.js.map +0 -1
- package/dist/fixture-e3592de4.cjs.js +0 -395
- package/dist/fixture-e3592de4.cjs.js.map +0 -1
- package/dist/flow-3e83b6f4.esm.js +0 -17
- package/dist/flow-ca47f938.cjs.js +0 -14
- package/dist/flow-ca47f938.cjs.js.map +0 -1
- package/dist/lit-html-21bc9a48.cjs.js +0 -6
- package/dist/lit-html-21bc9a48.cjs.js.map +0 -1
- package/dist/lit-html-82603fd0.esm.js +0 -6
- package/dist/nile-grid-body/index.cjs.js +0 -2
- package/dist/nile-grid-body/index.esm.js +0 -1
- package/dist/nile-grid-body/nile-grid-body.cjs.js +0 -2
- package/dist/nile-grid-body/nile-grid-body.cjs.js.map +0 -1
- package/dist/nile-grid-body/nile-grid-body.css.cjs.js +0 -2
- package/dist/nile-grid-body/nile-grid-body.css.cjs.js.map +0 -1
- package/dist/nile-grid-body/nile-grid-body.css.esm.js +0 -10
- package/dist/nile-grid-body/nile-grid-body.esm.js +0 -5
- package/dist/nile-grid-cell-item/index.cjs.js +0 -2
- package/dist/nile-grid-cell-item/index.cjs.js.map +0 -1
- package/dist/nile-grid-cell-item/index.esm.js +0 -1
- package/dist/nile-grid-cell-item/nile-grid-cell-item.cjs.js +0 -2
- package/dist/nile-grid-cell-item/nile-grid-cell-item.cjs.js.map +0 -1
- package/dist/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js +0 -2
- package/dist/nile-grid-cell-item/nile-grid-cell-item.css.cjs.js.map +0 -1
- package/dist/nile-grid-cell-item/nile-grid-cell-item.css.esm.js +0 -35
- package/dist/nile-grid-cell-item/nile-grid-cell-item.esm.js +0 -12
- package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js +0 -2
- package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.cjs.js.map +0 -1
- package/dist/nile-grid-cell-item/nile-grid-cell-item.utils.esm.js +0 -1
- package/dist/nile-grid-head/index.cjs.js +0 -2
- package/dist/nile-grid-head/index.cjs.js.map +0 -1
- package/dist/nile-grid-head/index.esm.js +0 -1
- package/dist/nile-grid-head/nile-grid-head.cjs.js +0 -2
- package/dist/nile-grid-head/nile-grid-head.cjs.js.map +0 -1
- package/dist/nile-grid-head/nile-grid-head.css.cjs.js +0 -2
- package/dist/nile-grid-head/nile-grid-head.css.cjs.js.map +0 -1
- package/dist/nile-grid-head/nile-grid-head.css.esm.js +0 -7
- package/dist/nile-grid-head/nile-grid-head.esm.js +0 -5
- package/dist/nile-grid-head-item/index.cjs.js +0 -2
- package/dist/nile-grid-head-item/index.cjs.js.map +0 -1
- package/dist/nile-grid-head-item/index.esm.js +0 -1
- package/dist/nile-grid-head-item/nile-grid-head-item.cjs.js +0 -2
- package/dist/nile-grid-head-item/nile-grid-head-item.cjs.js.map +0 -1
- package/dist/nile-grid-head-item/nile-grid-head-item.css.cjs.js +0 -2
- package/dist/nile-grid-head-item/nile-grid-head-item.css.cjs.js.map +0 -1
- package/dist/nile-grid-head-item/nile-grid-head-item.css.esm.js +0 -34
- package/dist/nile-grid-head-item/nile-grid-head-item.esm.js +0 -12
- package/dist/nile-grid-head-item/nile-grid-head-item.utils.cjs.js +0 -2
- package/dist/nile-grid-head-item/nile-grid-head-item.utils.cjs.js.map +0 -1
- package/dist/nile-grid-head-item/nile-grid-head-item.utils.esm.js +0 -1
- package/dist/nile-grid-row/index.cjs.js +0 -2
- package/dist/nile-grid-row/index.cjs.js.map +0 -1
- package/dist/nile-grid-row/index.esm.js +0 -1
- package/dist/nile-grid-row/nile-grid-row.cjs.js +0 -2
- package/dist/nile-grid-row/nile-grid-row.cjs.js.map +0 -1
- package/dist/nile-grid-row/nile-grid-row.css.cjs.js +0 -2
- package/dist/nile-grid-row/nile-grid-row.css.cjs.js.map +0 -1
- package/dist/nile-grid-row/nile-grid-row.css.esm.js +0 -15
- package/dist/nile-grid-row/nile-grid-row.esm.js +0 -7
- package/dist/nile-inlinesidebar/index.cjs.js +0 -2
- package/dist/nile-inlinesidebar/index.cjs.js.map +0 -1
- package/dist/nile-inlinesidebar/index.esm.js +0 -1
- package/dist/nile-inlinesidebar/nile-inlinesidebar.cjs.js +0 -2
- package/dist/nile-inlinesidebar/nile-inlinesidebar.cjs.js.map +0 -1
- package/dist/nile-inlinesidebar/nile-inlinesidebar.css.cjs.js +0 -2
- package/dist/nile-inlinesidebar/nile-inlinesidebar.css.cjs.js.map +0 -1
- package/dist/nile-inlinesidebar/nile-inlinesidebar.css.esm.js +0 -62
- package/dist/nile-inlinesidebar/nile-inlinesidebar.esm.js +0 -46
- package/dist/nile-inlinesidebar-group/index.cjs.js +0 -2
- package/dist/nile-inlinesidebar-group/index.cjs.js.map +0 -1
- package/dist/nile-inlinesidebar-group/index.esm.js +0 -1
- package/dist/nile-inlinesidebar-group/nile-inlinesidebar-group.cjs.js +0 -2
- package/dist/nile-inlinesidebar-group/nile-inlinesidebar-group.cjs.js.map +0 -1
- package/dist/nile-inlinesidebar-group/nile-inlinesidebar-group.css.cjs.js +0 -2
- package/dist/nile-inlinesidebar-group/nile-inlinesidebar-group.css.cjs.js.map +0 -1
- package/dist/nile-inlinesidebar-group/nile-inlinesidebar-group.css.esm.js +0 -33
- package/dist/nile-inlinesidebar-group/nile-inlinesidebar-group.esm.js +0 -12
- package/dist/nile-inlinesidebar-item/index.cjs.js +0 -2
- package/dist/nile-inlinesidebar-item/index.cjs.js.map +0 -1
- package/dist/nile-inlinesidebar-item/index.esm.js +0 -1
- package/dist/nile-inlinesidebar-item/nile-inlinesidebar-item.cjs.js +0 -2
- package/dist/nile-inlinesidebar-item/nile-inlinesidebar-item.cjs.js.map +0 -1
- package/dist/nile-inlinesidebar-item/nile-inlinesidebar-item.css.cjs.js +0 -2
- package/dist/nile-inlinesidebar-item/nile-inlinesidebar-item.css.cjs.js.map +0 -1
- package/dist/nile-inlinesidebar-item/nile-inlinesidebar-item.css.esm.js +0 -37
- package/dist/nile-inlinesidebar-item/nile-inlinesidebar-item.esm.js +0 -5
- package/dist/nile-rich-text-editor/utils.cjs.js +0 -2
- package/dist/nile-rich-text-editor/utils.cjs.js.map +0 -1
- package/dist/nile-rich-text-editor/utils.esm.js +0 -1
- package/dist/nile-side-bar-content/index.cjs.js +0 -2
- package/dist/nile-side-bar-content/index.cjs.js.map +0 -1
- package/dist/nile-side-bar-content/index.esm.js +0 -1
- package/dist/nile-side-bar-content/nile-side-bar-content.cjs.js +0 -2
- package/dist/nile-side-bar-content/nile-side-bar-content.cjs.js.map +0 -1
- package/dist/nile-side-bar-content/nile-side-bar-content.css.cjs.js +0 -2
- package/dist/nile-side-bar-content/nile-side-bar-content.css.cjs.js.map +0 -1
- package/dist/nile-side-bar-content/nile-side-bar-content.css.esm.js +0 -5
- package/dist/nile-side-bar-content/nile-side-bar-content.esm.js +0 -3
- package/dist/nile-side-bar-footer-icon/index.cjs.js +0 -2
- package/dist/nile-side-bar-footer-icon/index.cjs.js.map +0 -1
- package/dist/nile-side-bar-footer-icon/index.esm.js +0 -1
- package/dist/nile-side-bar-footer-icon/nile-side-bar-footer-icon.cjs.js +0 -2
- package/dist/nile-side-bar-footer-icon/nile-side-bar-footer-icon.cjs.js.map +0 -1
- package/dist/nile-side-bar-footer-icon/nile-side-bar-footer-icon.css.cjs.js +0 -2
- package/dist/nile-side-bar-footer-icon/nile-side-bar-footer-icon.css.cjs.js.map +0 -1
- package/dist/nile-side-bar-footer-icon/nile-side-bar-footer-icon.css.esm.js +0 -5
- package/dist/nile-side-bar-footer-icon/nile-side-bar-footer-icon.esm.js +0 -3
- package/dist/nile-side-bar-group-item-content/index.cjs.js +0 -2
- package/dist/nile-side-bar-group-item-content/index.cjs.js.map +0 -1
- package/dist/nile-side-bar-group-item-content/index.esm.js +0 -1
- package/dist/nile-side-bar-group-item-content/nile-side-bar-group-item-content.cjs.js +0 -2
- package/dist/nile-side-bar-group-item-content/nile-side-bar-group-item-content.cjs.js.map +0 -1
- package/dist/nile-side-bar-group-item-content/nile-side-bar-group-item-content.css.cjs.js +0 -2
- package/dist/nile-side-bar-group-item-content/nile-side-bar-group-item-content.css.cjs.js.map +0 -1
- package/dist/nile-side-bar-group-item-content/nile-side-bar-group-item-content.css.esm.js +0 -5
- package/dist/nile-side-bar-group-item-content/nile-side-bar-group-item-content.esm.js +0 -3
- package/dist/nile-sidebar/index.cjs.js +0 -2
- package/dist/nile-sidebar/index.cjs.js.map +0 -1
- package/dist/nile-sidebar/index.esm.js +0 -75
- package/dist/nile-sidebar-menu/index.cjs.js +0 -2
- package/dist/nile-sidebar-menu/index.cjs.js.map +0 -1
- package/dist/nile-sidebar-menu/index.esm.js +0 -1
- package/dist/nile-sidebar-menu/nile-sidebar-menu.cjs.js +0 -2
- package/dist/nile-sidebar-menu/nile-sidebar-menu.cjs.js.map +0 -1
- package/dist/nile-sidebar-menu/nile-sidebar-menu.css.cjs.js +0 -2
- package/dist/nile-sidebar-menu/nile-sidebar-menu.css.cjs.js.map +0 -1
- package/dist/nile-sidebar-menu/nile-sidebar-menu.css.esm.js +0 -38
- package/dist/nile-sidebar-menu/nile-sidebar-menu.esm.js +0 -10
- package/dist/nile-sidebar-menu-items/index.cjs.js +0 -2
- package/dist/nile-sidebar-menu-items/index.cjs.js.map +0 -1
- package/dist/nile-sidebar-menu-items/index.esm.js +0 -1
- package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.cjs.js +0 -2
- package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.cjs.js.map +0 -1
- package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.css.cjs.js +0 -2
- package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.css.cjs.js.map +0 -1
- package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.css.esm.js +0 -36
- package/dist/nile-sidebar-menu-items/nile-sidebar-menu-items.esm.js +0 -15
- package/dist/nile-sidebar-wrapper/index.cjs.js +0 -2
- package/dist/nile-sidebar-wrapper/index.cjs.js.map +0 -1
- package/dist/nile-sidebar-wrapper/index.esm.js +0 -1
- package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.cjs.js +0 -2
- package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.cjs.js.map +0 -1
- package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.css.cjs.js +0 -2
- package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.css.cjs.js.map +0 -1
- package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.css.esm.js +0 -105
- package/dist/nile-sidebar-wrapper/nile-sidebar-wrapper.esm.js +0 -16
- package/dist/scopedElementsWrapper-abad3c53.cjs.js +0 -2
- package/dist/scopedElementsWrapper-abad3c53.cjs.js.map +0 -1
- package/dist/scopedElementsWrapper-c815042c.cjs.js +0 -2
- package/dist/scopedElementsWrapper-c815042c.cjs.js.map +0 -1
- package/dist/scopedElementsWrapper-ef11f868.esm.js +0 -1
- package/dist/sinon-esm-283dcc9b.cjs.js +0 -2
- package/dist/sinon-esm-283dcc9b.cjs.js.map +0 -1
- package/dist/sinon-esm-abe9b0ec.esm.js +0 -1
- package/dist/src/nile-grid/nile-grid.types.d.ts +0 -3
- package/dist/src/nile-grid/nile-grid.types.js +0 -2
- package/dist/src/nile-grid/nile-grid.types.js.map +0 -1
- package/dist/src/nile-grid-body/index.d.ts +0 -1
- package/dist/src/nile-grid-body/index.js +0 -2
- package/dist/src/nile-grid-body/index.js.map +0 -1
- package/dist/src/nile-grid-body/nile-grid-body.css.js +0 -22
- package/dist/src/nile-grid-body/nile-grid-body.css.js.map +0 -1
- package/dist/src/nile-grid-body/nile-grid-body.d.ts +0 -29
- package/dist/src/nile-grid-body/nile-grid-body.js +0 -43
- package/dist/src/nile-grid-body/nile-grid-body.js.map +0 -1
- package/dist/src/nile-grid-cell-item/index.d.ts +0 -1
- package/dist/src/nile-grid-cell-item/index.js +0 -2
- package/dist/src/nile-grid-cell-item/index.js.map +0 -1
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.d.ts +0 -12
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.js +0 -47
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.css.js.map +0 -1
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.d.ts +0 -36
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.js +0 -93
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.js.map +0 -1
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.d.ts +0 -10
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.js +0 -34
- package/dist/src/nile-grid-cell-item/nile-grid-cell-item.utils.js.map +0 -1
- package/dist/src/nile-grid-head/index.d.ts +0 -1
- package/dist/src/nile-grid-head/index.js +0 -2
- package/dist/src/nile-grid-head/index.js.map +0 -1
- package/dist/src/nile-grid-head/nile-grid-head.css.d.ts +0 -12
- package/dist/src/nile-grid-head/nile-grid-head.css.js +0 -19
- package/dist/src/nile-grid-head/nile-grid-head.css.js.map +0 -1
- package/dist/src/nile-grid-head/nile-grid-head.d.ts +0 -28
- package/dist/src/nile-grid-head/nile-grid-head.js +0 -41
- package/dist/src/nile-grid-head/nile-grid-head.js.map +0 -1
- package/dist/src/nile-grid-head-item/index.d.ts +0 -1
- package/dist/src/nile-grid-head-item/index.js +0 -2
- package/dist/src/nile-grid-head-item/index.js.map +0 -1
- package/dist/src/nile-grid-head-item/nile-grid-head-item.css.d.ts +0 -12
- package/dist/src/nile-grid-head-item/nile-grid-head-item.css.js +0 -46
- package/dist/src/nile-grid-head-item/nile-grid-head-item.css.js.map +0 -1
- package/dist/src/nile-grid-head-item/nile-grid-head-item.d.ts +0 -37
- package/dist/src/nile-grid-head-item/nile-grid-head-item.js +0 -100
- package/dist/src/nile-grid-head-item/nile-grid-head-item.js.map +0 -1
- package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.d.ts +0 -10
- package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.js +0 -34
- package/dist/src/nile-grid-head-item/nile-grid-head-item.utils.js.map +0 -1
- package/dist/src/nile-grid-row/index.d.ts +0 -1
- package/dist/src/nile-grid-row/index.js +0 -2
- package/dist/src/nile-grid-row/index.js.map +0 -1
- package/dist/src/nile-grid-row/nile-grid-row.css.d.ts +0 -12
- package/dist/src/nile-grid-row/nile-grid-row.css.js +0 -27
- package/dist/src/nile-grid-row/nile-grid-row.css.js.map +0 -1
- package/dist/src/nile-grid-row/nile-grid-row.d.ts +0 -29
- package/dist/src/nile-grid-row/nile-grid-row.js +0 -45
- package/dist/src/nile-grid-row/nile-grid-row.js.map +0 -1
- package/dist/src/nile-inlinesidebar/index.d.ts +0 -1
- package/dist/src/nile-inlinesidebar/index.js +0 -2
- package/dist/src/nile-inlinesidebar/index.js.map +0 -1
- package/dist/src/nile-inlinesidebar/nile-inlinesidebar.css.d.ts +0 -1
- package/dist/src/nile-inlinesidebar/nile-inlinesidebar.css.js +0 -64
- package/dist/src/nile-inlinesidebar/nile-inlinesidebar.css.js.map +0 -1
- package/dist/src/nile-inlinesidebar/nile-inlinesidebar.d.ts +0 -28
- package/dist/src/nile-inlinesidebar/nile-inlinesidebar.js +0 -97
- package/dist/src/nile-inlinesidebar/nile-inlinesidebar.js.map +0 -1
- package/dist/src/nile-inlinesidebar-group/index.d.ts +0 -1
- package/dist/src/nile-inlinesidebar-group/index.js +0 -2
- package/dist/src/nile-inlinesidebar-group/index.js.map +0 -1
- package/dist/src/nile-inlinesidebar-group/nile-inlinesidebar-group.css.d.ts +0 -3
- package/dist/src/nile-inlinesidebar-group/nile-inlinesidebar-group.css.js +0 -36
- package/dist/src/nile-inlinesidebar-group/nile-inlinesidebar-group.css.js.map +0 -1
- package/dist/src/nile-inlinesidebar-group/nile-inlinesidebar-group.d.ts +0 -34
- package/dist/src/nile-inlinesidebar-group/nile-inlinesidebar-group.js +0 -67
- package/dist/src/nile-inlinesidebar-group/nile-inlinesidebar-group.js.map +0 -1
- package/dist/src/nile-inlinesidebar-item/index.d.ts +0 -1
- package/dist/src/nile-inlinesidebar-item/index.js +0 -2
- package/dist/src/nile-inlinesidebar-item/index.js.map +0 -1
- package/dist/src/nile-inlinesidebar-item/nile-inlinesidebar-item.css.d.ts +0 -4
- package/dist/src/nile-inlinesidebar-item/nile-inlinesidebar-item.css.js +0 -42
- package/dist/src/nile-inlinesidebar-item/nile-inlinesidebar-item.css.js.map +0 -1
- package/dist/src/nile-inlinesidebar-item/nile-inlinesidebar-item.d.ts +0 -37
- package/dist/src/nile-inlinesidebar-item/nile-inlinesidebar-item.js +0 -68
- package/dist/src/nile-inlinesidebar-item/nile-inlinesidebar-item.js.map +0 -1
- package/dist/src/nile-nile-side-bar-expand/index.d.ts +0 -1
- package/dist/src/nile-nile-side-bar-expand/index.js +0 -2
- package/dist/src/nile-nile-side-bar-expand/index.js.map +0 -1
- package/dist/src/nile-nile-side-bar-expand/nile-nile-side-bar-expand.css.d.ts +0 -12
- package/dist/src/nile-nile-side-bar-expand/nile-nile-side-bar-expand.css.js +0 -17
- package/dist/src/nile-nile-side-bar-expand/nile-nile-side-bar-expand.css.js.map +0 -1
- package/dist/src/nile-nile-side-bar-expand/nile-nile-side-bar-expand.d.ts +0 -32
- package/dist/src/nile-nile-side-bar-expand/nile-nile-side-bar-expand.js +0 -43
- package/dist/src/nile-nile-side-bar-expand/nile-nile-side-bar-expand.js.map +0 -1
- package/dist/src/nile-rich-text-editor/utils.d.ts +0 -13
- package/dist/src/nile-rich-text-editor/utils.js +0 -538
- package/dist/src/nile-rich-text-editor/utils.js.map +0 -1
- package/dist/src/nile-side-bar-content/index.d.ts +0 -1
- package/dist/src/nile-side-bar-content/index.js +0 -2
- package/dist/src/nile-side-bar-content/index.js.map +0 -1
- package/dist/src/nile-side-bar-content/nile-side-bar-content.css.d.ts +0 -12
- package/dist/src/nile-side-bar-content/nile-side-bar-content.css.js +0 -17
- package/dist/src/nile-side-bar-content/nile-side-bar-content.css.js.map +0 -1
- package/dist/src/nile-side-bar-content/nile-side-bar-content.d.ts +0 -32
- package/dist/src/nile-side-bar-content/nile-side-bar-content.js +0 -43
- package/dist/src/nile-side-bar-content/nile-side-bar-content.js.map +0 -1
- package/dist/src/nile-side-bar-footer-icon/index.d.ts +0 -1
- package/dist/src/nile-side-bar-footer-icon/index.js +0 -2
- package/dist/src/nile-side-bar-footer-icon/index.js.map +0 -1
- package/dist/src/nile-side-bar-footer-icon/nile-side-bar-footer-icon.css.d.ts +0 -12
- package/dist/src/nile-side-bar-footer-icon/nile-side-bar-footer-icon.css.js +0 -17
- package/dist/src/nile-side-bar-footer-icon/nile-side-bar-footer-icon.css.js.map +0 -1
- package/dist/src/nile-side-bar-footer-icon/nile-side-bar-footer-icon.d.ts +0 -32
- package/dist/src/nile-side-bar-footer-icon/nile-side-bar-footer-icon.js +0 -43
- package/dist/src/nile-side-bar-footer-icon/nile-side-bar-footer-icon.js.map +0 -1
- package/dist/src/nile-side-bar-group-item-content/index.d.ts +0 -1
- package/dist/src/nile-side-bar-group-item-content/index.js +0 -2
- package/dist/src/nile-side-bar-group-item-content/index.js.map +0 -1
- package/dist/src/nile-side-bar-group-item-content/nile-side-bar-group-item-content.css.d.ts +0 -12
- package/dist/src/nile-side-bar-group-item-content/nile-side-bar-group-item-content.css.js +0 -17
- package/dist/src/nile-side-bar-group-item-content/nile-side-bar-group-item-content.css.js.map +0 -1
- package/dist/src/nile-side-bar-group-item-content/nile-side-bar-group-item-content.d.ts +0 -32
- package/dist/src/nile-side-bar-group-item-content/nile-side-bar-group-item-content.js +0 -43
- package/dist/src/nile-side-bar-group-item-content/nile-side-bar-group-item-content.js.map +0 -1
- package/dist/src/nile-sidebar/index.d.ts +0 -28
- package/dist/src/nile-sidebar/index.js +0 -116
- package/dist/src/nile-sidebar/index.js.map +0 -1
- package/dist/src/nile-sidebar/nile-sidebar.css.d.ts +0 -12
- package/dist/src/nile-sidebar/nile-sidebar.css.js +0 -17
- package/dist/src/nile-sidebar/nile-sidebar.css.js.map +0 -1
- package/dist/src/nile-sidebar/nile-sidebar.d.ts +0 -32
- package/dist/src/nile-sidebar/nile-sidebar.js +0 -43
- package/dist/src/nile-sidebar/nile-sidebar.js.map +0 -1
- package/dist/src/nile-sidebar-menu/index.d.ts +0 -1
- package/dist/src/nile-sidebar-menu/index.js +0 -2
- package/dist/src/nile-sidebar-menu/index.js.map +0 -1
- package/dist/src/nile-sidebar-menu/nile-sidebar-menu.css.d.ts +0 -12
- package/dist/src/nile-sidebar-menu/nile-sidebar-menu.css.js +0 -47
- package/dist/src/nile-sidebar-menu/nile-sidebar-menu.css.js.map +0 -1
- package/dist/src/nile-sidebar-menu/nile-sidebar-menu.d.ts +0 -37
- package/dist/src/nile-sidebar-menu/nile-sidebar-menu.js +0 -84
- package/dist/src/nile-sidebar-menu/nile-sidebar-menu.js.map +0 -1
- package/dist/src/nile-sidebar-menu-items/index.d.ts +0 -1
- package/dist/src/nile-sidebar-menu-items/index.js +0 -2
- package/dist/src/nile-sidebar-menu-items/index.js.map +0 -1
- package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.css.d.ts +0 -12
- package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.css.js +0 -45
- package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.css.js.map +0 -1
- package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.d.ts +0 -35
- package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.js +0 -78
- package/dist/src/nile-sidebar-menu-items/nile-sidebar-menu-items.js.map +0 -1
- package/dist/src/nile-sidebar-wrapper/index.d.ts +0 -1
- package/dist/src/nile-sidebar-wrapper/index.js +0 -2
- package/dist/src/nile-sidebar-wrapper/index.js.map +0 -1
- package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.css.d.ts +0 -12
- package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.css.js +0 -114
- package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.css.js.map +0 -1
- package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.d.ts +0 -35
- package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.js +0 -89
- package/dist/src/nile-sidebar-wrapper/nile-sidebar-wrapper.js.map +0 -1
- package/dist/virtualize-73f68d08.esm.js +0 -22
- package/dist/virtualize-eb33a9a0.cjs.js +0 -18
- package/dist/virtualize-eb33a9a0.cjs.js.map +0 -1
- /package/dist/{nile-grid-body → nile-floating-panel}/index.cjs.js.map +0 -0
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "Webcomponent nile-elements following open-wc recommendations",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"author": "nile-elements",
|
|
6
|
-
"version": "1.3.
|
|
6
|
+
"version": "1.3.6-beta-1.0",
|
|
7
7
|
"main": "dist/src/index.js",
|
|
8
8
|
"type": "module",
|
|
9
9
|
"module": "dist/src/index.js",
|
package/src/index.ts
CHANGED
|
@@ -72,6 +72,7 @@ export { NileTitle } from './nile-title';
|
|
|
72
72
|
export { NileSectionMessage } from './nile-section-message';
|
|
73
73
|
export { NileToolbar } from './nile-toolbar';
|
|
74
74
|
export { NileInlineEdit } from './nile-inline-edit';
|
|
75
|
+
export { NileFloatingPanel } from './nile-floating-panel';
|
|
75
76
|
export { NileTable } from './nile-table';
|
|
76
77
|
export { NileFilterChip } from './nile-filter-chip';
|
|
77
78
|
export {NilePagination } from './nile-pagination';
|
|
@@ -107,4 +108,4 @@ export { NileSideBarActionMenu } from './nile-side-bar-action-menu';
|
|
|
107
108
|
export { NileInlineSidebarGroup } from './nile-inline-sidebar-group';
|
|
108
109
|
export { NileInlineSidebar } from './nile-inline-sidebar';
|
|
109
110
|
export { NileInlineSidebarItem } from './nile-inline-sidebar-item';
|
|
110
|
-
export { NileliteTooltip } from './nile-lite-tooltip';
|
|
111
|
+
export { NileliteTooltip } from './nile-lite-tooltip';
|
|
@@ -196,7 +196,9 @@ export class NileDatePicker extends NileElement {
|
|
|
196
196
|
this.emit('nile-changed', event.detail);
|
|
197
197
|
this.emit('nile-change', event.detail);
|
|
198
198
|
|
|
199
|
-
this.dropdown
|
|
199
|
+
if (this.dropdown) {
|
|
200
|
+
this.dropdown.hide();
|
|
201
|
+
}
|
|
200
202
|
}
|
|
201
203
|
|
|
202
204
|
connectedCallback() {
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { FloatingPanelAnchor } from './types';
|
|
2
|
+
|
|
3
|
+
export class AnchorManager {
|
|
4
|
+
static resolveAnchor(anchor: FloatingPanelAnchor): HTMLElement {
|
|
5
|
+
if (anchor instanceof HTMLElement) {
|
|
6
|
+
return anchor;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
if (typeof anchor === 'string') {
|
|
10
|
+
const element = document.querySelector(anchor) as HTMLElement;
|
|
11
|
+
if (element) {
|
|
12
|
+
return element;
|
|
13
|
+
}
|
|
14
|
+
const byId = document.getElementById(anchor);
|
|
15
|
+
if (byId) {
|
|
16
|
+
return byId;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return document.body;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
static appendToAnchor(anchor: HTMLElement, panelContainer: HTMLElement): void {
|
|
24
|
+
anchor.appendChild(panelContainer);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
static removeFromAnchor(panelContainer: HTMLElement): void {
|
|
28
|
+
if (panelContainer.parentNode) {
|
|
29
|
+
panelContainer.parentNode.removeChild(panelContainer);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { FloatingPanelContentConfig } from './types';
|
|
2
|
+
|
|
3
|
+
export class ContentManager {
|
|
4
|
+
static updatePanelContent(
|
|
5
|
+
panelContainer: HTMLElement,
|
|
6
|
+
slot: HTMLSlotElement | null,
|
|
7
|
+
dataContent: string
|
|
8
|
+
): void {
|
|
9
|
+
panelContainer.innerHTML = '';
|
|
10
|
+
|
|
11
|
+
const slotContent = slot ? slot.assignedNodes({ flatten: true }) : [];
|
|
12
|
+
|
|
13
|
+
const hasSlotContent = slotContent.length > 0 &&
|
|
14
|
+
slotContent.some(node => {
|
|
15
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
16
|
+
return node.textContent?.trim() !== '';
|
|
17
|
+
}
|
|
18
|
+
return node instanceof HTMLElement;
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
if (hasSlotContent) {
|
|
22
|
+
slotContent.forEach(node => {
|
|
23
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
24
|
+
const textNode = document.createTextNode(node.textContent || '');
|
|
25
|
+
panelContainer.appendChild(textNode);
|
|
26
|
+
} else if (node instanceof HTMLElement) {
|
|
27
|
+
panelContainer.appendChild(node.cloneNode(true));
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
} else if (dataContent) {
|
|
31
|
+
panelContainer.textContent = dataContent;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
static hasSlotContent(slot: HTMLSlotElement | null): boolean {
|
|
36
|
+
if (!slot) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const slotContent = slot.assignedNodes({ flatten: true });
|
|
41
|
+
return slotContent.length > 0 &&
|
|
42
|
+
slotContent.some(node => {
|
|
43
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
44
|
+
return node.textContent?.trim() !== '';
|
|
45
|
+
}
|
|
46
|
+
return node instanceof HTMLElement;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
static getSlotContent(slot: HTMLSlotElement | null): Node[] {
|
|
51
|
+
return slot ? slot.assignedNodes({ flatten: true }) : [];
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
export class EventManager {
|
|
2
|
+
private component: HTMLElement;
|
|
3
|
+
private panelContainer: HTMLElement | null = null;
|
|
4
|
+
private closeOnOutsideClick: boolean = true;
|
|
5
|
+
private isOpen: boolean = false;
|
|
6
|
+
private boundHandleDocumentClick: ((event: MouseEvent) => void) | null = null;
|
|
7
|
+
private onCloseCallback: (() => void) | null = null;
|
|
8
|
+
|
|
9
|
+
constructor(component: HTMLElement) {
|
|
10
|
+
this.component = component;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
setupOutsideClickHandler(
|
|
14
|
+
panelContainer: HTMLElement,
|
|
15
|
+
closeOnOutsideClick: boolean,
|
|
16
|
+
isOpen: boolean,
|
|
17
|
+
onClose: () => void
|
|
18
|
+
): void {
|
|
19
|
+
this.panelContainer = panelContainer;
|
|
20
|
+
this.closeOnOutsideClick = closeOnOutsideClick;
|
|
21
|
+
this.isOpen = isOpen;
|
|
22
|
+
this.onCloseCallback = onClose;
|
|
23
|
+
|
|
24
|
+
if (!this.closeOnOutsideClick || this.boundHandleDocumentClick) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
this.boundHandleDocumentClick = this.handleDocumentClick.bind(this);
|
|
29
|
+
document.addEventListener('mousedown', this.boundHandleDocumentClick, true);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
updateOutsideClickHandler(
|
|
33
|
+
panelContainer: HTMLElement | null,
|
|
34
|
+
closeOnOutsideClick: boolean,
|
|
35
|
+
isOpen: boolean
|
|
36
|
+
): void {
|
|
37
|
+
this.panelContainer = panelContainer;
|
|
38
|
+
this.closeOnOutsideClick = closeOnOutsideClick;
|
|
39
|
+
this.isOpen = isOpen;
|
|
40
|
+
|
|
41
|
+
this.cleanupOutsideClickHandler();
|
|
42
|
+
|
|
43
|
+
if (isOpen && closeOnOutsideClick && panelContainer) {
|
|
44
|
+
this.boundHandleDocumentClick = this.handleDocumentClick.bind(this);
|
|
45
|
+
document.addEventListener('mousedown', this.boundHandleDocumentClick, true);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
cleanupOutsideClickHandler(): void {
|
|
50
|
+
if (this.boundHandleDocumentClick) {
|
|
51
|
+
document.removeEventListener('mousedown', this.boundHandleDocumentClick, true);
|
|
52
|
+
this.boundHandleDocumentClick = null;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
private handleDocumentClick(event: MouseEvent): void {
|
|
57
|
+
if (!this.isOpen || !this.closeOnOutsideClick || !this.panelContainer || !this.onCloseCallback) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const target = event.target as Node;
|
|
62
|
+
|
|
63
|
+
if (!this.panelContainer.contains(target) && !this.component.contains(target)) {
|
|
64
|
+
this.onCloseCallback();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
destroy(): void {
|
|
69
|
+
this.cleanupOutsideClickHandler();
|
|
70
|
+
this.panelContainer = null;
|
|
71
|
+
this.onCloseCallback = null;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Aquera Inc 2025
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the BSD-3-Clause license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { css } from 'lit';
|
|
9
|
+
export const styles = css`
|
|
10
|
+
:host {
|
|
11
|
+
box-sizing: border-box;
|
|
12
|
+
-webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing));
|
|
13
|
+
-moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing));
|
|
14
|
+
text-rendering: var(--nile-text-rendering, var(--ng-text-rendering));
|
|
15
|
+
display: inline-block;
|
|
16
|
+
position: relative;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
:host([hidden]) {
|
|
20
|
+
display: none;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
slot {
|
|
24
|
+
display: none;
|
|
25
|
+
}
|
|
26
|
+
`;
|
|
27
|
+
|
|
28
|
+
export const panelContainerStyles = css`
|
|
29
|
+
.nile-floating-panel__container {
|
|
30
|
+
position: fixed;
|
|
31
|
+
box-sizing: border-box;
|
|
32
|
+
z-index: 800;
|
|
33
|
+
background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
|
|
34
|
+
border: solid 1px var(--nile-colors-dark-200, var(--ng-colors-border-secondary-alt));
|
|
35
|
+
border-radius: var(--nile-radius-sm, var(--ng-radius-md));
|
|
36
|
+
box-shadow: var(--nile-box-shadow-2, var(--ng-shadow-lg));
|
|
37
|
+
padding: var(--nile-spacing-xl, var(--ng-spacing-xl));
|
|
38
|
+
min-width: var(--nile-width-352px, var(--ng-width-80));
|
|
39
|
+
color: var(--nile-colors-dark-900, var(--ng-colors-text-primary-900));
|
|
40
|
+
font-family: var(--nile-font-family-serif, var(--ng-font-family-body));
|
|
41
|
+
font-size: var(--nile-type-scale-4, var(--ng-font-size-text-sm));
|
|
42
|
+
font-style: normal;
|
|
43
|
+
font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-semibold));
|
|
44
|
+
line-height: var(--nile-line-height-xsmall, var(--ng-line-height-text-sm));
|
|
45
|
+
letter-spacing: var(--nile-spacing-one-by-five-x, var(--ng-spacing-none));
|
|
46
|
+
}
|
|
47
|
+
`;
|
|
48
|
+
|
|
49
|
+
export default [styles];
|
|
50
|
+
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
import {
|
|
2
|
+
LitElement,
|
|
3
|
+
html,
|
|
4
|
+
CSSResultArray,
|
|
5
|
+
TemplateResult,
|
|
6
|
+
PropertyValues,
|
|
7
|
+
} from 'lit';
|
|
8
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
9
|
+
import { styles } from './nile-floating-panel.css';
|
|
10
|
+
import NileElement from '../internal/nile-element';
|
|
11
|
+
import { PositionManager } from './position-manager';
|
|
12
|
+
import { StyleManager } from './style-manager';
|
|
13
|
+
import { ContentManager } from './content-manager';
|
|
14
|
+
import { AnchorManager } from './anchor-manager';
|
|
15
|
+
import { EventManager } from './event-manager';
|
|
16
|
+
import { VisibilityManager } from '../utilities/visibility-manager';
|
|
17
|
+
import type { FloatingPanelPosition, FloatingPanelAnchor } from './types';
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Nile floating panel component.
|
|
21
|
+
*
|
|
22
|
+
* @tag nile-floating-panel
|
|
23
|
+
* @event nile-show - Emitted when the panel opens.
|
|
24
|
+
* @event nile-hide - Emitted when the panel closes.
|
|
25
|
+
*/
|
|
26
|
+
@customElement('nile-floating-panel')
|
|
27
|
+
export class NileFloatingPanel extends NileElement {
|
|
28
|
+
public static get styles(): CSSResultArray {
|
|
29
|
+
return [styles];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@property() anchor: FloatingPanelAnchor = null;
|
|
33
|
+
|
|
34
|
+
@property() position: FloatingPanelPosition = 'bottom';
|
|
35
|
+
|
|
36
|
+
@property({ type: Boolean, reflect: true, attribute: true }) open = false;
|
|
37
|
+
|
|
38
|
+
@property({
|
|
39
|
+
type: Boolean,
|
|
40
|
+
reflect: true,
|
|
41
|
+
attribute: 'close-on-outside-click',
|
|
42
|
+
converter: {
|
|
43
|
+
fromAttribute: (value: string | null) => (!value || value === 'false' ? false : true),
|
|
44
|
+
toAttribute: (value: boolean) => (value ? 'true' : 'false'),
|
|
45
|
+
},
|
|
46
|
+
})
|
|
47
|
+
closeOnOutsideClick = true;
|
|
48
|
+
|
|
49
|
+
@property({ type: Boolean, reflect: true }) enableVisibilityEffect = true;
|
|
50
|
+
|
|
51
|
+
@property({ type: Boolean, reflect: true }) enableTabClose = false;
|
|
52
|
+
|
|
53
|
+
private panelContainer: HTMLElement | null = null;
|
|
54
|
+
private positionManager: PositionManager | null = null;
|
|
55
|
+
private styleManager: StyleManager = new StyleManager();
|
|
56
|
+
private eventManager: EventManager = new EventManager(this);
|
|
57
|
+
private visibilityManager?: VisibilityManager;
|
|
58
|
+
|
|
59
|
+
connectedCallback() {
|
|
60
|
+
super.connectedCallback();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
disconnectedCallback() {
|
|
64
|
+
super.disconnectedCallback();
|
|
65
|
+
this.cleanupPanel();
|
|
66
|
+
this.visibilityManager?.cleanup();
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
updated(changedProperties: Map<string, unknown>) {
|
|
70
|
+
super.updated(changedProperties);
|
|
71
|
+
|
|
72
|
+
if (changedProperties.has('open')) {
|
|
73
|
+
if (this.open) {
|
|
74
|
+
this.emit('nile-show');
|
|
75
|
+
this.setupPanel();
|
|
76
|
+
this.visibilityManager?.setup();
|
|
77
|
+
} else {
|
|
78
|
+
this.emit('nile-hide');
|
|
79
|
+
this.visibilityManager?.cleanup();
|
|
80
|
+
this.cleanupPanel();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
if (
|
|
85
|
+
changedProperties.has('closeOnOutsideClick') &&
|
|
86
|
+
this.open &&
|
|
87
|
+
this.panelContainer
|
|
88
|
+
) {
|
|
89
|
+
this.eventManager.updateOutsideClickHandler(
|
|
90
|
+
this.panelContainer,
|
|
91
|
+
this.closeOnOutsideClick,
|
|
92
|
+
this.open
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (changedProperties.has('anchor') && this.open) {
|
|
97
|
+
this.cleanupPanel();
|
|
98
|
+
this.setupPanel();
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if (
|
|
102
|
+
(changedProperties.has('enableVisibilityEffect') ||
|
|
103
|
+
changedProperties.has('enableTabClose')) &&
|
|
104
|
+
this.open
|
|
105
|
+
) {
|
|
106
|
+
this.setupVisibilityManager();
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (
|
|
110
|
+
changedProperties.has('position') &&
|
|
111
|
+
this.open &&
|
|
112
|
+
this.positionManager
|
|
113
|
+
) {
|
|
114
|
+
this.positionManager.updatePosition(this.position);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if (changedProperties.has('open') && this.open && this.panelContainer) {
|
|
118
|
+
this.updatePanelContent();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
private setupPanel() {
|
|
123
|
+
if (this.panelContainer) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
const componentStyles = (this.constructor as typeof NileFloatingPanel)
|
|
128
|
+
.styles;
|
|
129
|
+
if (componentStyles) {
|
|
130
|
+
this.styleManager.injectStyles(componentStyles);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
this.panelContainer = document.createElement('div');
|
|
134
|
+
this.panelContainer.setAttribute('part', 'panel');
|
|
135
|
+
this.panelContainer.className = 'nile-floating-panel__container';
|
|
136
|
+
|
|
137
|
+
this.updatePanelContent();
|
|
138
|
+
|
|
139
|
+
const anchorElement = AnchorManager.resolveAnchor(this.anchor);
|
|
140
|
+
AnchorManager.appendToAnchor(anchorElement, this.panelContainer);
|
|
141
|
+
|
|
142
|
+
requestAnimationFrame(() => {
|
|
143
|
+
this.setupPositionManager();
|
|
144
|
+
this.setupEventHandlers();
|
|
145
|
+
this.setupVisibilityManager();
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
private setupEventHandlers() {
|
|
150
|
+
if (!this.panelContainer) {
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
this.eventManager.setupOutsideClickHandler(
|
|
155
|
+
this.panelContainer,
|
|
156
|
+
this.closeOnOutsideClick,
|
|
157
|
+
this.open,
|
|
158
|
+
() => {
|
|
159
|
+
this.open = false;
|
|
160
|
+
}
|
|
161
|
+
);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
private setupPositionManager() {
|
|
165
|
+
if (!this.panelContainer) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
const referenceElement = this.findTriggerElement() || this;
|
|
170
|
+
this.positionManager = new PositionManager(
|
|
171
|
+
referenceElement,
|
|
172
|
+
this.panelContainer,
|
|
173
|
+
this.position
|
|
174
|
+
);
|
|
175
|
+
|
|
176
|
+
this.positionManager.reposition();
|
|
177
|
+
this.positionManager.setupAutoUpdate();
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
private findTriggerElement(): HTMLElement | null {
|
|
181
|
+
// Try to find the next sibling element as the trigger
|
|
182
|
+
let nextSibling = this.nextElementSibling;
|
|
183
|
+
while (nextSibling) {
|
|
184
|
+
if (nextSibling instanceof HTMLElement) {
|
|
185
|
+
return nextSibling;
|
|
186
|
+
}
|
|
187
|
+
nextSibling = nextSibling.nextElementSibling;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// Try to find the previous sibling element
|
|
191
|
+
let previousSibling = this.previousElementSibling;
|
|
192
|
+
while (previousSibling) {
|
|
193
|
+
if (previousSibling instanceof HTMLElement) {
|
|
194
|
+
return previousSibling;
|
|
195
|
+
}
|
|
196
|
+
previousSibling = previousSibling.previousElementSibling;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
return null;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
private setupVisibilityManager(): void {
|
|
203
|
+
if (!this.enableVisibilityEffect) {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
const triggerElement = this.findTriggerElement();
|
|
208
|
+
|
|
209
|
+
// Cleanup existing visibility manager if it exists
|
|
210
|
+
if (this.visibilityManager) {
|
|
211
|
+
this.visibilityManager.cleanup();
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
this.visibilityManager = new VisibilityManager({
|
|
215
|
+
host: this,
|
|
216
|
+
target: triggerElement || null,
|
|
217
|
+
enableVisibilityEffect: this.enableVisibilityEffect,
|
|
218
|
+
enableTabClose: this.enableTabClose,
|
|
219
|
+
isOpen: () => this.open,
|
|
220
|
+
onAnchorOutOfView: () => {
|
|
221
|
+
this.open = false;
|
|
222
|
+
this.emit('nile-visibility-change', {
|
|
223
|
+
visible: false,
|
|
224
|
+
reason: 'anchor-out-of-view',
|
|
225
|
+
});
|
|
226
|
+
},
|
|
227
|
+
onDocumentHidden: () => {
|
|
228
|
+
this.open = false;
|
|
229
|
+
this.emit('nile-visibility-change', {
|
|
230
|
+
visible: false,
|
|
231
|
+
reason: 'document-hidden',
|
|
232
|
+
});
|
|
233
|
+
},
|
|
234
|
+
emit: (event, detail) => this.emit(`nile-${event}`, detail),
|
|
235
|
+
});
|
|
236
|
+
|
|
237
|
+
if (this.open) {
|
|
238
|
+
this.visibilityManager.setup();
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
private updatePanelContent() {
|
|
243
|
+
if (!this.panelContainer) {
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
const slot = this.shadowRoot?.querySelector('slot') || null;
|
|
248
|
+
ContentManager.updatePanelContent(this.panelContainer, slot, '');
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
private reposition() {
|
|
252
|
+
if (this.positionManager) {
|
|
253
|
+
this.positionManager.reposition();
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
private cleanupPanel() {
|
|
258
|
+
this.eventManager.destroy();
|
|
259
|
+
|
|
260
|
+
if (this.positionManager) {
|
|
261
|
+
this.positionManager.destroy();
|
|
262
|
+
this.positionManager = null;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
if (this.panelContainer) {
|
|
266
|
+
AnchorManager.removeFromAnchor(this.panelContainer);
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
this.panelContainer = null;
|
|
270
|
+
|
|
271
|
+
this.styleManager.cleanupStyles();
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
public render(): TemplateResult {
|
|
275
|
+
return html` <slot @slotchange=${this.handleSlotChange}></slot> `;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
private handleSlotChange = () => {
|
|
279
|
+
if (this.open && this.panelContainer) {
|
|
280
|
+
this.updatePanelContent();
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
export default NileFloatingPanel;
|
|
286
|
+
|
|
287
|
+
declare global {
|
|
288
|
+
interface HTMLElementTagNameMap {
|
|
289
|
+
'nile-floating-panel': NileFloatingPanel;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { autoUpdate, computePosition, offset, shift, flip } from '@floating-ui/dom';
|
|
2
|
+
import type { Placement } from '@floating-ui/dom';
|
|
3
|
+
import type { FloatingPanelPosition } from './types';
|
|
4
|
+
|
|
5
|
+
export class PositionManager {
|
|
6
|
+
private cleanup: (() => void) | null = null;
|
|
7
|
+
private referenceElement: HTMLElement;
|
|
8
|
+
private floatingElement: HTMLElement;
|
|
9
|
+
private position: FloatingPanelPosition;
|
|
10
|
+
private offsetValue: number;
|
|
11
|
+
private shiftPadding: number;
|
|
12
|
+
|
|
13
|
+
constructor(
|
|
14
|
+
referenceElement: HTMLElement,
|
|
15
|
+
floatingElement: HTMLElement,
|
|
16
|
+
position: FloatingPanelPosition,
|
|
17
|
+
offsetValue: number = 8,
|
|
18
|
+
shiftPadding: number = 8
|
|
19
|
+
) {
|
|
20
|
+
this.referenceElement = referenceElement;
|
|
21
|
+
this.floatingElement = floatingElement;
|
|
22
|
+
this.position = position;
|
|
23
|
+
this.offsetValue = offsetValue;
|
|
24
|
+
this.shiftPadding = shiftPadding;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
setupAutoUpdate(): void {
|
|
28
|
+
this.cleanupAutoUpdate();
|
|
29
|
+
|
|
30
|
+
this.cleanup = autoUpdate(
|
|
31
|
+
this.referenceElement,
|
|
32
|
+
this.floatingElement,
|
|
33
|
+
() => {
|
|
34
|
+
this.reposition();
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
ancestorScroll: true,
|
|
38
|
+
ancestorResize: true,
|
|
39
|
+
elementResize: true,
|
|
40
|
+
layoutShift: true,
|
|
41
|
+
animationFrame: false,
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
cleanupAutoUpdate(): void {
|
|
47
|
+
if (this.cleanup) {
|
|
48
|
+
this.cleanup();
|
|
49
|
+
this.cleanup = null;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
reposition(): void {
|
|
54
|
+
const placement: Placement = this.position;
|
|
55
|
+
|
|
56
|
+
computePosition(this.referenceElement, this.floatingElement, {
|
|
57
|
+
placement,
|
|
58
|
+
strategy: 'fixed',
|
|
59
|
+
middleware: [
|
|
60
|
+
offset(this.offsetValue),
|
|
61
|
+
flip(),
|
|
62
|
+
shift({
|
|
63
|
+
padding: this.shiftPadding,
|
|
64
|
+
}),
|
|
65
|
+
],
|
|
66
|
+
}).then(({ x, y, placement: finalPlacement }) => {
|
|
67
|
+
let adjustedY = y;
|
|
68
|
+
|
|
69
|
+
if (finalPlacement.startsWith('bottom')) {
|
|
70
|
+
adjustedY = y + 10;
|
|
71
|
+
} else if (finalPlacement.startsWith('top')) {
|
|
72
|
+
adjustedY = y - 20;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
Object.assign(this.floatingElement.style, {
|
|
76
|
+
left: `${x}px`,
|
|
77
|
+
top: `${adjustedY}px`,
|
|
78
|
+
position: 'fixed',
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
updatePosition(position: FloatingPanelPosition): void {
|
|
84
|
+
this.position = position;
|
|
85
|
+
this.reposition();
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
updateOffset(offset: number): void {
|
|
89
|
+
this.offsetValue = offset;
|
|
90
|
+
this.reposition();
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
updateShiftPadding(padding: number): void {
|
|
94
|
+
this.shiftPadding = padding;
|
|
95
|
+
this.reposition();
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
destroy(): void {
|
|
99
|
+
this.cleanupAutoUpdate();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { CSSResultArray } from 'lit';
|
|
2
|
+
import { panelContainerStyles } from './nile-floating-panel.css';
|
|
3
|
+
|
|
4
|
+
export class StyleManager {
|
|
5
|
+
private injectedStyleId: string | null = null;
|
|
6
|
+
private static injectedStyleIds: Set<string> = new Set();
|
|
7
|
+
|
|
8
|
+
injectStyles(componentStyles: CSSResultArray): void {
|
|
9
|
+
const globalStyleId = 'nile-floating-panel-styles-global';
|
|
10
|
+
if (StyleManager.injectedStyleIds.has(globalStyleId)) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
if (this.injectedStyleId && document.getElementById(this.injectedStyleId)) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
this.injectedStyleId = globalStyleId;
|
|
19
|
+
StyleManager.injectedStyleIds.add(globalStyleId);
|
|
20
|
+
|
|
21
|
+
const cssText = this.extractCSSFromStyles(componentStyles);
|
|
22
|
+
|
|
23
|
+
const styleElement = document.createElement('style');
|
|
24
|
+
styleElement.id = globalStyleId;
|
|
25
|
+
styleElement.textContent = cssText;
|
|
26
|
+
document.head.appendChild(styleElement);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
private extractCSSFromStyles(styles: CSSResultArray): string {
|
|
30
|
+
const containerStyles = panelContainerStyles.cssText || '';
|
|
31
|
+
|
|
32
|
+
const componentStyles = styles
|
|
33
|
+
.map(style => {
|
|
34
|
+
if (typeof style === 'string') {
|
|
35
|
+
return style;
|
|
36
|
+
}
|
|
37
|
+
if (style && 'cssText' in style) {
|
|
38
|
+
return (style as any).cssText;
|
|
39
|
+
}
|
|
40
|
+
return '';
|
|
41
|
+
})
|
|
42
|
+
.join('\n');
|
|
43
|
+
|
|
44
|
+
return containerStyles + '\n' + componentStyles;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
cleanupStyles(): void {
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
getInjectedStyleId(): string | null {
|
|
51
|
+
return this.injectedStyleId;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|