@luzmo/analytics-components-kit 1.2.1 → 1.4.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.
Files changed (159) hide show
  1. package/README.md +8 -3
  2. package/angular/components/add-to-dashboard.ts +20 -6
  3. package/angular/components/data-fields-select.ts +5 -0
  4. package/angular/components/interactive-viz-item.ts +89 -24
  5. package/angular/components/item-grid-item-actions-menu.ts +5 -0
  6. package/angular/components/item-grid.ts +7 -0
  7. package/angular/components/item-option-color-picker.ts +28 -28
  8. package/angular/components/item-option-guidelines.ts +22 -1
  9. package/angular/components/item-option-multi-language-field.ts +7 -7
  10. package/angular/components/item-option-number-field.ts +14 -14
  11. package/angular/components/item-option-positions-number-field.ts +14 -14
  12. package/angular/components/item-option-radio-button-group.ts +7 -7
  13. package/angular/components/item-option-text-field.ts +7 -7
  14. package/angular/components/item-slot-picker-panel.ts +1 -1
  15. package/angular/components/item-slot-picker.ts +7 -7
  16. package/angular/esm/components/add-to-dashboard.d.ts +8 -4
  17. package/angular/esm/components/add-to-dashboard.js +23 -7
  18. package/angular/esm/components/data-fields-select.d.ts +2 -0
  19. package/angular/esm/components/data-fields-select.js +4 -0
  20. package/angular/esm/components/interactive-viz-item.d.ts +32 -11
  21. package/angular/esm/components/interactive-viz-item.js +99 -28
  22. package/angular/esm/components/item-grid-item-actions-menu.d.ts +2 -0
  23. package/angular/esm/components/item-grid-item-actions-menu.js +4 -0
  24. package/angular/esm/components/item-grid.d.ts +3 -1
  25. package/angular/esm/components/item-grid.js +9 -1
  26. package/angular/esm/components/item-option-color-picker.d.ts +10 -10
  27. package/angular/esm/components/item-option-color-picker.js +34 -34
  28. package/angular/esm/components/item-option-guidelines.d.ts +8 -2
  29. package/angular/esm/components/item-option-guidelines.js +26 -2
  30. package/angular/esm/components/item-option-multi-language-field.d.ts +3 -3
  31. package/angular/esm/components/item-option-multi-language-field.js +10 -10
  32. package/angular/esm/components/item-option-number-field.d.ts +5 -5
  33. package/angular/esm/components/item-option-number-field.js +18 -18
  34. package/angular/esm/components/item-option-positions-number-field.d.ts +5 -5
  35. package/angular/esm/components/item-option-positions-number-field.js +18 -18
  36. package/angular/esm/components/item-option-radio-button-group.d.ts +3 -3
  37. package/angular/esm/components/item-option-radio-button-group.js +10 -10
  38. package/angular/esm/components/item-option-text-field.d.ts +3 -3
  39. package/angular/esm/components/item-option-text-field.js +10 -10
  40. package/angular/esm/components/item-slot-picker-panel.d.ts +1 -1
  41. package/angular/esm/components/item-slot-picker-panel.js +1 -1
  42. package/angular/esm/components/item-slot-picker.d.ts +3 -3
  43. package/angular/esm/components/item-slot-picker.js +9 -9
  44. package/angular/package.json +2 -2
  45. package/components/add-to-dashboard/dashboard-actions.d.ts +2 -1
  46. package/components/add-to-dashboard/index.cjs +1 -1
  47. package/components/add-to-dashboard/index.js +1 -1
  48. package/components/{add-to-dashboard-NwsCPIlg.cjs → add-to-dashboard-BtzTZdjN.cjs} +1 -1
  49. package/components/{add-to-dashboard-NcVHlqrc.js → add-to-dashboard-Bu6S3qVz.js} +125 -120
  50. package/components/chart-helpers-BHxQbLBw.cjs +20 -0
  51. package/components/{chart-helpers-Dng_LGfq.js → chart-helpers-BKeMLhov.js} +53 -39
  52. package/components/filters/index.cjs +1 -1
  53. package/components/filters/index.js +1 -1
  54. package/components/{filters-CxIzuI5q.js → filters-DEpmh9Nj.js} +113 -102
  55. package/components/filters-LDXhe1Bp.cjs +187 -0
  56. package/components/index.cjs +1 -1
  57. package/components/index.js +6 -6
  58. package/components/interactive-viz-item/helpers/chart-helpers.d.ts +2 -1
  59. package/components/interactive-viz-item/index.cjs +1 -1
  60. package/components/interactive-viz-item/index.d.ts +1 -1
  61. package/components/interactive-viz-item/index.js +3 -3
  62. package/components/interactive-viz-item/interactive-viz-item.d.ts +47 -1
  63. package/components/interactive-viz-item/types.d.ts +4 -0
  64. package/components/interactive-viz-item-Cc3Ix95e.js +630 -0
  65. package/components/interactive-viz-item-SF12d97t.cjs +269 -0
  66. package/components/item-grid/item-grid.d.ts +1 -0
  67. package/components/item-slot-picker-panel/index.cjs +1 -1
  68. package/components/item-slot-picker-panel/index.js +1 -1
  69. package/components/item-slot-picker-panel/item-slot-picker-panel.d.ts +19 -1
  70. package/components/item-slot-picker-panel-Cw3UCK03.cjs +84 -0
  71. package/components/{item-slot-picker-panel-fJqEmxeD.js → item-slot-picker-panel-DprM9Rli.js} +64 -33
  72. package/custom-elements.json +3051 -2531
  73. package/grid-core/item-grid-base.d.ts +5 -4
  74. package/package.json +2 -2
  75. package/react/package.json +2 -2
  76. package/standalone/add-to-dashboard.js +40 -40
  77. package/standalone/chunks/{chart-helpers-DsIGsaDc.js → chart-helpers-DZsidiCl.js} +2 -2
  78. package/standalone/chunks/{choropleth-map-options.config-rUJsEJcm.js → choropleth-map-options.config-CDMjKnJD.js} +1 -1
  79. package/standalone/chunks/{color-range-utils-DxOtqAKB.js → color-range-utils-BVyHBRiq.js} +1 -1
  80. package/standalone/chunks/data-broker-DpSrH3IP.js +2 -0
  81. package/standalone/chunks/de-BkB0q1Eg.js +2 -0
  82. package/standalone/chunks/display-settings-binning-DhHlclWH.js +38 -0
  83. package/standalone/chunks/display-settings-datetime-C8xvOvi4.js +199 -0
  84. package/standalone/chunks/display-settings-grand-totals-CUpigDcs.js +26 -0
  85. package/standalone/chunks/display-settings-numeric-BLWF54Jx.js +172 -0
  86. package/standalone/chunks/display-settings-period-over-period-COd4tvUw.js +209 -0
  87. package/standalone/chunks/embed-Bv1ps-EM.js +260 -0
  88. package/standalone/chunks/en-DNsyAwgq.js +2 -0
  89. package/standalone/chunks/en-GB-Di3OzVdL.js +2 -0
  90. package/standalone/chunks/en-US-DNsyAwgq.js +2 -0
  91. package/standalone/chunks/es-Bo0jStZn.js +2 -0
  92. package/standalone/chunks/{filters-DKgJcQGP.js → filters-lhg_WVDK.js} +108 -108
  93. package/standalone/chunks/{formula-codemirror-BbyvNEVD.js → formula-codemirror-DZMzLE2I.js} +17 -17
  94. package/standalone/chunks/fr-Co_qVhhV.js +2 -0
  95. package/standalone/chunks/{heat-map-options.config-D93AeYFi.js → heat-map-options.config-DDQMD38W.js} +1 -1
  96. package/standalone/chunks/{heat-table-options.config-ZVML76FK.js → heat-table-options.config-B4K0Ygug.js} +1 -1
  97. package/standalone/chunks/{is-same-option-value-Di-A7Wmg.js → is-same-option-value-7kXNF4st.js} +1 -1
  98. package/standalone/chunks/item-option-action-button-group-Bl1HR1JK.js +35 -0
  99. package/standalone/chunks/item-option-base-DF24wTyv.js +38 -0
  100. package/standalone/chunks/item-option-color-palette-picker-MkIIn56p.js +22 -0
  101. package/standalone/chunks/item-option-color-picker-CxosMo_p.js +19 -0
  102. package/standalone/chunks/item-option-color-range-C7C70r4J.js +83 -0
  103. package/standalone/chunks/item-option-guidelines-iu8yWRzr.js +120 -0
  104. package/standalone/chunks/{item-option-multi-language-field-DPPpN2qg.js → item-option-multi-language-field-foanqCdr.js} +1 -1
  105. package/standalone/chunks/{item-option-number-field-CkqJjInE.js → item-option-number-field-ByVD4oq0.js} +1 -1
  106. package/standalone/chunks/item-option-panel-Bya-K7HH.js +316 -0
  107. package/standalone/chunks/{item-option-picker-BnwQPT9A.js → item-option-picker-CqNNVIML.js} +1 -1
  108. package/standalone/chunks/item-option-position-picker-BjCFVtDH.js +14 -0
  109. package/standalone/chunks/item-option-positions-number-field-BJJtXZL-.js +31 -0
  110. package/standalone/chunks/{item-option-radio-button-group-BkymJq3E.js → item-option-radio-button-group-C5bxsD85.js} +1 -1
  111. package/standalone/chunks/item-option-slider-DUXWz70B.js +18 -0
  112. package/standalone/chunks/item-option-switch-BHyJuOkP.js +12 -0
  113. package/standalone/chunks/{item-option-text-field-D7bkuhsv.js → item-option-text-field-rBZY9OX4.js} +1 -1
  114. package/standalone/chunks/{item-slot-picker-panel-D4BMxGs9.js → item-slot-picker-panel-BM82vSXi.js} +101 -99
  115. package/standalone/chunks/load-data-fields-for-datasets-DS9O1oyy.js +25 -0
  116. package/standalone/chunks/localize-DLl7tgQp.js +2 -0
  117. package/standalone/chunks/localized-decorator-DosMCCQo.js +2 -0
  118. package/standalone/chunks/{version-BW4Ixl63.js → localized-mixin-BWJj88bd.js} +1 -1
  119. package/standalone/chunks/nl-CQz2jrVx.js +2 -0
  120. package/standalone/chunks/{option-interaction-controller-BslAXAHF.js → option-interaction-controller-BuwRr21c.js} +1 -1
  121. package/standalone/chunks/{route-map-options.config-Dwy0JSVq.js → route-map-options.config-CGBkHnhM.js} +1 -1
  122. package/standalone/chunks/{spike-map-options.config-DFmuNxym.js → spike-map-options.config-CSenlJ_F.js} +1 -1
  123. package/standalone/interactive-viz-item.js +88 -84
  124. package/standalone/item-grid.js +10 -10
  125. package/standalone/manifest.json +46 -46
  126. package/types.d.ts +1 -1
  127. package/components/chart-helpers-ufZ6VbXs.cjs +0 -20
  128. package/components/filters-BPbPFOu5.cjs +0 -187
  129. package/components/interactive-viz-item-CwRRaCZB.js +0 -583
  130. package/components/interactive-viz-item-CxdrGRKc.cjs +0 -265
  131. package/components/item-slot-picker-panel-BhhN54IM.cjs +0 -82
  132. package/standalone/chunks/data-broker-DXDyIrj_.js +0 -2
  133. package/standalone/chunks/de-mdZT2W1G.js +0 -2
  134. package/standalone/chunks/display-settings-binning-Byffw2Kl.js +0 -38
  135. package/standalone/chunks/display-settings-datetime-CD52d6Sv.js +0 -199
  136. package/standalone/chunks/display-settings-grand-totals-Cky99LX9.js +0 -26
  137. package/standalone/chunks/display-settings-numeric-C9ea7Tgc.js +0 -172
  138. package/standalone/chunks/display-settings-period-over-period-BLSGumkD.js +0 -209
  139. package/standalone/chunks/embed-CBu7iQRx.js +0 -231
  140. package/standalone/chunks/en-CSboh17P.js +0 -2
  141. package/standalone/chunks/en-GB-HoXKQBOY.js +0 -2
  142. package/standalone/chunks/en-US-CSboh17P.js +0 -2
  143. package/standalone/chunks/es-Di5D8JFd.js +0 -2
  144. package/standalone/chunks/fr-DZku7iB9.js +0 -2
  145. package/standalone/chunks/item-option-action-button-group-BEAwPHVw.js +0 -35
  146. package/standalone/chunks/item-option-base-CRUxNhJQ.js +0 -38
  147. package/standalone/chunks/item-option-color-palette-picker-CBz61iZb.js +0 -22
  148. package/standalone/chunks/item-option-color-picker-lLvBPnKA.js +0 -19
  149. package/standalone/chunks/item-option-color-range-BqeatOei.js +0 -83
  150. package/standalone/chunks/item-option-guidelines-Cop8rM8y.js +0 -120
  151. package/standalone/chunks/item-option-panel-CzSKFCVl.js +0 -316
  152. package/standalone/chunks/item-option-position-picker-Bkc4JvJX.js +0 -14
  153. package/standalone/chunks/item-option-positions-number-field-Dr_315TE.js +0 -31
  154. package/standalone/chunks/item-option-slider-K_bsNci8.js +0 -18
  155. package/standalone/chunks/item-option-switch-DeihDHhM.js +0 -12
  156. package/standalone/chunks/load-data-fields-for-datasets-ClctSj6y.js +0 -25
  157. package/standalone/chunks/localize-DXRmGRe-.js +0 -2
  158. package/standalone/chunks/localized-decorator-DJVBmJVH.js +0 -2
  159. package/standalone/chunks/nl-CViTevL3.js +0 -2
@@ -19,10 +19,10 @@
19
19
  *
20
20
  */
21
21
 
22
- import{a as e,i as t,n,r}from"./chunks/version-BW4Ixl63.js";import{t as i}from"./chunks/localized-decorator-DJVBmJVH.js";import{n as a,t as o}from"./chunks/luzmoCog-C4v4vc5N.js";import{t as s}from"./chunks/luzmoTrashOutline-DXZpJx7f.js";import{t as c}from"./chunks/luzmoTable-BYeZ8pW6.js";import{t as l}from"./chunks/luzmoLockOutline-Dctb86HR.js";import{t as u}from"./chunks/embed-CBu7iQRx.js";import{t as d}from"./chunks/v4-BxSu4gkw.js";import{n as f,t as p}from"./chunks/themes-C2pxFlIq.js";import{guard as m,html as h,nothing as g,property as _,query as v,queryAll as y,render as b,repeat as x,state as ee,unsafeCSS as te}from"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/lit.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/action-button.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/icon.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/tooltip.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/action-group.js";import{LuzmoElement as S}from"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/utils.js";var C={icon:[32,32,`M5 8C2.2 8 0 10.2 0 13v14c0 2.8 2.2 5 5 5h16c2.8 0 5-2.2 5-5V13C26 10.2 23.8 8 21 8Zm0 2h16c1.7 0 3 1.3 3 3v14c0 1.7-1.3 3-3 3H5C3.3 30 2 28.7 2 27V13C2 11.3 3.3 10 5 10ZM11 0C8.2 0 6 2.2 6 5V6H8V5C8 3.3 9.3 2 11 2h16c1.7 0 3 1.3 3 3v14c0 1.3-0.8 2.4-2 2.8v2.1C30.3 23.4 32 21.4 32 19V5C32 2.2 29.8 0 27 0Z`],name:`clone`},ne={icon:[32,32,`M16 0a16 16 0 0 0 0 32c8.82 0 16-7.18 16-16 0-8.83-7.18-16-16-16Zm0 2A14 14 0 1 1 2 16C2 8.25 8.25 2 16 2z`],name:`circle`},re={icon:[32,32,`M26 .25c-.97 0-1.97.3-2.7 1.04l-19 19a1 1 0 0 0-.2.3l-.03.04-4 10a1 1 0 0 0 1.3 1.3l10-4 .03-.02c.12-.05.3-.2.3-.2L27.42 12l3.3-3.3A3.78 3.78 0 0 0 31.75 6c0-.97-.3-1.97-1.04-2.7l-2-2A3.78 3.78 0 0 0 26 .24Zm0 2c.53 0 1.03.2 1.3.46l2 2c.26.26.45.76.45 1.29s-.2 1.03-.46 1.3L26 10.58 21.41 6l3.3-3.3c.26-.26.76-.45 1.29-.45Zm-6 5.16L24.59 12 12 24.59V24a1 1 0 0 0-1-1H9v-2a1 1 0 0 0-1-1h-.59Zm-.16 2.6a1 1 0 0 0-.55.28l-7 7a1 1 0 0 0 1.42 1.42l7-7a1 1 0 0 0-.87-1.7zM5.68 22H7v2a1 1 0 0 0 1 1h2v1.32l-5.4 2.16-1.08-1.08Z`],name:`pencil`},ie={icon:[32,32,`M1 0a1 1 0 0 0-.8 1.6L12 19.3V28a1 1 0 0 0 .6.9l6 3A1 1 0 0 0 20 31V19.3L31.8 1.6A1 1 0 0 0 31 0Zm1.9 2H29l-11 16.4a1 1 0 0 0-.1.6v10.4l-4-2V19a1 1 0 0 0-.2-.6z`],name:`filter-outline`},ae=`.grid-stack{position:relative}.grid-stack-placeholder>.placeholder-content{background-color:#0000001a;width:auto;margin:0;position:absolute;z-index:0!important}.grid-stack>.grid-stack-item{width:var(--gs-column-width);height:var(--gs-cell-height);padding:0;position:absolute;top:0}.grid-stack>.grid-stack-item>.grid-stack-item-content{width:auto;margin:0;position:absolute;overflow:hidden auto}.grid-stack>.grid-stack-item.size-to-content:not(.size-to-content-max)>.grid-stack-item-content{overflow-y:hidden}.grid-stack:not(.grid-stack-rtl)>.grid-stack-item{left:0}.grid-stack.grid-stack-rtl>.grid-stack-item{right:0}.grid-stack>.grid-stack-item>.grid-stack-item-content,.grid-stack>.grid-stack-placeholder>.placeholder-content{top:var(--gs-item-margin-top);right:var(--gs-item-margin-right);bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-handle{-ms-touch-action:manipulation;touch-action:manipulation;-webkit-user-select:none;user-select:none;z-index:100;font-size:.1px;display:block;position:absolute}.grid-stack-item.ui-resizable-autohide>.ui-resizable-handle,.grid-stack-item.ui-resizable-disabled>.ui-resizable-handle{display:none}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se,.grid-stack-item>.ui-resizable-sw{z-index:101;background-image:url("data:image/svg+xml;utf8,<svg xmlns=\\"http://www.w3.org/2000/svg\\" fill=\\"none\\" stroke=\\"%23666\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"2\\" viewBox=\\"0 0 20 20\\"><path d=\\"m10 3 2 2H8l2-2v14l-2-2h4l-2 2\\"/></svg>");background-position:50%;background-repeat:no-repeat}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-sw{transform:rotate(45deg)}.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se{transform:rotate(-45deg)}.grid-stack-item>.ui-resizable-nw{cursor:nw-resize;width:20px;height:20px;top:var(--gs-item-margin-top);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-n{cursor:n-resize;height:10px;top:var(--gs-item-margin-top);left:25px;right:25px}.grid-stack-item>.ui-resizable-ne{cursor:ne-resize;width:20px;height:20px;top:var(--gs-item-margin-top);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-e{cursor:e-resize;width:10px;top:15px;bottom:15px;right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-se{cursor:se-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-s{cursor:s-resize;height:10px;left:25px;bottom:var(--gs-item-margin-bottom);right:25px}.grid-stack-item>.ui-resizable-sw{cursor:sw-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-w{cursor:w-resize;width:10px;top:15px;bottom:15px;left:var(--gs-item-margin-left)}.grid-stack-item.ui-draggable-dragging>.ui-resizable-handle{display:none!important}.grid-stack-item.ui-draggable-dragging{will-change:left,right,top}.grid-stack-item.ui-resizable-resizing{will-change:width,height}.grid-stack-item.ui-draggable-armed{cursor:move;animation:.25s ease-in-out infinite gs-armed-wiggle}.grid-stack-item>.ui-resizable-handle.ui-resizable-armed{animation:.5s ease-in-out infinite gs-armed-pulse}@keyframes gs-armed-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-1.5deg)}75%{transform:rotate(1.5deg)}}@keyframes gs-armed-pulse{0%,to{opacity:1}50%{opacity:.3}}.ui-draggable-dragging,.ui-resizable-resizing{z-index:10000}.ui-draggable-dragging>.grid-stack-item-content,.ui-resizable-resizing>.grid-stack-item-content{opacity:.8;box-shadow:1px 4px 6px #0003}.grid-stack-animate,.grid-stack-animate .grid-stack-item{transition:left .3s,right .3s,top .3s,height .3s,width .3s}.grid-stack-animate .grid-stack-item.grid-stack-placeholder,.grid-stack-animate .grid-stack-item.ui-draggable-dragging,.grid-stack-animate .grid-stack-item.ui-resizable-resizing{transition:left,right,top,height,width}.grid-stack>.grid-stack-item[gs-y="0"]{top:0}.grid-stack:not(.grid-stack-rtl)>.grid-stack-item[gs-x="0"]{left:0}.grid-stack.grid-stack-rtl>.grid-stack-item[gs-x="0"]{right:0}.gs-print-show{display:none}@media print{@page gs-landscape{size:landscape}@page gs-portrait{size:portrait}.grid-stack{height:auto!important;display:block!important;position:static!important}.grid-stack>.grid-stack-item{float:left!important;height:auto!important;width:calc(100% * var(--gs-w)/ var(--gs-columns,12))!important;break-inside:avoid!important;page-break-inside:avoid!important;display:block!important;position:static!important;top:auto!important;left:auto!important}.grid-stack>.grid-stack-item>.grid-stack-item-content{white-space:normal!important;height:auto!important;margin-top:var(--gs-item-margin-top)!important;margin-right:var(--gs-item-margin-right)!important;margin-bottom:var(--gs-item-margin-bottom)!important;margin-left:var(--gs-item-margin-left)!important;position:relative!important;inset:auto!important;overflow:visible!important}.gs-print-hide{display:none}.gs-print-show{display:block}.gs-print-avoid-break-after{break-after:avoid!important;page-break-after:avoid!important}.grid-stack>.grid-stack-item.gs-print-hide{display:none!important}.grid-stack>.grid-stack-item[gs-page-break=true],.grid-stack>.grid-stack-item[gs-print-orientation]{float:none!important;clear:both!important}.grid-stack>.grid-stack-item[gs-page-break=true]{page-break-before:always!important;break-before:page!important}.grid-stack>.grid-stack-item[gs-print-orientation=landscape]{page:gs-landscape;min-width:calc(100vmax * var(--gs-w)/ var(--gs-columns,12))!important}.grid-stack>.grid-stack-item[gs-print-orientation=portrait]{page:gs-portrait;min-width:calc(100vmin * var(--gs-w)/ var(--gs-columns,12))!important}.grid-stack>.grid-stack-item[gs-break-inside=true]{float:none!important;clear:both!important;break-inside:auto!important;page-break-inside:auto!important;width:100%!important}.grid-stack>.grid-stack-item>.ui-resizable-handle{display:none!important}}`,oe=({action:e,actionType:t,active:n,items:r,element:i,itemId:a,item:o,deletedId:s,originalElement:c,updatedItems:l})=>({action:e,actionType:t,active:n,items:r,element:i,item:{...o,id:a,filters:o?.filters??[]},...s&&{deletedId:s},...c&&{originalElement:c},...l&&{updatedItems:l}}),w=({target:e,action:t,actionType:n,active:r,items:i,element:a,itemId:o,item:s,deletedId:c,originalElement:l,updatedItems:u})=>{e.dispatchEvent(new CustomEvent(`luzmo-item-grid-item-action`,{detail:oe({action:t,actionType:n,active:r,items:i,element:a,itemId:o,item:s,deletedId:c,originalElement:l,updatedItems:u}),bubbles:!0,composed:!0,cancelable:!0}))},T=({target:e,itemStates:t,updatedItemStates:n,changedItemStates:r})=>{e.dispatchEvent(new CustomEvent(`luzmo-item-grid-item-states-changed`,{detail:{itemStates:t,updatedItemStates:n,changedItemStates:r},bubbles:!0,composed:!0}))},se=({target:e,eventName:t,detail:n})=>{e.dispatchEvent(new CustomEvent(t,{detail:n,bubbles:!0,composed:!0}))},ce=e=>e instanceof Element?e:void 0,le=e=>ce(e)?.closest(`.grid-stack-item`),ue=({event:e,gridItem:t})=>!ce(e.relatedTarget)?.closest(`.grid-item-actions-popover`)&&!t.hasAttribute(`active`),de=({event:e,focusedItemElement:t,removeItemActionsMenuPopover:n})=>{let r=le(e.target);return r?(t&&t!==r&&(t.removeAttribute(`focused`),n(t)),r.setAttribute(`focused`,`true`),r):t},fe=({event:e,focusedItemElement:t,removeItemActionsMenuPopover:n})=>t?ce(e.relatedTarget)?.closest(`luzmo-item-grid-item-actions-menu`)?{focusedItemElement:t,shouldFocusGrid:!1}:(t.removeAttribute(`focused`),n(t),{focusedItemElement:void 0,shouldFocusGrid:!0}):{focusedItemElement:void 0,shouldFocusGrid:!1},pe=({item:e,activeItemElement:t,gridElement:n,removeItemActionsMenuPopover:r})=>{if(e.removeAttribute(`active`),r(e),t===e)n.removeAttribute(`has-active-item`);else return t},me=({event:e,gridElement:t,items:n,state:r,cleanupActiveItem:i,dispatchItemActionEvent:a,createItemActionsMenuPopover:o})=>{e.stopPropagation();let s=e.detail,c=e.target?.closest(`.grid-stack-item`);if(!c)return r;let l=c.getAttribute(`gs-id`),u=n.find(e=>e.id===l);return s.type===`toggle`&&s.action===r.activeItemActionToggle&&c===r.activeItemElement?(r.activeItemElement=void 0,r.activeItemActionToggle=void 0,t.removeAttribute(`has-active-item`),c.removeAttribute(`active`),i(c),l&&a(s.action,s.type,!1,c,l,u),r):(t.querySelectorAll(`.grid-stack-item`).forEach(e=>{e!==c&&i(e)}),s.type===`toggle`?(r.activeItemElement=c,r.activeItemActionToggle=s.action,t.setAttribute(`has-active-item`,`true`),c.setAttribute(`active`,`true`),o(c,[s.action])):r.activeItemElement&&r.activeItemElement!==c&&(r.activeItemElement=void 0,r.activeItemActionToggle=void 0),l&&a(s.action,s.type,s.active,c,l,u),r)},he=({event:e,gridElement:t,hostElement:n,items:r,activeItemActionToggle:i,cleanupActiveItem:a,dispatchItemActionEvent:o})=>{let s=e.composedPath();if(!s.includes(t)&&!s.includes(n))return{activeItemActionToggle:i};let c=t.querySelector(`.grid-stack-item[active]`);if(!c||s.includes(c))return{activeItemActionToggle:i};let l=c.querySelector(`.grid-item-actions-popover`);if(l&&s.includes(l))return{activeItemActionToggle:i};let u=c.getAttribute(`gs-id`),d=r.find(e=>e.id===u);return a(c),i&&u&&o(i,`toggle`,!1,c,u,d),{activeItemActionToggle:void 0}},ge=({gridElement:e,items:t,gridItemData:n,itemId:r,action:i,options:a,state:o,cleanupActiveItem:s,dispatchItemActionEvent:c,createItemActionsMenuPopover:l})=>{if(!n?.element)return{result:void 0,state:o};let u=n.element,d=n.item,f=i===o.activeItemActionToggle&&u===o.activeItemElement,p=a?.active??!f;if(a?.active!==void 0&&p===f)return{result:f,state:o};if(!p)return o.activeItemElement=void 0,o.activeItemActionToggle=void 0,e.removeAttribute(`has-active-item`),u.removeAttribute(`active`),s(u),c(i,`toggle`,!1,u,r,d),{result:!1,state:o};if(o.activeItemElement&&o.activeItemElement!==u){let e=o.activeItemElement.getAttribute(`gs-id`),n=t.find(t=>t.id===e),r=o.activeItemActionToggle,i=o.activeItemElement;s(o.activeItemElement),o.activeItemElement=void 0,o.activeItemActionToggle=void 0,r&&e&&n&&c(r,`toggle`,!1,i,e,n)}return o.activeItemElement=u,o.activeItemActionToggle=i,e.setAttribute(`has-active-item`,`true`),u.setAttribute(`active`,`true`),l(u,[i]),c(i,`toggle`,!0,u,r,d),{result:!0,state:o}},_e=({gridElement:e,items:t,state:n,cleanupActiveItem:r,dispatchItemActionEvent:i})=>{let a=0;if(n.activeItemElement&&n.activeItemActionToggle){let o=n.activeItemElement.getAttribute(`gs-id`),s=t.find(e=>e.id===o),c=n.activeItemActionToggle,l=n.activeItemElement;r(n.activeItemElement),n.activeItemElement=void 0,n.activeItemActionToggle=void 0,e.removeAttribute(`has-active-item`),c&&o&&s&&(i(c,`toggle`,!1,l,o,s),a++)}return{deactivatedCount:a,state:n}},ve={sizeX:1,sizeY:1,col:0,row:0},ye=e=>{e.forEach(e=>{if(!e.id)throw Error(`Grid item id is required`)})},be=e=>{if(!e.id)throw Error(`Grid item id is required`);return e.id},xe=(e,t)=>({id:t,x:e?.position?.col??0,y:e?.position?.row??0,w:e?.position?.sizeX??1,h:e?.position?.sizeY??1}),Se=(e,t)=>({...structuredClone(e),id:t,position:{...ve,...structuredClone(e.position)},canFilter:e.canFilter??`all`}),Ce=(e,t)=>{if(t){for(let n of e)if(n.getAttribute(`luzmo-item-grid-item-id`)===t)return n}},we=(e,t)=>e.map(e=>({item:e,element:t.querySelector(`[gs-id="${CSS.escape(e.id)}"]`)})),Te=({item:e,engine:t,existingItems:n,autoPosition:r,excludeNodeId:i})=>{let a=e.position,o=i?t.nodes.filter(e=>e.id!==i):t.nodes,s=new t.constructor({column:t.column,mode:t.mode,nodes:o.map(e=>({...e}))}),c={x:a.col,y:a.row,w:a.sizeX,h:a.sizeY,id:e.id,autoPosition:r};s.addNode(c);let l={...e,position:{col:c.x??a.col,row:c.y??a.row,sizeX:c.w??a.sizeX,sizeY:c.h??a.sizeY}};return{resolvedItem:l,updatedItems:[...n.map(e=>{let t=s.nodes.find(t=>t.id===e.id);return t&&t.x!=null&&t.y!=null&&t.w!=null&&t.h!=null?{...e,position:{col:t.x,row:t.y,sizeX:t.w,sizeY:t.h}}:e}),l]}},Ee=({itemId:e,patch:t,engine:n,existingItems:r})=>{let i=r.find(t=>t.id===e);if(!i?.position)return r;let{resolvedItem:a,updatedItems:o}=Te({item:{...i,position:{...i.position,...t}},engine:n,existingItems:r.filter(t=>t.id!==e),autoPosition:!1,excludeNodeId:e});return r.map(t=>t.id===e?a:o.find(e=>e.id===t.id)??t)},De=e=>Se(e,e.id),Oe=Math.min,E=Math.max,ke=Math.round,Ae=Math.floor,D=e=>({x:e,y:e}),je={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function Me(e,t){return typeof e==`function`?e(t):e}function O(e){return e.split(`-`)[0]}function Ne(e){return e.split(`-`)[1]}function Pe(e){return e===`x`?`y`:`x`}function Fe(e){return e===`y`?`height`:`width`}function k(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function Ie(e){return Pe(k(e))}function Le(e,t,n){n===void 0&&(n=!1);let r=Ne(e),i=Ie(e),a=Fe(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Ke(o)),[o,Ke(o)]}function Re(e){let t=Ke(e);return[ze(e),t,ze(t)]}function ze(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var Be=[`left`,`right`],Ve=[`right`,`left`],He=[`top`,`bottom`],Ue=[`bottom`,`top`];function We(e,t,n){switch(e){case`top`:case`bottom`:return n?t?Ve:Be:t?Be:Ve;case`left`:case`right`:return t?He:Ue;default:return[]}}function Ge(e,t,n,r){let i=Ne(e),a=We(O(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(ze)))),a}function Ke(e){let t=O(e);return je[t]+e.slice(t.length)}function qe(e){return{top:0,right:0,bottom:0,left:0,...e}}function Je(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:qe(e)}function Ye(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Xe(e,t,n){let{reference:r,floating:i}=e,a=k(t),o=Ie(t),s=Fe(o),c=O(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(Ne(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1)}return p}async function Ze(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=Me(t,e),p=Je(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=Ye(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=Ye(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var Qe=50,$e=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Ze},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Xe(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<Qe&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=Xe(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},et=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=Me(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=O(r),_=k(o),v=O(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[Ke(o)]:Re(o)),x=p!==`none`;!d&&x&&b.push(...Ge(o,m,p,y));let ee=[o,...b],te=await s.detectOverflow(t,h),S=[],C=i.flip?.overflows||[];if(l&&S.push(te[g]),u){let e=Le(r,a,y);S.push(te[e[0]],te[e[1]])}if(C=[...C,{placement:r,overflows:S}],!S.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=ee[e];if(t&&(u!==`alignment`||_===k(t)||C.every(e=>k(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:C},reset:{placement:t}};let n=C.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=C.filter(e=>{if(x){let t=k(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}},tt=/*#__PURE__*/ new Set([`left`,`top`]);async function nt(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=O(n),s=Ne(n),c=k(n)===`y`,l=tt.has(o)?-1:1,u=a&&c?-1:1,d=Me(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var rt=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await nt(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}};function it(){return typeof window<`u`}function A(e){return at(e)?(e.nodeName||``).toLowerCase():`#document`}function j(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function M(e){return((at(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function at(e){return it()?e instanceof Node||e instanceof j(e).Node:!1}function N(e){return it()?e instanceof Element||e instanceof j(e).Element:!1}function P(e){return it()?e instanceof HTMLElement||e instanceof j(e).HTMLElement:!1}function ot(e){return!it()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof j(e).ShadowRoot}function st(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=L(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function ct(e){return/^(table|td|th)$/.test(A(e))}function lt(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var ut=/transform|translate|scale|rotate|perspective|filter/,dt=/paint|layout|strict|content/,F=e=>!!e&&e!==`none`,ft;function pt(e){let t=N(e)?L(e):e;return F(t.transform)||F(t.translate)||F(t.scale)||F(t.rotate)||F(t.perspective)||!ht()&&(F(t.backdropFilter)||F(t.filter))||ut.test(t.willChange||``)||dt.test(t.contain||``)}function mt(e){let t=R(e);for(;P(t)&&!I(t);){if(pt(t))return t;if(lt(t))return null;t=R(t)}return null}function ht(){return ft??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),ft}function I(e){return/^(html|body|#document)$/.test(A(e))}function L(e){return j(e).getComputedStyle(e)}function gt(e){return N(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function R(e){if(A(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||ot(e)&&e.host||M(e);return ot(t)?t.host:t}function _t(e){let t=R(e);return I(t)?e.ownerDocument?e.ownerDocument.body:e.body:P(t)&&st(t)?t:_t(t)}function vt(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=_t(e),i=r===e.ownerDocument?.body,a=j(r);if(i){let e=yt(a);return t.concat(a,a.visualViewport||[],st(r)?r:[],e&&n?vt(e):[])}return t.concat(r,vt(r,[],n))}function yt(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function bt(e){let t=L(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=P(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=ke(n)!==a||ke(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function xt(e){return N(e)?e:e.contextElement}function z(e){let t=xt(e);if(!P(t))return D(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=bt(t),o=(a?ke(n.width):n.width)/r,s=(a?ke(n.height):n.height)/i;return o&&Number.isFinite(o)||(o=1),s&&Number.isFinite(s)||(s=1),{x:o,y:s}}var St=/*#__PURE__*/ D(0);function Ct(e){let t=j(e);return!ht()||!t.visualViewport?St:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function wt(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==j(e)?!1:t}function B(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=xt(e),o=D(1);t&&(r?N(r)&&(o=z(r)):o=z(e));let s=wt(a,n,r)?Ct(a):D(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=j(a),t=r&&N(r)?j(r):r,n=e,i=yt(n);for(;i&&r&&t!==n;){let e=z(i),t=i.getBoundingClientRect(),r=L(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=j(i),i=yt(n)}}return Ye({width:u,height:d,x:c,y:l})}function Tt(e,t){let n=gt(e).scrollLeft;return t?t.left+n:B(M(e)).left+n}function Et(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-Tt(e,n),y:n.top+t.scrollTop}}function Dt(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=M(r),s=t?lt(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=D(1),u=D(0),d=P(r);if((d||!d&&!a)&&((A(r)!==`body`||st(o))&&(c=gt(r)),d)){let e=B(r);l=z(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?Et(o,c):D(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function Ot(e){return Array.from(e.getClientRects())}function kt(e){let t=M(e),n=gt(e),r=e.ownerDocument.body,i=E(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=E(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+Tt(e),s=-n.scrollTop;return L(r).direction===`rtl`&&(o+=E(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var At=25;function jt(e,t){let n=j(e),r=M(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=ht();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=Tt(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=At&&(a-=o)}else l<=At&&(a+=l);return{width:a,height:o,x:s,y:c}}function Mt(e,t){let n=B(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=P(e)?z(e):D(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function Nt(e,t,n){let r;if(t===`viewport`)r=jt(e,n);else if(t===`document`)r=kt(M(e));else if(N(t))r=Mt(t,n);else{let n=Ct(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Ye(r)}function Pt(e,t){let n=R(e);return n===t||!N(n)||I(n)?!1:L(n).position===`fixed`||Pt(n,t)}function Ft(e,t){let n=t.get(e);if(n)return n;let r=vt(e,[],!1).filter(e=>N(e)&&A(e)!==`body`),i=null,a=L(e).position===`fixed`,o=a?R(e):e;for(;N(o)&&!I(o);){let t=L(o),n=pt(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||st(o)&&!n&&Pt(e,o))?r=r.filter(e=>e!==o):i=t,o=R(o)}return t.set(e,r),r}function It(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?lt(t)?[]:Ft(t,this._c):[].concat(n),r],o=Nt(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=Nt(t,a[e],i);s=E(n.top,s),c=Oe(n.right,c),l=Oe(n.bottom,l),u=E(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function Lt(e){let{width:t,height:n}=bt(e);return{width:t,height:n}}function Rt(e,t,n){let r=P(t),i=M(t),a=n===`fixed`,o=B(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=D(0);function l(){c.x=Tt(i)}if(r||!r&&!a){if((A(t)!==`body`||st(i))&&(s=gt(t)),r){let e=B(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l()}a&&!r&&i&&l();let u=i&&!r&&!a?Et(i,s):D(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function zt(e){return L(e).position===`static`}function Bt(e,t){if(!P(e)||L(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return M(e)===n&&(n=n.ownerDocument.body),n}function Vt(e,t){let n=j(e);if(lt(e))return n;if(!P(e)){let t=R(e);for(;t&&!I(t);){if(N(t)&&!zt(t))return t;t=R(t)}return n}let r=Bt(e,t);for(;r&&ct(r)&&zt(r);)r=Bt(r,t);return r&&I(r)&&zt(r)&&!pt(r)?n:r||mt(e)||n}var Ht=async function(e){let t=this.getOffsetParent||Vt,n=this.getDimensions,r=await n(e.floating);return{reference:Rt(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Ut(e){return L(e).direction===`rtl`}var Wt={convertOffsetParentRelativeRectToViewportRelativeRect:Dt,getDocumentElement:M,getClippingRect:It,getOffsetParent:Vt,getElementRects:Ht,getClientRects:Ot,getDimensions:Lt,getScale:z,isElement:N,isRTL:Ut};function Gt(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Kt(e,t){let n=null,r,i=M(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=Ae(d),h=Ae(i.clientWidth-(u+f)),g=Ae(i.clientHeight-(d+p)),_=Ae(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:E(0,Oe(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!Gt(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function qt(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=xt(e),u=i||a?[...l?vt(l):[],...t?vt(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?Kt(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?B(e):null;c&&g();function g(){let t=B(e);h&&!Gt(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Jt=rt,Yt=et,Xt=(e,t,n)=>{let r=/* @__PURE__ */ new Map,i={platform:Wt,...n},a={...i.platform,_c:r};return $e(e,t,{...i,platform:a})},Zt=/* @__PURE__ */ new WeakMap,Qt=(e,t)=>{$t(e),Zt.set(e,t)},$t=e=>{let t=Zt.get(e);t&&(t(),Zt.delete(e))},en=({element:e,activeActions:t,getGridItemById:n,placementItemActionsMenu:r,renderOverlayContent:i,removeItemActionsMenuPopover:a,itemActionsDocumentPopover:o=!0})=>{let s=e.querySelector(`.grid-item-actions-popover`),c=e.querySelector(`.grid-stack-item-content`),l=n(e.getAttribute(`gs-id`)??``);if(t&&t.length>0&&s&&(a(e),s=null),!s){let n=document.createDocumentFragment();if(b(i(l?.item,t),n),s=n.querySelector(`.grid-item-actions-popover`),!s)return;e.append(s)}let u=o?`absolute`:`fixed`,d=qt(c,s,async()=>{let{x:e,y:t}=await Xt(c,s,{placement:l?.item?.placementActionsMenu??r??`right-start`,strategy:u,middleware:[Jt(0),Yt({crossAxis:!1})]});s.style.left=`${e}px`,s.style.top=`${t}px`,o||(s.style.position=`fixed`,s.style.right=`auto`,s.style.bottom=`auto`,s.style.margin=`0`)});Qt(s,d),o&&s.isConnected&&!s.matches(`:popover-open`)&&s.showPopover()},tn=e=>{let t=e.querySelector(`.grid-item-actions-popover`);t&&($t(t),t.hasAttribute(`popover`)&&t.matches(`:popover-open`)&&t.hidePopover(),t.remove())},nn=e=>e===`ArrowLeft`||e===`ArrowRight`||e===`ArrowUp`||e===`ArrowDown`,rn=({key:e,node:t,maxColumns:n,shiftKey:r,ctrlKey:i,metaKey:a})=>{let o={ArrowLeft:{move:{x:t.x-1},resize:{x:t.x-1,w:t.w+1},shrink:{w:t.w-1},canMove:t.x>0,canResize:t.x>0,canShrink:t.w>1},ArrowRight:{move:{x:t.x+1},resize:{w:t.w+1},shrink:{x:t.x+1,w:t.w-1},canMove:t.x<n-t.w,canResize:t.x+t.w<n,canShrink:t.w>1},ArrowUp:{move:{y:t.y-1},resize:{y:t.y-1,h:t.h+1},shrink:{h:t.h-1},canMove:t.y>0,canResize:t.y>0,canShrink:t.h>1},ArrowDown:{move:{y:t.y+1},resize:{h:t.h+1},shrink:{y:t.y+1,h:t.h-1},canMove:!0,canResize:!0,canShrink:t.h>1}}[e];if(r&&o.canResize)return o.resize;if((i||a)&&o.canShrink)return o.shrink;if(o.canMove)return o.move},an=({event:e,viewMode:t,focusedItemElement:n,activeItemElement:r,gridElement:i,grid:a,columns:o,onDeleteRequest:s,removeItemActionsMenuPopover:c,createItemActionsMenuPopover:l})=>{if(t)return{focusedItemElement:n,activeItemElement:r};let u=n,d=r;if(e.key===`Delete`&&n){let e=n.nextElementSibling??n.previousElementSibling;s(n),u=e??void 0,u?requestAnimationFrame(()=>u?.focus()):i.focus(),r===n&&(d=void 0)}else if(e.key===`Escape`&&n)n.removeAttribute(`focused`),c(n),u=void 0,i.focus();else if(e.key===`Enter`&&n)e.preventDefault(),e.stopPropagation(),r&&(r.removeAttribute(`active`),i.removeAttribute(`has-active-item`),c(r),d=void 0),i.querySelectorAll(`.grid-stack-item`).forEach(e=>{e!==n&&c(e)}),l(n),requestAnimationFrame(()=>{let e=n.querySelector(`luzmo-item-grid-item-actions-menu`);e&&e.focus()});else if(n&&a&&nn(e.key)){e.preventDefault(),e.stopPropagation();let t=n.gridstackNode;if(!t)return{focusedItemElement:u,activeItemElement:d};let r=rn({key:e.key,node:t,maxColumns:o,shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey});r&&a.update(n,r)}return{focusedItemElement:u,activeItemElement:d}},on=16,sn=10,V=(e,t)=>t>=1?`rgba(${e.r},${e.g},${e.b},1)`:t<=0?`rgba(${e.r},${e.g},${e.b},0)`:`rgba(${e.r},${e.g},${e.b},${t})`,cn=e=>[(e?.margins?.[0]??on)/2,(e?.margins?.[1]??on)/2],ln=e=>sn-(e?.margins?.[0]??sn),un=e=>{let t=e?.boxShadow;if(!t)return``;let n=new u(t.color),r={r:Math.round(n.srgb.r*255),g:Math.round(n.srgb.g*255),b:Math.round(n.srgb.b*255)},i=e?.margins?.[0]??on,a=Math.min(i/10,2);return t.size===`none`?`none`:t.size===`S`?`0 ${a*2}px ${a*4}px ${V(r,.16)}, 0 ${a*2}px ${a*4}px ${V(r,.23)}`:t.size===`M`?`0 ${a*8}px ${a*16}px ${V(r,.19)}, 0 ${a*4}px ${a*4}px ${V(r,.23)}`:t.size===`L`?`0 ${a*12}px ${a*24}px ${V(r,.25)}, 0 ${a*8}px ${a*8}px ${V(r,.22)}`:``},dn=e=>{let t=un(e);return/* @__PURE__ */ new Map([[`--grid-font-family`,e?.font?.fontFamily],[`--grid-background`,e?.background],[`--grid-item-box-shadow`,t],[`--grid-item-background`,e?.itemsBackground],[`--grid-item-border-color`,e?.borders?.[`border-color`]],[`--grid-item-border-style`,e?.borders?.[`border-style`]],[`--grid-item-border-radius`,e?.borders?.[`border-radius`]],[`--grid-item-border-width`,`${e?.borders?.[`border-top-width`]}`],[`--grid-item-border-top-width`,e?.borders?.[`border-top-width`]],[`--grid-item-border-right-width`,e?.borders?.[`border-right-width`]],[`--grid-item-border-bottom-width`,e?.borders?.[`border-bottom-width`]],[`--grid-item-border-left-width`,e?.borders?.[`border-left-width`]]])},fn=e=>{let t=e?.itemsBackground??e?.background;return t?new u(t).luminance<.5:!1},pn=(e,t)=>{t&&dn(t).forEach((t,n)=>{t?e.setProperty(n,t):e.removeProperty(n)})},mn=({item:n,index:r,initialized:i,viewMode:o,renderItemContent:s,handleMouseover:c,handleMouseout:l,handleFocus:u,handleBlur:d})=>{let f=!o;return h`
22
+ import{i as e,n as t,r as n,t as r}from"./chunks/localized-mixin-BWJj88bd.js";import{t as i}from"./chunks/localized-decorator-DosMCCQo.js";import{n as a,t as o}from"./chunks/luzmoCog-C4v4vc5N.js";import{t as s}from"./chunks/luzmoTrashOutline-DXZpJx7f.js";import{t as c}from"./chunks/luzmoTable-BYeZ8pW6.js";import{t as l}from"./chunks/luzmoLockOutline-Dctb86HR.js";import{t as u}from"./chunks/embed-Bv1ps-EM.js";import{t as d}from"./chunks/v4-BxSu4gkw.js";import{n as f,t as p}from"./chunks/themes-C2pxFlIq.js";import{guard as m,html as h,nothing as g,property as _,query as v,queryAll as y,render as b,repeat as x,state as ee,unsafeCSS as te}from"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/lit.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/action-button.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/icon.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/tooltip.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/action-group.js";import{LuzmoElement as S}from"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/utils.js";var C={icon:[32,32,`M5 8C2.2 8 0 10.2 0 13v14c0 2.8 2.2 5 5 5h16c2.8 0 5-2.2 5-5V13C26 10.2 23.8 8 21 8Zm0 2h16c1.7 0 3 1.3 3 3v14c0 1.7-1.3 3-3 3H5C3.3 30 2 28.7 2 27V13C2 11.3 3.3 10 5 10ZM11 0C8.2 0 6 2.2 6 5V6H8V5C8 3.3 9.3 2 11 2h16c1.7 0 3 1.3 3 3v14c0 1.3-0.8 2.4-2 2.8v2.1C30.3 23.4 32 21.4 32 19V5C32 2.2 29.8 0 27 0Z`],name:`clone`},ne={icon:[32,32,`M16 0a16 16 0 0 0 0 32c8.82 0 16-7.18 16-16 0-8.83-7.18-16-16-16Zm0 2A14 14 0 1 1 2 16C2 8.25 8.25 2 16 2z`],name:`circle`},re={icon:[32,32,`M26 .25c-.97 0-1.97.3-2.7 1.04l-19 19a1 1 0 0 0-.2.3l-.03.04-4 10a1 1 0 0 0 1.3 1.3l10-4 .03-.02c.12-.05.3-.2.3-.2L27.42 12l3.3-3.3A3.78 3.78 0 0 0 31.75 6c0-.97-.3-1.97-1.04-2.7l-2-2A3.78 3.78 0 0 0 26 .24Zm0 2c.53 0 1.03.2 1.3.46l2 2c.26.26.45.76.45 1.29s-.2 1.03-.46 1.3L26 10.58 21.41 6l3.3-3.3c.26-.26.76-.45 1.29-.45Zm-6 5.16L24.59 12 12 24.59V24a1 1 0 0 0-1-1H9v-2a1 1 0 0 0-1-1h-.59Zm-.16 2.6a1 1 0 0 0-.55.28l-7 7a1 1 0 0 0 1.42 1.42l7-7a1 1 0 0 0-.87-1.7zM5.68 22H7v2a1 1 0 0 0 1 1h2v1.32l-5.4 2.16-1.08-1.08Z`],name:`pencil`},ie={icon:[32,32,`M1 0a1 1 0 0 0-.8 1.6L12 19.3V28a1 1 0 0 0 .6.9l6 3A1 1 0 0 0 20 31V19.3L31.8 1.6A1 1 0 0 0 31 0Zm1.9 2H29l-11 16.4a1 1 0 0 0-.1.6v10.4l-4-2V19a1 1 0 0 0-.2-.6z`],name:`filter-outline`},ae=`.grid-stack{position:relative}.grid-stack-placeholder>.placeholder-content{background-color:#0000001a;width:auto;margin:0;position:absolute;z-index:0!important}.grid-stack>.grid-stack-item{width:var(--gs-column-width);height:var(--gs-cell-height);padding:0;position:absolute;top:0}.grid-stack>.grid-stack-item>.grid-stack-item-content{width:auto;margin:0;position:absolute;overflow:hidden auto}.grid-stack>.grid-stack-item.size-to-content:not(.size-to-content-max)>.grid-stack-item-content{overflow-y:hidden}.grid-stack:not(.grid-stack-rtl)>.grid-stack-item{left:0}.grid-stack.grid-stack-rtl>.grid-stack-item{right:0}.grid-stack>.grid-stack-item>.grid-stack-item-content,.grid-stack>.grid-stack-placeholder>.placeholder-content{top:var(--gs-item-margin-top);right:var(--gs-item-margin-right);bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-handle{-ms-touch-action:manipulation;touch-action:manipulation;-webkit-user-select:none;user-select:none;z-index:100;font-size:.1px;display:block;position:absolute}.grid-stack-item.ui-resizable-autohide>.ui-resizable-handle,.grid-stack-item.ui-resizable-disabled>.ui-resizable-handle{display:none}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se,.grid-stack-item>.ui-resizable-sw{z-index:101;background-image:url("data:image/svg+xml;utf8,<svg xmlns=\\"http://www.w3.org/2000/svg\\" fill=\\"none\\" stroke=\\"%23666\\" stroke-linecap=\\"round\\" stroke-linejoin=\\"round\\" stroke-width=\\"2\\" viewBox=\\"0 0 20 20\\"><path d=\\"m10 3 2 2H8l2-2v14l-2-2h4l-2 2\\"/></svg>");background-position:50%;background-repeat:no-repeat}.grid-stack-item>.ui-resizable-ne,.grid-stack-item>.ui-resizable-sw{transform:rotate(45deg)}.grid-stack-item>.ui-resizable-nw,.grid-stack-item>.ui-resizable-se{transform:rotate(-45deg)}.grid-stack-item>.ui-resizable-nw{cursor:nw-resize;width:20px;height:20px;top:var(--gs-item-margin-top);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-n{cursor:n-resize;height:10px;top:var(--gs-item-margin-top);left:25px;right:25px}.grid-stack-item>.ui-resizable-ne{cursor:ne-resize;width:20px;height:20px;top:var(--gs-item-margin-top);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-e{cursor:e-resize;width:10px;top:15px;bottom:15px;right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-se{cursor:se-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);right:var(--gs-item-margin-right)}.grid-stack-item>.ui-resizable-s{cursor:s-resize;height:10px;left:25px;bottom:var(--gs-item-margin-bottom);right:25px}.grid-stack-item>.ui-resizable-sw{cursor:sw-resize;width:20px;height:20px;bottom:var(--gs-item-margin-bottom);left:var(--gs-item-margin-left)}.grid-stack-item>.ui-resizable-w{cursor:w-resize;width:10px;top:15px;bottom:15px;left:var(--gs-item-margin-left)}.grid-stack-item.ui-draggable-dragging>.ui-resizable-handle{display:none!important}.grid-stack-item.ui-draggable-dragging{will-change:left,right,top}.grid-stack-item.ui-resizable-resizing{will-change:width,height}.grid-stack-item.ui-draggable-armed{cursor:move;animation:.25s ease-in-out infinite gs-armed-wiggle}.grid-stack-item>.ui-resizable-handle.ui-resizable-armed{animation:.5s ease-in-out infinite gs-armed-pulse}@keyframes gs-armed-wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-1.5deg)}75%{transform:rotate(1.5deg)}}@keyframes gs-armed-pulse{0%,to{opacity:1}50%{opacity:.3}}.ui-draggable-dragging,.ui-resizable-resizing{z-index:10000}.ui-draggable-dragging>.grid-stack-item-content,.ui-resizable-resizing>.grid-stack-item-content{opacity:.8;box-shadow:1px 4px 6px #0003}.grid-stack-animate,.grid-stack-animate .grid-stack-item{transition:left .3s,right .3s,top .3s,height .3s,width .3s}.grid-stack-animate .grid-stack-item.grid-stack-placeholder,.grid-stack-animate .grid-stack-item.ui-draggable-dragging,.grid-stack-animate .grid-stack-item.ui-resizable-resizing{transition:left,right,top,height,width}.grid-stack>.grid-stack-item[gs-y="0"]{top:0}.grid-stack:not(.grid-stack-rtl)>.grid-stack-item[gs-x="0"]{left:0}.grid-stack.grid-stack-rtl>.grid-stack-item[gs-x="0"]{right:0}.gs-print-show{display:none}@media print{@page gs-landscape{size:landscape}@page gs-portrait{size:portrait}.grid-stack{height:auto!important;display:block!important;position:static!important}.grid-stack>.grid-stack-item{float:left!important;height:auto!important;width:calc(100% * var(--gs-w)/ var(--gs-columns,12))!important;break-inside:avoid!important;page-break-inside:avoid!important;display:block!important;position:static!important;top:auto!important;left:auto!important}.grid-stack>.grid-stack-item>.grid-stack-item-content{white-space:normal!important;height:auto!important;margin-top:var(--gs-item-margin-top)!important;margin-right:var(--gs-item-margin-right)!important;margin-bottom:var(--gs-item-margin-bottom)!important;margin-left:var(--gs-item-margin-left)!important;position:relative!important;inset:auto!important;overflow:visible!important}.gs-print-hide{display:none}.gs-print-show{display:block}.gs-print-avoid-break-after{break-after:avoid!important;page-break-after:avoid!important}.grid-stack>.grid-stack-item.gs-print-hide{display:none!important}.grid-stack>.grid-stack-item[gs-page-break=true],.grid-stack>.grid-stack-item[gs-print-orientation]{float:none!important;clear:both!important}.grid-stack>.grid-stack-item[gs-page-break=true]{page-break-before:always!important;break-before:page!important}.grid-stack>.grid-stack-item[gs-print-orientation=landscape]{page:gs-landscape;min-width:calc(100vmax * var(--gs-w)/ var(--gs-columns,12))!important}.grid-stack>.grid-stack-item[gs-print-orientation=portrait]{page:gs-portrait;min-width:calc(100vmin * var(--gs-w)/ var(--gs-columns,12))!important}.grid-stack>.grid-stack-item[gs-break-inside=true]{float:none!important;clear:both!important;break-inside:auto!important;page-break-inside:auto!important;width:100%!important}.grid-stack>.grid-stack-item>.ui-resizable-handle{display:none!important}}`,oe=({action:e,actionType:t,active:n,items:r,element:i,itemId:a,item:o,deletedId:s,originalElement:c,updatedItems:l})=>({action:e,actionType:t,active:n,items:r,element:i,item:{...o,id:a,filters:o?.filters??[]},...s&&{deletedId:s},...c&&{originalElement:c},...l&&{updatedItems:l}}),w=({target:e,action:t,actionType:n,active:r,items:i,element:a,itemId:o,item:s,deletedId:c,originalElement:l,updatedItems:u})=>{e.dispatchEvent(new CustomEvent(`luzmo-item-grid-item-action`,{detail:oe({action:t,actionType:n,active:r,items:i,element:a,itemId:o,item:s,deletedId:c,originalElement:l,updatedItems:u}),bubbles:!0,composed:!0,cancelable:!0}))},T=({target:e,itemStates:t,updatedItemStates:n,changedItemStates:r})=>{e.dispatchEvent(new CustomEvent(`luzmo-item-grid-item-states-changed`,{detail:{itemStates:t,updatedItemStates:n,changedItemStates:r},bubbles:!0,composed:!0}))},se=({target:e,eventName:t,detail:n})=>{e.dispatchEvent(new CustomEvent(t,{detail:n,bubbles:!0,composed:!0}))},ce=e=>e instanceof Element?e:void 0,le=e=>ce(e)?.closest(`.grid-stack-item`),ue=({event:e,gridItem:t})=>!ce(e.relatedTarget)?.closest(`.grid-item-actions-popover`)&&!t.hasAttribute(`active`),de=({event:e,focusedItemElement:t,removeItemActionsMenuPopover:n})=>{let r=le(e.target);return r?(t&&t!==r&&(t.removeAttribute(`focused`),n(t)),r.setAttribute(`focused`,`true`),r):t},fe=({event:e,focusedItemElement:t,removeItemActionsMenuPopover:n})=>t?ce(e.relatedTarget)?.closest(`luzmo-item-grid-item-actions-menu`)?{focusedItemElement:t,shouldFocusGrid:!1}:(t.removeAttribute(`focused`),n(t),{focusedItemElement:void 0,shouldFocusGrid:!0}):{focusedItemElement:void 0,shouldFocusGrid:!1},pe=({item:e,activeItemElement:t,gridElement:n,removeItemActionsMenuPopover:r})=>{if(e.removeAttribute(`active`),r(e),t===e)n.removeAttribute(`has-active-item`);else return t},me=({event:e,gridElement:t,items:n,state:r,cleanupActiveItem:i,dispatchItemActionEvent:a,createItemActionsMenuPopover:o})=>{e.stopPropagation();let s=e.detail,c=e.target?.closest(`.grid-stack-item`);if(!c)return r;let l=c.getAttribute(`gs-id`),u=n.find(e=>e.id===l);return s.type===`toggle`&&s.action===r.activeItemActionToggle&&c===r.activeItemElement?(r.activeItemElement=void 0,r.activeItemActionToggle=void 0,t.removeAttribute(`has-active-item`),c.removeAttribute(`active`),i(c),l&&a(s.action,s.type,!1,c,l,u),r):(t.querySelectorAll(`.grid-stack-item`).forEach(e=>{e!==c&&i(e)}),s.type===`toggle`?(r.activeItemElement=c,r.activeItemActionToggle=s.action,t.setAttribute(`has-active-item`,`true`),c.setAttribute(`active`,`true`),o(c,[s.action])):r.activeItemElement&&r.activeItemElement!==c&&(r.activeItemElement=void 0,r.activeItemActionToggle=void 0),l&&a(s.action,s.type,s.active,c,l,u),r)},he=({event:e,gridElement:t,hostElement:n,items:r,activeItemActionToggle:i,cleanupActiveItem:a,dispatchItemActionEvent:o})=>{let s=e.composedPath();if(!s.includes(t)&&!s.includes(n))return{activeItemActionToggle:i};let c=t.querySelector(`.grid-stack-item[active]`);if(!c||s.includes(c))return{activeItemActionToggle:i};let l=c.querySelector(`.grid-item-actions-popover`);if(l&&s.includes(l))return{activeItemActionToggle:i};let u=c.getAttribute(`gs-id`),d=r.find(e=>e.id===u);return a(c),i&&u&&o(i,`toggle`,!1,c,u,d),{activeItemActionToggle:void 0}},ge=({gridElement:e,items:t,gridItemData:n,itemId:r,action:i,options:a,state:o,cleanupActiveItem:s,dispatchItemActionEvent:c,createItemActionsMenuPopover:l})=>{if(!n?.element)return{result:void 0,state:o};let u=n.element,d=n.item,f=i===o.activeItemActionToggle&&u===o.activeItemElement,p=a?.active??!f;if(a?.active!==void 0&&p===f)return{result:f,state:o};if(!p)return o.activeItemElement=void 0,o.activeItemActionToggle=void 0,e.removeAttribute(`has-active-item`),u.removeAttribute(`active`),s(u),c(i,`toggle`,!1,u,r,d),{result:!1,state:o};if(o.activeItemElement&&o.activeItemElement!==u){let e=o.activeItemElement.getAttribute(`gs-id`),n=t.find(t=>t.id===e),r=o.activeItemActionToggle,i=o.activeItemElement;s(o.activeItemElement),o.activeItemElement=void 0,o.activeItemActionToggle=void 0,r&&e&&n&&c(r,`toggle`,!1,i,e,n)}return o.activeItemElement=u,o.activeItemActionToggle=i,e.setAttribute(`has-active-item`,`true`),u.setAttribute(`active`,`true`),l(u,[i]),c(i,`toggle`,!0,u,r,d),{result:!0,state:o}},_e=({gridElement:e,items:t,state:n,cleanupActiveItem:r,dispatchItemActionEvent:i})=>{let a=0;if(n.activeItemElement&&n.activeItemActionToggle){let o=n.activeItemElement.getAttribute(`gs-id`),s=t.find(e=>e.id===o),c=n.activeItemActionToggle,l=n.activeItemElement;r(n.activeItemElement),n.activeItemElement=void 0,n.activeItemActionToggle=void 0,e.removeAttribute(`has-active-item`),c&&o&&s&&(i(c,`toggle`,!1,l,o,s),a++)}return{deactivatedCount:a,state:n}},ve={sizeX:1,sizeY:1,col:0,row:0},ye=e=>{e.forEach(e=>{if(!e.id)throw Error(`Grid item id is required`)})},be=e=>{if(!e.id)throw Error(`Grid item id is required`);return e.id},xe=(e,t)=>({id:t,x:e?.position?.col??0,y:e?.position?.row??0,w:e?.position?.sizeX??1,h:e?.position?.sizeY??1}),Se=(e,t)=>({...structuredClone(e),id:t,position:{...ve,...structuredClone(e.position)},canFilter:e.canFilter??`all`}),Ce=(e,t)=>{if(t){for(let n of e)if(n.getAttribute(`luzmo-item-grid-item-id`)===t)return n}},we=(e,t)=>e.map(e=>({item:e,element:t.querySelector(`[gs-id="${CSS.escape(e.id)}"]`)})),Te=({item:e,engine:t,existingItems:n,autoPosition:r,excludeNodeId:i})=>{let a=e.position,o=i?t.nodes.filter(e=>e.id!==i):t.nodes,s=new t.constructor({column:t.column,mode:t.mode,nodes:o.map(e=>({...e}))}),c={x:a.col,y:a.row,w:a.sizeX,h:a.sizeY,id:e.id,autoPosition:r};s.addNode(c);let l={...e,position:{col:c.x??a.col,row:c.y??a.row,sizeX:c.w??a.sizeX,sizeY:c.h??a.sizeY}};return{resolvedItem:l,updatedItems:[...n.map(e=>{let t=s.nodes.find(t=>t.id===e.id);return t&&t.x!=null&&t.y!=null&&t.w!=null&&t.h!=null?{...e,position:{col:t.x,row:t.y,sizeX:t.w,sizeY:t.h}}:e}),l]}},Ee=({itemId:e,patch:t,engine:n,existingItems:r})=>{let i=r.find(t=>t.id===e);if(!i?.position)return r;let{resolvedItem:a,updatedItems:o}=Te({item:{...i,position:{...i.position,...t}},engine:n,existingItems:r.filter(t=>t.id!==e),autoPosition:!1,excludeNodeId:e});return r.map(t=>t.id===e?a:o.find(e=>e.id===t.id)??t)},De=e=>Se(e,e.id),Oe=Math.min,E=Math.max,ke=Math.round,Ae=Math.floor,D=e=>({x:e,y:e}),je={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function Me(e,t){return typeof e==`function`?e(t):e}function O(e){return e.split(`-`)[0]}function Ne(e){return e.split(`-`)[1]}function Pe(e){return e===`x`?`y`:`x`}function Fe(e){return e===`y`?`height`:`width`}function k(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function Ie(e){return Pe(k(e))}function Le(e,t,n){n===void 0&&(n=!1);let r=Ne(e),i=Ie(e),a=Fe(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Ke(o)),[o,Ke(o)]}function Re(e){let t=Ke(e);return[ze(e),t,ze(t)]}function ze(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var Be=[`left`,`right`],Ve=[`right`,`left`],He=[`top`,`bottom`],Ue=[`bottom`,`top`];function We(e,t,n){switch(e){case`top`:case`bottom`:return n?t?Ve:Be:t?Be:Ve;case`left`:case`right`:return t?He:Ue;default:return[]}}function Ge(e,t,n,r){let i=Ne(e),a=We(O(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(ze)))),a}function Ke(e){let t=O(e);return je[t]+e.slice(t.length)}function qe(e){return{top:0,right:0,bottom:0,left:0,...e}}function Je(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:qe(e)}function Ye(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Xe(e,t,n){let{reference:r,floating:i}=e,a=k(t),o=Ie(t),s=Fe(o),c=O(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(Ne(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1)}return p}async function Ze(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=Me(t,e),p=Je(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=Ye(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=Ye(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var Qe=50,$e=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Ze},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Xe(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<Qe&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=Xe(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},et=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=Me(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=O(r),_=k(o),v=O(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[Ke(o)]:Re(o)),x=p!==`none`;!d&&x&&b.push(...Ge(o,m,p,y));let ee=[o,...b],te=await s.detectOverflow(t,h),S=[],C=i.flip?.overflows||[];if(l&&S.push(te[g]),u){let e=Le(r,a,y);S.push(te[e[0]],te[e[1]])}if(C=[...C,{placement:r,overflows:S}],!S.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=ee[e];if(t&&(u!==`alignment`||_===k(t)||C.every(e=>k(e.placement)!==_||e.overflows[0]>0)))return{data:{index:e,overflows:C},reset:{placement:t}};let n=C.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=C.filter(e=>{if(x){let t=k(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}},tt=/*#__PURE__*/ new Set([`left`,`top`]);async function nt(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=O(n),s=Ne(n),c=k(n)===`y`,l=tt.has(o)?-1:1,u=a&&c?-1:1,d=Me(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var rt=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await nt(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}};function it(){return typeof window<`u`}function A(e){return at(e)?(e.nodeName||``).toLowerCase():`#document`}function j(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function M(e){return((at(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function at(e){return it()?e instanceof Node||e instanceof j(e).Node:!1}function N(e){return it()?e instanceof Element||e instanceof j(e).Element:!1}function P(e){return it()?e instanceof HTMLElement||e instanceof j(e).HTMLElement:!1}function ot(e){return!it()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof j(e).ShadowRoot}function st(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=L(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function ct(e){return/^(table|td|th)$/.test(A(e))}function lt(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var ut=/transform|translate|scale|rotate|perspective|filter/,dt=/paint|layout|strict|content/,F=e=>!!e&&e!==`none`,ft;function pt(e){let t=N(e)?L(e):e;return F(t.transform)||F(t.translate)||F(t.scale)||F(t.rotate)||F(t.perspective)||!ht()&&(F(t.backdropFilter)||F(t.filter))||ut.test(t.willChange||``)||dt.test(t.contain||``)}function mt(e){let t=R(e);for(;P(t)&&!I(t);){if(pt(t))return t;if(lt(t))return null;t=R(t)}return null}function ht(){return ft??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),ft}function I(e){return/^(html|body|#document)$/.test(A(e))}function L(e){return j(e).getComputedStyle(e)}function gt(e){return N(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function R(e){if(A(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||ot(e)&&e.host||M(e);return ot(t)?t.host:t}function _t(e){let t=R(e);return I(t)?e.ownerDocument?e.ownerDocument.body:e.body:P(t)&&st(t)?t:_t(t)}function vt(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=_t(e),i=r===e.ownerDocument?.body,a=j(r);if(i){let e=yt(a);return t.concat(a,a.visualViewport||[],st(r)?r:[],e&&n?vt(e):[])}return t.concat(r,vt(r,[],n))}function yt(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function bt(e){let t=L(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=P(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=ke(n)!==a||ke(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function xt(e){return N(e)?e:e.contextElement}function z(e){let t=xt(e);if(!P(t))return D(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=bt(t),o=(a?ke(n.width):n.width)/r,s=(a?ke(n.height):n.height)/i;return o&&Number.isFinite(o)||(o=1),s&&Number.isFinite(s)||(s=1),{x:o,y:s}}var St=/*#__PURE__*/ D(0);function Ct(e){let t=j(e);return!ht()||!t.visualViewport?St:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function wt(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==j(e)?!1:t}function B(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=xt(e),o=D(1);t&&(r?N(r)&&(o=z(r)):o=z(e));let s=wt(a,n,r)?Ct(a):D(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=j(a),t=r&&N(r)?j(r):r,n=e,i=yt(n);for(;i&&r&&t!==n;){let e=z(i),t=i.getBoundingClientRect(),r=L(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=j(i),i=yt(n)}}return Ye({width:u,height:d,x:c,y:l})}function Tt(e,t){let n=gt(e).scrollLeft;return t?t.left+n:B(M(e)).left+n}function Et(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-Tt(e,n),y:n.top+t.scrollTop}}function Dt(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=M(r),s=t?lt(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=D(1),u=D(0),d=P(r);if((d||!d&&!a)&&((A(r)!==`body`||st(o))&&(c=gt(r)),d)){let e=B(r);l=z(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?Et(o,c):D(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function Ot(e){return Array.from(e.getClientRects())}function kt(e){let t=M(e),n=gt(e),r=e.ownerDocument.body,i=E(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=E(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+Tt(e),s=-n.scrollTop;return L(r).direction===`rtl`&&(o+=E(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var At=25;function jt(e,t){let n=j(e),r=M(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=ht();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=Tt(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=At&&(a-=o)}else l<=At&&(a+=l);return{width:a,height:o,x:s,y:c}}function Mt(e,t){let n=B(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=P(e)?z(e):D(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function Nt(e,t,n){let r;if(t===`viewport`)r=jt(e,n);else if(t===`document`)r=kt(M(e));else if(N(t))r=Mt(t,n);else{let n=Ct(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Ye(r)}function Pt(e,t){let n=R(e);return n===t||!N(n)||I(n)?!1:L(n).position===`fixed`||Pt(n,t)}function Ft(e,t){let n=t.get(e);if(n)return n;let r=vt(e,[],!1).filter(e=>N(e)&&A(e)!==`body`),i=null,a=L(e).position===`fixed`,o=a?R(e):e;for(;N(o)&&!I(o);){let t=L(o),n=pt(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||st(o)&&!n&&Pt(e,o))?r=r.filter(e=>e!==o):i=t,o=R(o)}return t.set(e,r),r}function It(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?lt(t)?[]:Ft(t,this._c):[].concat(n),r],o=Nt(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=Nt(t,a[e],i);s=E(n.top,s),c=Oe(n.right,c),l=Oe(n.bottom,l),u=E(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function Lt(e){let{width:t,height:n}=bt(e);return{width:t,height:n}}function Rt(e,t,n){let r=P(t),i=M(t),a=n===`fixed`,o=B(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=D(0);function l(){c.x=Tt(i)}if(r||!r&&!a){if((A(t)!==`body`||st(i))&&(s=gt(t)),r){let e=B(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l()}a&&!r&&i&&l();let u=i&&!r&&!a?Et(i,s):D(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function zt(e){return L(e).position===`static`}function Bt(e,t){if(!P(e)||L(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return M(e)===n&&(n=n.ownerDocument.body),n}function Vt(e,t){let n=j(e);if(lt(e))return n;if(!P(e)){let t=R(e);for(;t&&!I(t);){if(N(t)&&!zt(t))return t;t=R(t)}return n}let r=Bt(e,t);for(;r&&ct(r)&&zt(r);)r=Bt(r,t);return r&&I(r)&&zt(r)&&!pt(r)?n:r||mt(e)||n}var Ht=async function(e){let t=this.getOffsetParent||Vt,n=this.getDimensions,r=await n(e.floating);return{reference:Rt(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Ut(e){return L(e).direction===`rtl`}var Wt={convertOffsetParentRelativeRectToViewportRelativeRect:Dt,getDocumentElement:M,getClippingRect:It,getOffsetParent:Vt,getElementRects:Ht,getClientRects:Ot,getDimensions:Lt,getScale:z,isElement:N,isRTL:Ut};function Gt(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Kt(e,t){let n=null,r,i=M(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let l=e.getBoundingClientRect(),{left:u,top:d,width:f,height:p}=l;if(s||t(),!f||!p)return;let m=Ae(d),h=Ae(i.clientWidth-(u+f)),g=Ae(i.clientHeight-(d+p)),_=Ae(u),v={rootMargin:-m+`px `+-h+`px `+-g+`px `+-_+`px`,threshold:E(0,Oe(1,c))||1},y=!0;function b(t){let n=t[0].intersectionRatio;if(n!==c){if(!y)return o();n?o(!1,n):r=setTimeout(()=>{o(!1,1e-7)},1e3)}n===1&&!Gt(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function qt(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=xt(e),u=i||a?[...l?vt(l):[],...t?vt(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?Kt(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?B(e):null;c&&g();function g(){let t=B(e);h&&!Gt(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var Jt=rt,Yt=et,Xt=(e,t,n)=>{let r=/* @__PURE__ */ new Map,i={platform:Wt,...n},a={...i.platform,_c:r};return $e(e,t,{...i,platform:a})},Zt=/* @__PURE__ */ new WeakMap,Qt=(e,t)=>{$t(e),Zt.set(e,t)},$t=e=>{let t=Zt.get(e);t&&(t(),Zt.delete(e))},en=({element:e,activeActions:t,getGridItemById:n,placementItemActionsMenu:r,renderOverlayContent:i,removeItemActionsMenuPopover:a,itemActionsDocumentPopover:o=!0})=>{let s=e.querySelector(`.grid-item-actions-popover`),c=e.querySelector(`.grid-stack-item-content`),l=n(e.getAttribute(`gs-id`)??``);if(t&&t.length>0&&s&&(a(e),s=null),!s){let n=document.createDocumentFragment();if(b(i(l?.item,t),n),s=n.querySelector(`.grid-item-actions-popover`),!s)return;e.append(s)}let u=o?`absolute`:`fixed`,d=qt(c,s,async()=>{let{x:e,y:t}=await Xt(c,s,{placement:l?.item?.placementActionsMenu??r??`right-start`,strategy:u,middleware:[Jt(0),Yt({crossAxis:!1})]});s.style.left=`${e}px`,s.style.top=`${t}px`,o||(s.style.position=`fixed`,s.style.right=`auto`,s.style.bottom=`auto`,s.style.margin=`0`)});Qt(s,d),o&&s.isConnected&&!s.matches(`:popover-open`)&&s.showPopover()},tn=e=>{let t=e.querySelector(`.grid-item-actions-popover`);t&&($t(t),t.hasAttribute(`popover`)&&t.matches(`:popover-open`)&&t.hidePopover(),t.remove())},nn=e=>e===`ArrowLeft`||e===`ArrowRight`||e===`ArrowUp`||e===`ArrowDown`,rn=({key:e,node:t,maxColumns:n,shiftKey:r,ctrlKey:i,metaKey:a})=>{let o={ArrowLeft:{move:{x:t.x-1},resize:{x:t.x-1,w:t.w+1},shrink:{w:t.w-1},canMove:t.x>0,canResize:t.x>0,canShrink:t.w>1},ArrowRight:{move:{x:t.x+1},resize:{w:t.w+1},shrink:{x:t.x+1,w:t.w-1},canMove:t.x<n-t.w,canResize:t.x+t.w<n,canShrink:t.w>1},ArrowUp:{move:{y:t.y-1},resize:{y:t.y-1,h:t.h+1},shrink:{h:t.h-1},canMove:t.y>0,canResize:t.y>0,canShrink:t.h>1},ArrowDown:{move:{y:t.y+1},resize:{h:t.h+1},shrink:{y:t.y+1,h:t.h-1},canMove:!0,canResize:!0,canShrink:t.h>1}}[e];if(r&&o.canResize)return o.resize;if((i||a)&&o.canShrink)return o.shrink;if(o.canMove)return o.move},an=({event:e,viewMode:t,focusedItemElement:n,activeItemElement:r,gridElement:i,grid:a,columns:o,onDeleteRequest:s,removeItemActionsMenuPopover:c,createItemActionsMenuPopover:l})=>{if(t)return{focusedItemElement:n,activeItemElement:r};let u=n,d=r;if(e.key===`Delete`&&n){let e=n.nextElementSibling??n.previousElementSibling;s(n),u=e??void 0,u?requestAnimationFrame(()=>u?.focus()):i.focus(),r===n&&(d=void 0)}else if(e.key===`Escape`&&n)n.removeAttribute(`focused`),c(n),u=void 0,i.focus();else if(e.key===`Enter`&&n)e.preventDefault(),e.stopPropagation(),r&&(r.removeAttribute(`active`),i.removeAttribute(`has-active-item`),c(r),d=void 0),i.querySelectorAll(`.grid-stack-item`).forEach(e=>{e!==n&&c(e)}),l(n),requestAnimationFrame(()=>{let e=n.querySelector(`luzmo-item-grid-item-actions-menu`);e&&e.focus()});else if(n&&a&&nn(e.key)){e.preventDefault(),e.stopPropagation();let t=n.gridstackNode;if(!t)return{focusedItemElement:u,activeItemElement:d};let r=rn({key:e.key,node:t,maxColumns:o,shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey});r&&a.update(n,r)}return{focusedItemElement:u,activeItemElement:d}},on=16,sn=10,V=(e,t)=>t>=1?`rgba(${e.r},${e.g},${e.b},1)`:t<=0?`rgba(${e.r},${e.g},${e.b},0)`:`rgba(${e.r},${e.g},${e.b},${t})`,cn=e=>[(e?.margins?.[0]??on)/2,(e?.margins?.[1]??on)/2],ln=e=>sn-(e?.margins?.[0]??sn),un=e=>{let t=e?.boxShadow;if(!t)return``;let n=new u(t.color),r={r:Math.round(n.srgb.r*255),g:Math.round(n.srgb.g*255),b:Math.round(n.srgb.b*255)},i=e?.margins?.[0]??on,a=Math.min(i/10,2);return t.size===`none`?`none`:t.size===`S`?`0 ${a*2}px ${a*4}px ${V(r,.16)}, 0 ${a*2}px ${a*4}px ${V(r,.23)}`:t.size===`M`?`0 ${a*8}px ${a*16}px ${V(r,.19)}, 0 ${a*4}px ${a*4}px ${V(r,.23)}`:t.size===`L`?`0 ${a*12}px ${a*24}px ${V(r,.25)}, 0 ${a*8}px ${a*8}px ${V(r,.22)}`:``},dn=e=>{let t=un(e);return/* @__PURE__ */ new Map([[`--grid-font-family`,e?.font?.fontFamily],[`--grid-background`,e?.background],[`--grid-item-box-shadow`,t],[`--grid-item-background`,e?.itemsBackground],[`--grid-item-border-color`,e?.borders?.[`border-color`]],[`--grid-item-border-style`,e?.borders?.[`border-style`]],[`--grid-item-border-radius`,e?.borders?.[`border-radius`]],[`--grid-item-border-width`,`${e?.borders?.[`border-top-width`]}`],[`--grid-item-border-top-width`,e?.borders?.[`border-top-width`]],[`--grid-item-border-right-width`,e?.borders?.[`border-right-width`]],[`--grid-item-border-bottom-width`,e?.borders?.[`border-bottom-width`]],[`--grid-item-border-left-width`,e?.borders?.[`border-left-width`]]])},fn=e=>{let t=e?.itemsBackground??e?.background;return t?new u(t).luminance<.5:!1},pn=(e,t)=>{t&&dn(t).forEach((t,n)=>{t?e.setProperty(n,t):e.removeProperty(n)})},mn=({item:t,index:r,initialized:i,viewMode:o,renderItemContent:s,handleMouseover:c,handleMouseout:l,handleFocus:u,handleBlur:d})=>{let f=!o;return h`
23
23
  <div
24
24
  class="luzmo-item-grid-item has-luzmo-viz-item"
25
- luzmo-item-grid-item-id=${n.id??``}
25
+ luzmo-item-grid-item-id=${t.id??``}
26
26
  tabindex="0"
27
27
  role="row"
28
28
  @mouseover=${c}
@@ -33,7 +33,7 @@ import{a as e,i as t,n,r}from"./chunks/version-BW4Ixl63.js";import{t as i}from".
33
33
  <div
34
34
  class="grid-stack-item-content"
35
35
  role="gridcell"
36
- aria-label=${t(e`Grid item ${r+1}`,{desc:`Accessible label for a grid item with its position`})}
36
+ aria-label=${n(e`Grid item ${r+1}`,{desc:`Accessible label for a grid item with its position`})}
37
37
  >
38
38
  ${f?h`
39
39
  <div class="grid-item-drag-handle">
@@ -42,18 +42,18 @@ import{a as e,i as t,n,r}from"./chunks/version-BW4Ixl63.js";import{t as i}from".
42
42
  `:h`
43
43
 
44
44
  `}
45
- ${i?s(n,r):h`
45
+ ${i?s(t,r):h`
46
46
 
47
47
  `}
48
48
  </div>
49
49
  </div>
50
- `},hn=({items:e,initialized:t,viewMode:n,fullTheme:r,renderItem:i,renderDependencies:a})=>x(e,e=>e.id,(e,o)=>m([e,t,n,r,...a],()=>i(e,o))),gn=({items:e,initialized:n,viewMode:r,fullTheme:i,columns:a,renderItemContent:o,renderDependencies:s,ensureGridItemId:c,handleMouseover:l,handleMouseout:u,handleFocus:d,handleBlur:f})=>{e.forEach(e=>{c(e)});let p=hn({items:e,initialized:n,viewMode:r,fullTheme:i,renderDependencies:s,renderItem:(e,t)=>mn({item:e,index:t,initialized:n,viewMode:r,renderItemContent:o,handleMouseover:l,handleMouseout:u,handleFocus:d,handleBlur:f})}),m=n?fn(i):!1;return h`
50
+ `},hn=({items:e,initialized:t,viewMode:n,fullTheme:r,renderItem:i,renderDependencies:a})=>x(e,e=>e.id,(e,o)=>m([e,t,n,r,...a],()=>i(e,o))),gn=({items:e,initialized:t,viewMode:r,fullTheme:i,columns:a,renderItemContent:o,renderDependencies:s,ensureGridItemId:c,handleMouseover:l,handleMouseout:u,handleFocus:d,handleBlur:f})=>{e.forEach(e=>{c(e)});let p=hn({items:e,initialized:t,viewMode:r,fullTheme:i,renderDependencies:s,renderItem:(e,n)=>mn({item:e,index:n,initialized:t,viewMode:r,renderItemContent:o,handleMouseover:l,handleMouseout:u,handleFocus:d,handleBlur:f})}),m=t?fn(i):!1;return h`
51
51
  <div
52
52
  ?dark-background=${m}
53
53
  class="grid-stack"
54
54
  data-grid-columns=${a}
55
55
  role="grid"
56
- aria-label=${t(`Dashboard grid`,{desc:`Accessible label for the dashboard grid`})}
56
+ aria-label=${n(`Dashboard grid`,{desc:`Accessible label for the dashboard grid`})}
57
57
  >
58
58
  ${p}
59
59
  </div>
@@ -67,7 +67,7 @@ Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the
67
67
 
68
68
  `}getItemRenderDependencies(){return[]}resolveTheme(e,t){return Promise.resolve(e?structuredClone(e):t)}get resolvedTheme(){return this._fullTheme}renderOverlayContent(e,t){return h`
69
69
 
70
- `}_createItemActionsMenuPopover(e,t){en({element:e,activeActions:t,getGridItemById:this.getGridItemById.bind(this),placementItemActionsMenu:this.placementItemActionsMenu,renderOverlayContent:this.renderOverlayContent.bind(this),removeItemActionsMenuPopover:this._removeItemActionsMenuPopover.bind(this),itemActionsDocumentPopover:this.itemActionsDocumentPopover})}_removeItemActionsMenuPopover(e){tn(e)}getGridItemById(e){return this.gridItems.find(t=>t.item.id===e)}scrollToItem(e){let t=this.getGridItemById(e);if(!t?.element)return;let n=t.element.getBoundingClientRect();(n.bottom>window.innerHeight||n.top<0)&&t.element.scrollIntoView({behavior:`smooth`,block:`center`})}_createMissingItemError(e){return/* @__PURE__ */ Error(`Grid item with id "${e}" not found`)}_requireGridItem(e){let t=this._effectiveItems.find(t=>t.id===e);if(!t)throw this._createMissingItemError(e);return t}_resolvePositionFromEngine(e){let t=this._grid?.engine.nodes.find(t=>t.id===e);if(t&&t.x!=null&&t.y!=null&&t.w!=null&&t.h!=null)return{col:t.x,row:t.y,sizeX:t.w,sizeY:t.h}}_requireGridItemWithPosition(e){let t=this._requireGridItem(e);if(!t.position){let n=this._resolvePositionFromEngine(e);if(!n)throw Error(`Grid item with id "${e}" does not have a position`);return{...t,position:n}}return t}_assertAddItemHasId(e){if(!e.id)throw Error(`addGridItem requires newItem.id`)}addGridItem(e){if(this._assertAddItemHasId(e),this._effectiveItems.some(t=>t.id===e.id))throw Error(`addGridItem rejected: an item with id "${e.id}" already exists`);let t=De(e),n=this._effectiveItems;if(!this._grid){let r=e.position?.col==null||e.position?.row==null?{...t,position:void 0}:t,i=[...n,r];return this._isItemsControlled||this._setInternalItems(i,{reconcileStates:!0}),i}if(!t.position){let e=[...n,t];return this._isItemsControlled||this._setInternalItems(e,{reconcileStates:!0}),e}let r=e.position?.col==null||e.position?.row==null,{updatedItems:i}=Te({item:t,engine:this._grid.engine,existingItems:n,autoPosition:r});return this._isItemsControlled||this._setInternalItems(i,{reconcileStates:!0}),i}_enrichItemsWithEnginePositions(e){return this._grid?e.map(e=>{if(e.position)return e;let t=this._resolvePositionFromEngine(e.id);return t?{...e,position:t}:e}):e}_updateGridItemPosition(e,t){let n=this._effectiveItems,r=this._requireGridItemWithPosition(e);return n.map(n=>{if(n.id!==e)return n;let i=n.position??r.position;return{...n,position:{...i,...t}}})}_dispatchLayoutChangedEvent(e,t){se({target:this,eventName:`luzmo-item-grid-layout-changed`,detail:{element:this._gridElement,grid:this._grid,items:e,updatedItems:t}})}_updateItemField(e,t){let n=this._effectiveItems;this._requireGridItem(e);let r=n.map(n=>n.id===e?{...n,...t}:n);return this._isItemsControlled||this._setInternalItems(r,{reconcileStates:!0}),r}removeGridItem(e){let t=this._effectiveItems,n=this._requireGridItem(e),r=t.filter(t=>t.id!==e);return w({target:this,action:`delete`,actionType:`button`,active:!1,items:t,element:this.getGridItemById(e)?.element??this,itemId:e,item:n,updatedItems:r}),this._isItemsControlled||this._setInternalItems(r,{reconcileStates:!0}),r}cloneGridItem(e){let t=this._effectiveItems,n=this._requireGridItem(e),r={...structuredClone(n),id:d()},i=this._simulateCloneLayout(r,n),a=i.find(e=>e.id===r.id)??r;return w({target:this,action:`clone`,actionType:`button`,active:!1,items:t,element:this.getGridItemById(e)?.element??this,itemId:r.id,item:a,originalElement:this.getGridItemById(e)?.element,updatedItems:i}),this._isItemsControlled||this._setInternalItems(i,{reconcileStates:!0}),i}updateGridItemPosition(e,t){let n=this._updateGridItemPosition(e,t);return this._dispatchLayoutChangedEvent(this._effectiveItems,n),this._isItemsControlled||this._setInternalItems(n,{reconcileStates:!0}),n}updateGridItemSize(e,t){let n=this._updateGridItemPosition(e,t);return this._dispatchLayoutChangedEvent(this._effectiveItems,n),this._isItemsControlled||this._setInternalItems(n,{reconcileStates:!0}),n}updateGridItemSlots(e,t){return this._updateItemField(e,{slots:t})}updateGridItemOptions(e,t){return this._updateItemField(e,{options:t})}updateGridItemFilters(e,t){return this._updateItemField(e,{filters:t})}updateGridItemType(e,t){return this._updateItemField(e,{type:t})}updateGridItem(e,t){let n=this._effectiveItems;this._requireGridItem(e);let{position:r,...i}=t,a;return r&&this._grid?(a=Ee({itemId:e,patch:r,engine:this._grid.engine,existingItems:this._enrichItemsWithEnginePositions(n)}),a=a.map(t=>t.id===e?{...t,...i}:t)):a=n.map(t=>t.id===e?{...t,...i,...r&&t.position?{position:{...t.position,...r}}:r?{position:r}:{}}:t),t.position&&this._dispatchLayoutChangedEvent(n,a),this._isItemsControlled||this._setInternalItems(a,{reconcileStates:!0}),a}async triggerItemAction(e,t,n){await this.updateComplete;let r=this.getGridItemById(e);if(!r?.element){console.warn(`Grid item with id "${e}" not found`);return}if(this._isControlled)return this._triggerControlledItemAction(e,t,n);this._suppressItemStatesEvent=!0;let i=ge({gridElement:this._gridElement,items:this.items,gridItemData:r,itemId:e,action:t,options:n,state:{activeItemElement:this._activeItemElement,activeItemActionToggle:this._activeItemActionToggle},cleanupActiveItem:this._cleanupActiveItem.bind(this),dispatchItemActionEvent:this._dispatchItemActionEvent.bind(this),createItemActionsMenuPopover:this._createItemActionsMenuPopover.bind(this)});if(this._suppressItemStatesEvent=!1,this._activeItemElement=i.state.activeItemElement,this._activeItemActionToggle=i.state.activeItemActionToggle,i.result!==void 0){let n=this._effectiveItemStates,r=this._computeNextItemStates(e,t,i.result);this._internalItemStates=r,T({target:this,itemStates:n,updatedItemStates:r,changedItemStates:this._diffItemStates(n,r)})}return i.result}activateItemAction(e,t,n){return this.triggerItemAction(e,t,n)}_triggerControlledItemAction(e,t,n){let r=(this._effectiveItemStates[e]??[]).includes(t),i=n?.active??!r;if(n?.active!==void 0&&i===r)return r;let a=this._effectiveItemStates,o=this._computeNextItemStates(e,t,i);return T({target:this,itemStates:a,updatedItemStates:o,changedItemStates:{[e]:[t]}}),i}deactivateItems(){if(this._isControlled){let e=this._effectiveItemStates,t=Object.entries(e).flatMap(([e,t])=>t.map(t=>({itemId:e,action:t})));if(t.length===0)return 0;let n={},r={...e};for(let e of t)r=this._computeNextItemStates(e.itemId,e.action,!1,r),n[e.itemId]=[...n[e.itemId]??[],e.action];return T({target:this,itemStates:e,updatedItemStates:r,changedItemStates:n}),new Set(t.map(e=>e.itemId)).size}let e=this._effectiveItemStates,t=Object.entries(e).flatMap(([e,t])=>t.map(t=>({itemId:e,action:t})));this._suppressItemStatesEvent=!0;let n=_e({gridElement:this._gridElement,items:this.items,state:{activeItemElement:this._activeItemElement,activeItemActionToggle:this._activeItemActionToggle},cleanupActiveItem:this._cleanupActiveItem.bind(this),dispatchItemActionEvent:this._dispatchItemActionEvent.bind(this)});if(this._suppressItemStatesEvent=!1,this._activeItemElement=n.state.activeItemElement,this._activeItemActionToggle=n.state.activeItemActionToggle,this._isControlled||(this._internalItemStates={}),t.length>0){let n={};for(let e of t)n[e.itemId]=[...n[e.itemId]??[],e.action];T({target:this,itemStates:e,updatedItemStates:{},changedItemStates:n})}return n.deactivatedCount}_renderGrid(){return gn({items:this.items,initialized:this._initialized,viewMode:this.viewMode,fullTheme:this._fullTheme,columns:this.columns??48,renderItemContent:this.renderItemContent.bind(this),renderDependencies:this.getItemRenderDependencies(),ensureGridItemId:e=>be(e),handleMouseover:this._handleMouseover.bind(this),handleMouseout:this._handleMouseout,handleFocus:this._handleFocus,handleBlur:this._handleBlur})}render(){return this._renderGrid()}};r([_({type:String,reflect:!0})],X.prototype,`language`,void 0),r([_({type:String,attribute:`content-language`,reflect:!0})],X.prototype,`contentLanguage`,void 0),r([_({type:Number,reflect:!0})],X.prototype,`columns`,void 0),r([_({type:Number,reflect:!0,attribute:`row-height`})],X.prototype,`rowHeight`,void 0),r([_({type:Boolean,reflect:!0,attribute:`view-mode`})],X.prototype,`viewMode`,void 0),r([_({type:Boolean,reflect:!0,attribute:`item-actions-document-popover`})],X.prototype,`itemActionsDocumentPopover`,void 0),r([_({type:String,reflect:!0,attribute:`placement-item-actions-menu`})],X.prototype,`placementItemActionsMenu`,void 0),r([_({type:Array,reflect:!0,attribute:`default-item-actions-menu`})],X.prototype,`defaultItemActionsMenu`,void 0),r([_({type:String,reflect:!0,attribute:`cloned-item-positioning`})],X.prototype,`clonedItemPositioning`,void 0),r([_({type:Object,reflect:!0})],X.prototype,`theme`,void 0),r([_({type:Array,reflect:!1})],X.prototype,`items`,null),r([_({type:Array,reflect:!1,attribute:`initial-items`})],X.prototype,`initialItems`,null),r([_({type:Object,reflect:!1})],X.prototype,`renderers`,void 0),r([_({type:Object,reflect:!1,attribute:`item-states`})],X.prototype,`itemStates`,null),r([_({type:Object,reflect:!1,attribute:`initial-item-states`})],X.prototype,`initialItemStates`,void 0),r([ee()],X.prototype,`_initialized`,void 0),r([v(`.grid-stack`)],X.prototype,`_gridElement`,void 0),r([y(`.luzmo-item-grid-item`)],X.prototype,`_gridItemElements`,void 0),r([ee()],X.prototype,`_internalItemsVersion`,void 0);var Kn=(e,{appServer:t,apiHost:n,authKey:r,authToken:i,contentLanguage:a,fullTheme:o})=>{let s={...e.options,locale:a};return s.theme||=o?.id?{id:o.id}:structuredClone(o),h` <luzmo-embed-viz-item
70
+ `}_createItemActionsMenuPopover(e,t){en({element:e,activeActions:t,getGridItemById:this.getGridItemById.bind(this),placementItemActionsMenu:this.placementItemActionsMenu,renderOverlayContent:this.renderOverlayContent.bind(this),removeItemActionsMenuPopover:this._removeItemActionsMenuPopover.bind(this),itemActionsDocumentPopover:this.itemActionsDocumentPopover})}_removeItemActionsMenuPopover(e){tn(e)}getGridItemById(e){return this.gridItems.find(t=>t.item.id===e)}scrollToItem(e){let t=this.getGridItemById(e);if(!t?.element)return;let n=t.element.getBoundingClientRect();(n.bottom>window.innerHeight||n.top<0)&&t.element.scrollIntoView({behavior:`smooth`,block:`center`})}_createMissingItemError(e){return/* @__PURE__ */ Error(`Grid item with id "${e}" not found`)}_requireGridItem(e){let t=this._effectiveItems.find(t=>t.id===e);if(!t)throw this._createMissingItemError(e);return t}_resolvePositionFromEngine(e){let t=this._grid?.engine.nodes.find(t=>t.id===e);if(t&&t.x!=null&&t.y!=null&&t.w!=null&&t.h!=null)return{col:t.x,row:t.y,sizeX:t.w,sizeY:t.h}}_requireGridItemWithPosition(e){let t=this._requireGridItem(e);if(!t.position){let n=this._resolvePositionFromEngine(e);if(!n)throw Error(`Grid item with id "${e}" does not have a position`);return{...t,position:n}}return t}_assertAddItemHasId(e){if(!e.id)throw Error(`addGridItem requires newItem.id`)}addGridItem(e){if(this._assertAddItemHasId(e),this._effectiveItems.some(t=>t.id===e.id))throw Error(`addGridItem rejected: an item with id "${e.id}" already exists`);let t=De(e),n=this._effectiveItems;if(!this._grid){let r=e.position?.col==null||e.position?.row==null?{...t,position:void 0}:t,i=[...n,r];return this._isItemsControlled||this._setInternalItems(i,{reconcileStates:!0}),i}if(!t.position){let e=[...n,t];return this._isItemsControlled||this._setInternalItems(e,{reconcileStates:!0}),e}let r=e.position?.col==null||e.position?.row==null,{updatedItems:i}=Te({item:t,engine:this._grid.engine,existingItems:n,autoPosition:r});return this._isItemsControlled||this._setInternalItems(i,{reconcileStates:!0}),i}_enrichItemsWithEnginePositions(e){return this._grid?e.map(e=>{if(e.position)return e;let t=this._resolvePositionFromEngine(e.id);return t?{...e,position:t}:e}):e}_updateGridItemPosition(e,t){let n=this._effectiveItems,r=this._requireGridItemWithPosition(e);return n.map(n=>{if(n.id!==e)return n;let i=n.position??r.position;return{...n,position:{...i,...t}}})}_dispatchLayoutChangedEvent(e,t){se({target:this,eventName:`luzmo-item-grid-layout-changed`,detail:{element:this._gridElement,grid:this._grid,items:e,updatedItems:t}})}_updateItemField(e,t){let n=this._effectiveItems;this._requireGridItem(e);let r=n.map(n=>n.id===e?{...n,...t}:n);return this._isItemsControlled||this._setInternalItems(r,{reconcileStates:!0}),r}removeGridItem(e){let t=this._effectiveItems,n=this._requireGridItem(e),r=t.filter(t=>t.id!==e);return w({target:this,action:`delete`,actionType:`button`,active:!1,items:t,element:this.getGridItemById(e)?.element??this,itemId:e,item:n,updatedItems:r}),this._isItemsControlled||this._setInternalItems(r,{reconcileStates:!0}),r}cloneGridItem(e){let t=this._effectiveItems,n=this._requireGridItem(e),r={...structuredClone(n),id:d()},i=this._simulateCloneLayout(r,n),a=i.find(e=>e.id===r.id)??r;return w({target:this,action:`clone`,actionType:`button`,active:!1,items:t,element:this.getGridItemById(e)?.element??this,itemId:r.id,item:a,originalElement:this.getGridItemById(e)?.element,updatedItems:i}),this._isItemsControlled||this._setInternalItems(i,{reconcileStates:!0}),i}updateGridItemPosition(e,t){let n=this._updateGridItemPosition(e,t);return this._dispatchLayoutChangedEvent(this._effectiveItems,n),this._isItemsControlled||this._setInternalItems(n,{reconcileStates:!0}),n}updateGridItemSize(e,t){let n=this._updateGridItemPosition(e,t);return this._dispatchLayoutChangedEvent(this._effectiveItems,n),this._isItemsControlled||this._setInternalItems(n,{reconcileStates:!0}),n}updateGridItemSlots(e,t){return this._updateItemField(e,{slots:t})}updateGridItemOptions(e,t){return this._updateItemField(e,{options:t})}updateGridItemFilters(e,t){return this._updateItemField(e,{filters:t})}updateGridItemType(e,t){return this._updateItemField(e,{type:t})}updateGridItem(e,t){let n=this._effectiveItems;this._requireGridItem(e);let{position:r,...i}=t,a;return r&&this._grid?(a=Ee({itemId:e,patch:r,engine:this._grid.engine,existingItems:this._enrichItemsWithEnginePositions(n)}),a=a.map(t=>t.id===e?{...t,...i}:t)):a=n.map(t=>t.id===e?{...t,...i,...r&&t.position?{position:{...t.position,...r}}:r?{position:r}:{}}:t),t.position&&this._dispatchLayoutChangedEvent(n,a),this._isItemsControlled||this._setInternalItems(a,{reconcileStates:!0}),a}async triggerItemAction(e,t,n){await this.updateComplete;let r=this.getGridItemById(e);if(!r?.element){console.warn(`Grid item with id "${e}" not found`);return}if(this._isControlled)return this._triggerControlledItemAction(e,t,n);this._suppressItemStatesEvent=!0;let i=ge({gridElement:this._gridElement,items:this.items,gridItemData:r,itemId:e,action:t,options:n,state:{activeItemElement:this._activeItemElement,activeItemActionToggle:this._activeItemActionToggle},cleanupActiveItem:this._cleanupActiveItem.bind(this),dispatchItemActionEvent:this._dispatchItemActionEvent.bind(this),createItemActionsMenuPopover:this._createItemActionsMenuPopover.bind(this)});if(this._suppressItemStatesEvent=!1,this._activeItemElement=i.state.activeItemElement,this._activeItemActionToggle=i.state.activeItemActionToggle,i.result!==void 0){let n=this._effectiveItemStates,r=this._computeNextItemStates(e,t,i.result);this._internalItemStates=r,T({target:this,itemStates:n,updatedItemStates:r,changedItemStates:this._diffItemStates(n,r)})}return i.result}activateItemAction(e,t,n){return this.triggerItemAction(e,t,n)}_triggerControlledItemAction(e,t,n){let r=(this._effectiveItemStates[e]??[]).includes(t),i=n?.active??!r;if(n?.active!==void 0&&i===r)return r;let a=this._effectiveItemStates,o=this._computeNextItemStates(e,t,i);return T({target:this,itemStates:a,updatedItemStates:o,changedItemStates:{[e]:[t]}}),i}deactivateItems(){if(this._isControlled){let e=this._effectiveItemStates,t=Object.entries(e).flatMap(([e,t])=>t.map(t=>({itemId:e,action:t})));if(t.length===0)return 0;let n={},r={...e};for(let e of t)r=this._computeNextItemStates(e.itemId,e.action,!1,r),n[e.itemId]=[...n[e.itemId]??[],e.action];return T({target:this,itemStates:e,updatedItemStates:r,changedItemStates:n}),new Set(t.map(e=>e.itemId)).size}let e=this._effectiveItemStates,t=Object.entries(e).flatMap(([e,t])=>t.map(t=>({itemId:e,action:t})));this._suppressItemStatesEvent=!0;let n=_e({gridElement:this._gridElement,items:this.items,state:{activeItemElement:this._activeItemElement,activeItemActionToggle:this._activeItemActionToggle},cleanupActiveItem:this._cleanupActiveItem.bind(this),dispatchItemActionEvent:this._dispatchItemActionEvent.bind(this)});if(this._suppressItemStatesEvent=!1,this._activeItemElement=n.state.activeItemElement,this._activeItemActionToggle=n.state.activeItemActionToggle,this._isControlled||(this._internalItemStates={}),t.length>0){let n={};for(let e of t)n[e.itemId]=[...n[e.itemId]??[],e.action];T({target:this,itemStates:e,updatedItemStates:{},changedItemStates:n})}return n.deactivatedCount}_renderGrid(){return gn({items:this.items,initialized:this._initialized,viewMode:this.viewMode,fullTheme:this._fullTheme,columns:this.columns??48,renderItemContent:this.renderItemContent.bind(this),renderDependencies:this.getItemRenderDependencies(),ensureGridItemId:e=>be(e),handleMouseover:this._handleMouseover.bind(this),handleMouseout:this._handleMouseout,handleFocus:this._handleFocus,handleBlur:this._handleBlur})}render(){return this._renderGrid()}};t([_({type:String,reflect:!0})],X.prototype,`language`,void 0),t([_({type:String,attribute:`content-language`,reflect:!0})],X.prototype,`contentLanguage`,void 0),t([_({type:Number,reflect:!0})],X.prototype,`columns`,void 0),t([_({type:Number,reflect:!0,attribute:`row-height`})],X.prototype,`rowHeight`,void 0),t([_({type:Boolean,reflect:!0,attribute:`view-mode`})],X.prototype,`viewMode`,void 0),t([_({type:Boolean,reflect:!0,attribute:`item-actions-document-popover`})],X.prototype,`itemActionsDocumentPopover`,void 0),t([_({type:String,reflect:!0,attribute:`placement-item-actions-menu`})],X.prototype,`placementItemActionsMenu`,void 0),t([_({type:Array,reflect:!0,attribute:`default-item-actions-menu`})],X.prototype,`defaultItemActionsMenu`,void 0),t([_({type:String,reflect:!0,attribute:`cloned-item-positioning`})],X.prototype,`clonedItemPositioning`,void 0),t([_({type:Object,reflect:!0})],X.prototype,`theme`,void 0),t([_({type:Array,reflect:!1})],X.prototype,`items`,null),t([_({type:Array,reflect:!1,attribute:`initial-items`})],X.prototype,`initialItems`,null),t([_({type:Object,reflect:!1})],X.prototype,`renderers`,void 0),t([_({type:Object,reflect:!1,attribute:`item-states`})],X.prototype,`itemStates`,null),t([_({type:Object,reflect:!1,attribute:`initial-item-states`})],X.prototype,`initialItemStates`,void 0),t([ee()],X.prototype,`_initialized`,void 0),t([v(`.grid-stack`)],X.prototype,`_gridElement`,void 0),t([y(`.luzmo-item-grid-item`)],X.prototype,`_gridItemElements`,void 0),t([ee()],X.prototype,`_internalItemsVersion`,void 0);var Kn=(e,{appServer:t,apiHost:n,authKey:r,authToken:i,contentLanguage:a,fullTheme:o})=>{let s={...e.options,locale:a};return s.theme||=o?.id?{id:o.id}:structuredClone(o),h` <luzmo-embed-viz-item
71
71
  .appServer=${t}
72
72
  .apiHost=${n}
73
73
  .authKey=${r}
@@ -88,7 +88,7 @@ Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the
88
88
  >
89
89
  </luzmo-item-grid-item-actions-menu>
90
90
  </div>
91
- `},er=async({theme:e,currentTheme:t})=>e?.type===`custom`?structuredClone(e):e?.id&&e.id===t?.id?t:e?.id&&f.includes(e.id)&&t?.id!==e.id?{...await p(e.id),id:e.id}:e?.id&&t?.id!==e.id||!e&&t?t:await p(`default`),tr=`:host{box-sizing:border-box;width:min-content;display:block}.item-grid-item-actions-menu{flex-direction:var(--luzmo-item-grid-item-actions-menu-flex-direction,var(--item-grid-item-actions-menu-flex-direction));align-items:center;gap:var(--luzmo-item-grid-item-actions-menu-group-gap,var(--item-grid-item-actions-menu-group-gap));width:min-content;font-size:var(--luzmo-item-grid-item-actions-menu-font-size,var(--item-grid-item-actions-menu-font-size));display:flex}.action-group{flex-direction:var(--luzmo-item-grid-item-actions-menu-flex-direction,var(--item-grid-item-actions-menu-flex-direction));box-shadow:var(--luzmo-item-grid-item-actions-menu-box-shadow,var(--item-grid-item-actions-menu-box-shadow));border-radius:var(--luzmo-item-grid-item-actions-menu-button-border-radius,var(--item-grid-item-actions-menu-button-border-radius));display:flex}.action-button{box-sizing:content-box;width:1rem;height:1rem;padding:var(--luzmo-item-grid-item-actions-menu-button-padding,var(--item-grid-item-actions-menu-button-padding));background-color:var(--luzmo-item-grid-item-actions-menu-button-background,var(--item-grid-item-actions-menu-button-background));color:var(--luzmo-item-grid-item-actions-menu-button-icon-color,var(--item-grid-item-actions-menu-button-icon-color));font:inherit;cursor:pointer;transition:var(--luzmo-item-grid-item-actions-menu-transition,var(--item-grid-item-actions-menu-transition));border:none;border-radius:0;justify-content:center;align-items:center;display:flex;position:relative}.action-button:first-child{border-start-start-radius:var(--luzmo-item-grid-item-actions-menu-button-border-radius,var(--item-grid-item-actions-menu-button-border-radius));border-start-end-radius:var(--luzmo-item-grid-item-actions-menu-button-border-radius,var(--item-grid-item-actions-menu-button-border-radius))}.action-button:last-child{border-end-end-radius:var(--luzmo-item-grid-item-actions-menu-button-border-radius,var(--item-grid-item-actions-menu-button-border-radius));border-end-start-radius:var(--luzmo-item-grid-item-actions-menu-button-border-radius,var(--item-grid-item-actions-menu-button-border-radius))}.action-button:hover{background-color:var(--luzmo-item-grid-item-actions-menu-button-background-hover,var(--item-grid-item-actions-menu-button-background-hover));color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-hover,var(--item-grid-item-actions-menu-button-icon-color-hover))}.action-button:hover luzmo-icon{color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-hover,var(--item-grid-item-actions-menu-button-icon-color-hover))}.action-button:active{background-color:var(--luzmo-item-grid-item-actions-menu-button-background-active,var(--item-grid-item-actions-menu-button-background-active));color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-active,var(--item-grid-item-actions-menu-button-icon-color-active))}.action-button:active luzmo-icon{color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-active,var(--item-grid-item-actions-menu-button-icon-color-active))}.action-button[aria-pressed=true]{background-color:var(--luzmo-item-grid-item-actions-menu-button-background-selected,var(--item-grid-item-actions-menu-button-background-selected));color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-selected,var(--item-grid-item-actions-menu-button-icon-color-selected))}.action-button[aria-pressed=true] luzmo-icon{color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-selected,var(--item-grid-item-actions-menu-button-icon-color-selected))}.action-button:focus-visible{z-index:1;background-color:var(--luzmo-item-grid-item-actions-menu-button-background-focus,var(--item-grid-item-actions-menu-button-background-focus));color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-focus,var(--item-grid-item-actions-menu-button-icon-color-focus));outline:var(--luzmo-item-grid-item-actions-menu-button-focus-outline-width,var(--item-grid-item-actions-menu-button-focus-outline-width)) solid var(--luzmo-item-grid-item-actions-menu-button-focus-outline-color,var(--item-grid-item-actions-menu-button-focus-outline-color));outline-offset:var(--luzmo-item-grid-item-actions-menu-button-focus-outline-offset,var(--item-grid-item-actions-menu-button-focus-outline-offset))}.action-button:focus-visible luzmo-icon{color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-focus,var(--item-grid-item-actions-menu-button-icon-color-focus))}.action-button[aria-pressed=true]:focus-visible{background-color:var(--luzmo-item-grid-item-actions-menu-button-background-selected,var(--item-grid-item-actions-menu-button-background-selected));color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-selected,var(--item-grid-item-actions-menu-button-icon-color-selected))}.action-button[aria-pressed=true]:focus-visible luzmo-icon{color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-selected,var(--item-grid-item-actions-menu-button-icon-color-selected))}.action-button.delete-button:hover{background-color:var(--luzmo-item-grid-item-actions-menu-delete-background-hover,var(--item-grid-item-actions-menu-delete-background-hover));color:var(--luzmo-item-grid-item-actions-menu-delete-icon-color-hover,var(--item-grid-item-actions-menu-delete-icon-color-hover))}.action-button.delete-button:hover luzmo-icon{color:var(--luzmo-item-grid-item-actions-menu-delete-icon-color-hover,var(--item-grid-item-actions-menu-delete-icon-color-hover))}.action-button.delete-button:active{background-color:var(--luzmo-item-grid-item-actions-menu-delete-background-active,var(--item-grid-item-actions-menu-delete-background-active));color:var(--luzmo-item-grid-item-actions-menu-delete-icon-color-active,var(--item-grid-item-actions-menu-delete-icon-color-active))}.action-button.delete-button:active luzmo-icon{color:var(--luzmo-item-grid-item-actions-menu-delete-icon-color-active,var(--item-grid-item-actions-menu-delete-icon-color-active))}.action-button.delete-button:focus-visible{background-color:var(--luzmo-item-grid-item-actions-menu-delete-background-focus,var(--item-grid-item-actions-menu-delete-background-focus));color:var(--luzmo-item-grid-item-actions-menu-delete-icon-color-focus,var(--item-grid-item-actions-menu-delete-icon-color-focus))}.action-button.delete-button:focus-visible luzmo-icon{color:var(--luzmo-item-grid-item-actions-menu-delete-icon-color-focus,var(--item-grid-item-actions-menu-delete-icon-color-focus))}:host([placement^=top]) .action-button:first-child,:host([placement^=bottom]) .action-button:first-child{border-start-end-radius:0;border-end-start-radius:var(--luzmo-item-grid-item-actions-menu-button-border-radius,var(--item-grid-item-actions-menu-button-border-radius))}:host([placement^=top]) .action-button:last-child,:host([placement^=bottom]) .action-button:last-child{border-start-end-radius:var(--luzmo-item-grid-item-actions-menu-button-border-radius,var(--item-grid-item-actions-menu-button-border-radius));border-end-start-radius:0}luzmo-icon{color:var(--luzmo-item-grid-item-actions-menu-button-icon-color,var(--item-grid-item-actions-menu-button-icon-color));display:flex}luzmo-tooltip{--tooltip-font-family:var(--luzmo-item-grid-item-actions-menu-tooltip-font-family,var(--item-grid-item-actions-menu-tooltip-font-family));font-family:var(--luzmo-item-grid-item-actions-menu-tooltip-font-family,var(--item-grid-item-actions-menu-tooltip-font-family))}@media (prefers-reduced-motion:reduce){.action-button{transition:none}}:host{--item-grid-item-actions-menu-group-gap:var(--luzmo-item-grid-item-action-group-gap,var(--luzmo-spacing-3,.375rem));--item-grid-item-actions-menu-flex-direction:var(--luzmo-item-grid-item-actions-flex-direction,column);--item-grid-item-actions-menu-button-padding:var(--luzmo-spacing-3,.25rem);--item-grid-item-actions-menu-button-border-radius:var(--luzmo-border-radius,.25rem);--item-grid-item-actions-menu-button-background:var(--luzmo-item-grid-item-action-button-background-color-default,oklch(40.3678% 2.98023e-8 none));--item-grid-item-actions-menu-button-background-hover:var(--luzmo-item-grid-item-action-button-background-color-hover,var(--secondary,var(--luzmo-primary)));--item-grid-item-actions-menu-button-background-active:var(--luzmo-item-grid-item-action-button-background-color-down,var(--primary,var(--luzmo-primary)));--item-grid-item-actions-menu-button-background-focus:var(--luzmo-item-grid-item-action-button-background-color-focus,var(--item-grid-item-actions-menu-button-background));--item-grid-item-actions-menu-button-background-selected:var(--luzmo-item-grid-item-action-button-background-color-focus,var(--primary,var(--luzmo-primary)));--item-grid-item-actions-menu-button-icon-color:var(--luzmo-item-grid-item-action-button-content-color-default,white);--item-grid-item-actions-menu-button-icon-color-hover:var(--luzmo-item-grid-item-action-button-content-color-hover,var(--luzmo-primary-inverse-color,white));--item-grid-item-actions-menu-button-icon-color-active:var(--luzmo-item-grid-item-action-button-content-color-down,var(--luzmo-primary-inverse-color,white));--item-grid-item-actions-menu-button-icon-color-focus:var(--luzmo-item-grid-item-action-button-content-color-focus,var(--luzmo-primary-inverse-color,white));--item-grid-item-actions-menu-button-icon-color-selected:var(--luzmo-item-grid-item-action-button-content-color-focus,var(--luzmo-primary-inverse-color,white));--item-grid-item-actions-menu-delete-background-hover:var(--luzmo-item-grid-item-delete-button-background-color-hover,var(--luzmo-negative-color,#de3737));--item-grid-item-actions-menu-delete-background-active:var(--luzmo-item-grid-item-delete-button-background-color-down,var(--luzmo-negative-color,#de3737));--item-grid-item-actions-menu-delete-background-focus:var(--luzmo-item-grid-item-delete-button-background-color-focus,var(--item-grid-item-actions-menu-button-background));--item-grid-item-actions-menu-delete-icon-color-hover:var(--luzmo-item-grid-item-delete-button-content-color-hover,var(--luzmo-negative-inverse-color,white));--item-grid-item-actions-menu-delete-icon-color-active:var(--luzmo-item-grid-item-delete-button-content-color-down,var(--luzmo-negative-inverse-color,white));--item-grid-item-actions-menu-delete-icon-color-focus:var(--luzmo-item-grid-item-delete-button-content-color-focus,var(--luzmo-negative-inverse-color,white));--item-grid-item-actions-menu-button-focus-outline-width:var(--luzmo-indicator-width,1px);--item-grid-item-actions-menu-button-focus-outline-color:var(--luzmo-indicator-color,var(--primary,var(--luzmo-primary)));--item-grid-item-actions-menu-button-focus-outline-offset:var(--luzmo-indicator-gap,2px);--item-grid-item-actions-menu-transition:background-color var(--luzmo-animation-duration,.2s) ease, color var(--luzmo-animation-duration,.2s) ease, box-shadow var(--luzmo-animation-duration,.2s) ease;--item-grid-item-actions-menu-font-size:var(--luzmo-font-size-m,.875rem);--item-grid-item-actions-menu-box-shadow:0px 4px 4px 0px #0003;--item-grid-item-actions-menu-tooltip-font-family:var(--luzmo-font-family,"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif)}:host([placement=top-start]),:host([placement=top]),:host([placement=top-end]),:host([placement=bottom-start]),:host([placement=bottom]),:host([placement=bottom-end]){--item-grid-item-actions-menu-flex-direction:var(--luzmo-item-grid-item-actions-flex-direction,row)}`,Q=class extends n(S){constructor(...e){super(...e),this.placement=`right-start`,this.actions=[],this._focusedActionIndex=0}static get styles(){let e=super.styles??[];return[...Array.isArray(e)?e:[e],te(tr)]}get isVertical(){return this.placement.includes(`left`)||this.placement.includes(`right`)}get actionCount(){return this.actions.reduce((e,t)=>e+(t.actions?.length??0),0)}willUpdate(e){super.willUpdate(e),e.has(`actions`)&&this.actionCount>0&&this._focusedActionIndex>=this.actionCount&&(this._focusedActionIndex=0)}clearActiveToggles(){this.actions=this.actions.map(e=>({...e,actions:e.actions?.map(e=>e.type===`toggle`?{...e,active:!1}:e)??[]}))}focus(){let e=this._getActionButtons(),t=e.find(e=>e.dataset.actionType===`toggle`)??e[0];t&&this._setFocusedButton(e.indexOf(t))}_getActionButtons(){return Array.from(this.shadowRoot?.querySelectorAll(`.action-button`)??[])}_setFocusedButton(e){let t=this._getActionButtons();if(t.length===0)return;let n=(e+t.length)%t.length;this._focusedActionIndex=n,t.forEach((e,t)=>{e.tabIndex=t===n?0:-1}),t[n].focus()}_dispatchAction(e){this.dispatchEvent(new CustomEvent(`luzmo-item-grid-item-action`,{bubbles:!0,composed:!0,detail:{action:e.action,type:e.type,active:e.active??!1}}))}_handleActionPointerEnter(e){this.dispatchEvent(new CustomEvent(`luzmo-item-grid-item-action-hover`,{bubbles:!0,composed:!0,detail:{action:e.action,type:e.type}}))}_handleActionClick(e,t,n){e.stopPropagation(),this._focusedActionIndex=n;let r=t.type===`toggle`?!t.active:t.active;t.type===`toggle`&&(this.actions=this.actions.map(e=>({...e,actions:e.actions?.map(e=>e===t?{...e,active:r}:e.type===`toggle`?{...e,active:!1}:e)}))),this._dispatchAction({...t,active:r}),this.requestUpdate()}_handleActionFocus(e){this._focusedActionIndex=e}_handleActionKeydown(e,t){if(e.key===`Enter`||e.key===` `){e.stopPropagation();return}let n;e.key===`Home`?n=0:e.key===`End`?n=this.actionCount-1:this.isVertical&&e.key===`ArrowDown`?n=t+1:this.isVertical&&e.key===`ArrowUp`?n=t-1:!this.isVertical&&e.key===`ArrowRight`?n=t+(this.isLTR?1:-1):!this.isVertical&&e.key===`ArrowLeft`&&(n=t+(this.isLTR?-1:1)),n!==void 0&&(e.preventDefault(),e.stopPropagation(),this._setFocusedButton(n))}_getActionLabel(e){return{Clone:t(`Clone`,{desc:`Grid item action tooltip`}),Delete:t(`Delete`,{desc:`Delete action label`}),Edit:t(`Edit`,{desc:`Edit action label`}),"Edit data":t(`Edit data`,{desc:`Grid item action label`}),Filters:t(`Filters`,{desc:`Label for the filters section`}),"Item options":t(`Item options`,{desc:`Grid item action label`}),Lock:t(`Lock`,{desc:`Grid item action tooltip`})}[e.label??``]??e.label??e.action??``}_getActionTooltip(e){return{Clone:t(`Clone`,{desc:`Grid item action tooltip`}),Data:t(`Data`,{desc:`Label for the data section`}),Delete:t(`Delete`,{desc:`Delete action label`}),Edit:t(`Edit`,{desc:`Edit action label`}),Filters:t(`Filters`,{desc:`Label for the filters section`}),Lock:t(`Lock`,{desc:`Grid item action tooltip`}),Options:t(`Options`,{desc:`Label for the options section`})}[e.tooltip??``]??e.tooltip??this._getActionLabel(e)}_renderAction(e,t){let n=this._getActionTooltip(e),r=this._getActionLabel(e)||n,i=e.type===`toggle`;return h`
91
+ `},er=async({theme:e,currentTheme:t})=>e?.type===`custom`?structuredClone(e):e?.id&&e.id===t?.id?t:e?.id&&f.includes(e.id)&&t?.id!==e.id?{...await p(e.id),id:e.id}:e?.id&&t?.id!==e.id||!e&&t?t:await p(`default`),tr=`:host{box-sizing:border-box;width:min-content;display:block}.item-grid-item-actions-menu{flex-direction:var(--luzmo-item-grid-item-actions-menu-flex-direction,var(--item-grid-item-actions-menu-flex-direction));align-items:center;gap:var(--luzmo-item-grid-item-actions-menu-group-gap,var(--item-grid-item-actions-menu-group-gap));width:min-content;font-size:var(--luzmo-item-grid-item-actions-menu-font-size,var(--item-grid-item-actions-menu-font-size));display:flex}.action-group{flex-direction:var(--luzmo-item-grid-item-actions-menu-flex-direction,var(--item-grid-item-actions-menu-flex-direction));box-shadow:var(--luzmo-item-grid-item-actions-menu-box-shadow,var(--item-grid-item-actions-menu-box-shadow));border-radius:var(--luzmo-item-grid-item-actions-menu-button-border-radius,var(--item-grid-item-actions-menu-button-border-radius));display:flex}.action-button{box-sizing:content-box;width:1rem;height:1rem;padding:var(--luzmo-item-grid-item-actions-menu-button-padding,var(--item-grid-item-actions-menu-button-padding));background-color:var(--luzmo-item-grid-item-actions-menu-button-background,var(--item-grid-item-actions-menu-button-background));color:var(--luzmo-item-grid-item-actions-menu-button-icon-color,var(--item-grid-item-actions-menu-button-icon-color));font:inherit;cursor:pointer;transition:var(--luzmo-item-grid-item-actions-menu-transition,var(--item-grid-item-actions-menu-transition));border:none;border-radius:0;justify-content:center;align-items:center;display:flex;position:relative}.action-button:first-child{border-start-start-radius:var(--luzmo-item-grid-item-actions-menu-button-border-radius,var(--item-grid-item-actions-menu-button-border-radius));border-start-end-radius:var(--luzmo-item-grid-item-actions-menu-button-border-radius,var(--item-grid-item-actions-menu-button-border-radius))}.action-button:last-child{border-end-end-radius:var(--luzmo-item-grid-item-actions-menu-button-border-radius,var(--item-grid-item-actions-menu-button-border-radius));border-end-start-radius:var(--luzmo-item-grid-item-actions-menu-button-border-radius,var(--item-grid-item-actions-menu-button-border-radius))}.action-button:hover{background-color:var(--luzmo-item-grid-item-actions-menu-button-background-hover,var(--item-grid-item-actions-menu-button-background-hover));color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-hover,var(--item-grid-item-actions-menu-button-icon-color-hover))}.action-button:hover luzmo-icon{color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-hover,var(--item-grid-item-actions-menu-button-icon-color-hover))}.action-button:active{background-color:var(--luzmo-item-grid-item-actions-menu-button-background-active,var(--item-grid-item-actions-menu-button-background-active));color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-active,var(--item-grid-item-actions-menu-button-icon-color-active))}.action-button:active luzmo-icon{color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-active,var(--item-grid-item-actions-menu-button-icon-color-active))}.action-button[aria-pressed=true]{background-color:var(--luzmo-item-grid-item-actions-menu-button-background-selected,var(--item-grid-item-actions-menu-button-background-selected));color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-selected,var(--item-grid-item-actions-menu-button-icon-color-selected))}.action-button[aria-pressed=true] luzmo-icon{color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-selected,var(--item-grid-item-actions-menu-button-icon-color-selected))}.action-button:focus-visible{z-index:1;background-color:var(--luzmo-item-grid-item-actions-menu-button-background-focus,var(--item-grid-item-actions-menu-button-background-focus));color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-focus,var(--item-grid-item-actions-menu-button-icon-color-focus));outline:var(--luzmo-item-grid-item-actions-menu-button-focus-outline-width,var(--item-grid-item-actions-menu-button-focus-outline-width)) solid var(--luzmo-item-grid-item-actions-menu-button-focus-outline-color,var(--item-grid-item-actions-menu-button-focus-outline-color));outline-offset:var(--luzmo-item-grid-item-actions-menu-button-focus-outline-offset,var(--item-grid-item-actions-menu-button-focus-outline-offset))}.action-button:focus-visible luzmo-icon{color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-focus,var(--item-grid-item-actions-menu-button-icon-color-focus))}.action-button[aria-pressed=true]:focus-visible{background-color:var(--luzmo-item-grid-item-actions-menu-button-background-selected,var(--item-grid-item-actions-menu-button-background-selected));color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-selected,var(--item-grid-item-actions-menu-button-icon-color-selected))}.action-button[aria-pressed=true]:focus-visible luzmo-icon{color:var(--luzmo-item-grid-item-actions-menu-button-icon-color-selected,var(--item-grid-item-actions-menu-button-icon-color-selected))}.action-button.delete-button:hover{background-color:var(--luzmo-item-grid-item-actions-menu-delete-background-hover,var(--item-grid-item-actions-menu-delete-background-hover));color:var(--luzmo-item-grid-item-actions-menu-delete-icon-color-hover,var(--item-grid-item-actions-menu-delete-icon-color-hover))}.action-button.delete-button:hover luzmo-icon{color:var(--luzmo-item-grid-item-actions-menu-delete-icon-color-hover,var(--item-grid-item-actions-menu-delete-icon-color-hover))}.action-button.delete-button:active{background-color:var(--luzmo-item-grid-item-actions-menu-delete-background-active,var(--item-grid-item-actions-menu-delete-background-active));color:var(--luzmo-item-grid-item-actions-menu-delete-icon-color-active,var(--item-grid-item-actions-menu-delete-icon-color-active))}.action-button.delete-button:active luzmo-icon{color:var(--luzmo-item-grid-item-actions-menu-delete-icon-color-active,var(--item-grid-item-actions-menu-delete-icon-color-active))}.action-button.delete-button:focus-visible{background-color:var(--luzmo-item-grid-item-actions-menu-delete-background-focus,var(--item-grid-item-actions-menu-delete-background-focus));color:var(--luzmo-item-grid-item-actions-menu-delete-icon-color-focus,var(--item-grid-item-actions-menu-delete-icon-color-focus))}.action-button.delete-button:focus-visible luzmo-icon{color:var(--luzmo-item-grid-item-actions-menu-delete-icon-color-focus,var(--item-grid-item-actions-menu-delete-icon-color-focus))}:host([placement^=top]) .action-button:first-child,:host([placement^=bottom]) .action-button:first-child{border-start-end-radius:0;border-end-start-radius:var(--luzmo-item-grid-item-actions-menu-button-border-radius,var(--item-grid-item-actions-menu-button-border-radius))}:host([placement^=top]) .action-button:last-child,:host([placement^=bottom]) .action-button:last-child{border-start-end-radius:var(--luzmo-item-grid-item-actions-menu-button-border-radius,var(--item-grid-item-actions-menu-button-border-radius));border-end-start-radius:0}luzmo-icon{color:var(--luzmo-item-grid-item-actions-menu-button-icon-color,var(--item-grid-item-actions-menu-button-icon-color));display:flex}luzmo-tooltip{--tooltip-font-family:var(--luzmo-item-grid-item-actions-menu-tooltip-font-family,var(--item-grid-item-actions-menu-tooltip-font-family));font-family:var(--luzmo-item-grid-item-actions-menu-tooltip-font-family,var(--item-grid-item-actions-menu-tooltip-font-family))}@media (prefers-reduced-motion:reduce){.action-button{transition:none}}:host{--item-grid-item-actions-menu-group-gap:var(--luzmo-item-grid-item-action-group-gap,var(--luzmo-spacing-3,.375rem));--item-grid-item-actions-menu-flex-direction:var(--luzmo-item-grid-item-actions-flex-direction,column);--item-grid-item-actions-menu-button-padding:var(--luzmo-spacing-3,.25rem);--item-grid-item-actions-menu-button-border-radius:var(--luzmo-border-radius,.25rem);--item-grid-item-actions-menu-button-background:var(--luzmo-item-grid-item-action-button-background-color-default,oklch(40.3678% 2.98023e-8 none));--item-grid-item-actions-menu-button-background-hover:var(--luzmo-item-grid-item-action-button-background-color-hover,var(--secondary,var(--luzmo-primary)));--item-grid-item-actions-menu-button-background-active:var(--luzmo-item-grid-item-action-button-background-color-down,var(--primary,var(--luzmo-primary)));--item-grid-item-actions-menu-button-background-focus:var(--luzmo-item-grid-item-action-button-background-color-focus,var(--item-grid-item-actions-menu-button-background));--item-grid-item-actions-menu-button-background-selected:var(--luzmo-item-grid-item-action-button-background-color-focus,var(--primary,var(--luzmo-primary)));--item-grid-item-actions-menu-button-icon-color:var(--luzmo-item-grid-item-action-button-content-color-default,white);--item-grid-item-actions-menu-button-icon-color-hover:var(--luzmo-item-grid-item-action-button-content-color-hover,var(--luzmo-primary-inverse-color,white));--item-grid-item-actions-menu-button-icon-color-active:var(--luzmo-item-grid-item-action-button-content-color-down,var(--luzmo-primary-inverse-color,white));--item-grid-item-actions-menu-button-icon-color-focus:var(--luzmo-item-grid-item-action-button-content-color-focus,var(--luzmo-primary-inverse-color,white));--item-grid-item-actions-menu-button-icon-color-selected:var(--luzmo-item-grid-item-action-button-content-color-focus,var(--luzmo-primary-inverse-color,white));--item-grid-item-actions-menu-delete-background-hover:var(--luzmo-item-grid-item-delete-button-background-color-hover,var(--luzmo-negative-color,#de3737));--item-grid-item-actions-menu-delete-background-active:var(--luzmo-item-grid-item-delete-button-background-color-down,var(--luzmo-negative-color,#de3737));--item-grid-item-actions-menu-delete-background-focus:var(--luzmo-item-grid-item-delete-button-background-color-focus,var(--item-grid-item-actions-menu-button-background));--item-grid-item-actions-menu-delete-icon-color-hover:var(--luzmo-item-grid-item-delete-button-content-color-hover,var(--luzmo-negative-inverse-color,white));--item-grid-item-actions-menu-delete-icon-color-active:var(--luzmo-item-grid-item-delete-button-content-color-down,var(--luzmo-negative-inverse-color,white));--item-grid-item-actions-menu-delete-icon-color-focus:var(--luzmo-item-grid-item-delete-button-content-color-focus,var(--luzmo-negative-inverse-color,white));--item-grid-item-actions-menu-button-focus-outline-width:var(--luzmo-indicator-width,1px);--item-grid-item-actions-menu-button-focus-outline-color:var(--luzmo-indicator-color,var(--primary,var(--luzmo-primary)));--item-grid-item-actions-menu-button-focus-outline-offset:var(--luzmo-indicator-gap,2px);--item-grid-item-actions-menu-transition:background-color var(--luzmo-animation-duration,.2s) ease, color var(--luzmo-animation-duration,.2s) ease, box-shadow var(--luzmo-animation-duration,.2s) ease;--item-grid-item-actions-menu-font-size:var(--luzmo-font-size-m,.875rem);--item-grid-item-actions-menu-box-shadow:0px 4px 4px 0px #0003;--item-grid-item-actions-menu-tooltip-font-family:var(--luzmo-font-family,"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif)}:host([placement=top-start]),:host([placement=top]),:host([placement=top-end]),:host([placement=bottom-start]),:host([placement=bottom]),:host([placement=bottom-end]){--item-grid-item-actions-menu-flex-direction:var(--luzmo-item-grid-item-actions-flex-direction,row)}`,Q=class extends r(S){constructor(...e){super(...e),this.placement=`right-start`,this.actions=[],this._focusedActionIndex=0}static get styles(){let e=super.styles??[];return[...Array.isArray(e)?e:[e],te(tr)]}get isVertical(){return this.placement.includes(`left`)||this.placement.includes(`right`)}get actionCount(){return this.actions.reduce((e,t)=>e+(t.actions?.length??0),0)}willUpdate(e){super.willUpdate(e),e.has(`actions`)&&this.actionCount>0&&this._focusedActionIndex>=this.actionCount&&(this._focusedActionIndex=0)}clearActiveToggles(){this.actions=this.actions.map(e=>({...e,actions:e.actions?.map(e=>e.type===`toggle`?{...e,active:!1}:e)??[]}))}focus(){let e=this._getActionButtons(),t=e.find(e=>e.dataset.actionType===`toggle`)??e[0];t&&this._setFocusedButton(e.indexOf(t))}_getActionButtons(){return Array.from(this.shadowRoot?.querySelectorAll(`.action-button`)??[])}_setFocusedButton(e){let t=this._getActionButtons();if(t.length===0)return;let n=(e+t.length)%t.length;this._focusedActionIndex=n,t.forEach((e,t)=>{e.tabIndex=t===n?0:-1}),t[n].focus()}_dispatchAction(e){this.dispatchEvent(new CustomEvent(`luzmo-item-grid-item-action`,{bubbles:!0,composed:!0,detail:{action:e.action,type:e.type,active:e.active??!1}}))}_handleActionPointerEnter(e){this.dispatchEvent(new CustomEvent(`luzmo-item-grid-item-action-hover`,{bubbles:!0,composed:!0,detail:{action:e.action,type:e.type}}))}_handleActionClick(e,t,n){e.stopPropagation(),this._focusedActionIndex=n;let r=t.type===`toggle`?!t.active:t.active;t.type===`toggle`&&(this.actions=this.actions.map(e=>({...e,actions:e.actions?.map(e=>e===t?{...e,active:r}:e.type===`toggle`?{...e,active:!1}:e)}))),this._dispatchAction({...t,active:r}),this.requestUpdate()}_handleActionFocus(e){this._focusedActionIndex=e}_handleActionKeydown(e,t){if(e.key===`Enter`||e.key===` `){e.stopPropagation();return}let n;e.key===`Home`?n=0:e.key===`End`?n=this.actionCount-1:this.isVertical&&e.key===`ArrowDown`?n=t+1:this.isVertical&&e.key===`ArrowUp`?n=t-1:!this.isVertical&&e.key===`ArrowRight`?n=t+(this.isLTR?1:-1):!this.isVertical&&e.key===`ArrowLeft`&&(n=t+(this.isLTR?-1:1)),n!==void 0&&(e.preventDefault(),e.stopPropagation(),this._setFocusedButton(n))}_getActionLabel(e){return{Clone:n(`Clone`,{desc:`Grid item action tooltip`}),Delete:n(`Delete`,{desc:`Delete action label`}),Edit:n(`Edit`,{desc:`Edit action label`}),"Edit data":n(`Edit data`,{desc:`Grid item action label`}),Filters:n(`Filters`,{desc:`Label for the filters section`}),"Item options":n(`Item options`,{desc:`Grid item action label`}),Lock:n(`Lock`,{desc:`Grid item action tooltip`})}[e.label??``]??e.label??e.action??``}_getActionTooltip(e){return{Clone:n(`Clone`,{desc:`Grid item action tooltip`}),Data:n(`Data`,{desc:`Label for the data section`}),Delete:n(`Delete`,{desc:`Delete action label`}),Edit:n(`Edit`,{desc:`Edit action label`}),Filters:n(`Filters`,{desc:`Label for the filters section`}),Lock:n(`Lock`,{desc:`Grid item action tooltip`}),Options:n(`Options`,{desc:`Label for the options section`})}[e.tooltip??``]??e.tooltip??this._getActionLabel(e)}_renderAction(e,t){let n=this._getActionTooltip(e),r=this._getActionLabel(e)||n,i=e.type===`toggle`;return h`
92
92
  <button
93
93
  class="action-button ${e.action===`delete`?`delete-button`:``}"
94
94
  type="button"
@@ -111,7 +111,7 @@ Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the
111
111
  <div
112
112
  class="item-grid-item-actions-menu"
113
113
  role="toolbar"
114
- aria-label=${t(`Item actions`,{desc:`Item actions toolbar label`})}
114
+ aria-label=${n(`Item actions`,{desc:`Item actions toolbar label`})}
115
115
  aria-orientation=${this.isVertical?`vertical`:`horizontal`}
116
116
  >
117
117
  ${this.actions.map(t=>{let n=t.actions??[];return n.length===0?g:h`
@@ -120,4 +120,4 @@ Note: ".grid-stack" is required for proper CSS styling and drag/drop, and is the
120
120
  </div>
121
121
  `})}
122
122
  </div>
123
- `}};r([_({type:String,reflect:!0})],Q.prototype,`placement`,void 0),r([_({type:Array,attribute:!1})],Q.prototype,`actions`,void 0),Q=r([i()],Q),typeof customElements<`u`&&!customElements.get(`luzmo-item-grid-item-actions-menu`)&&customElements.define(`luzmo-item-grid-item-actions-menu`,Q);var $=class extends X{constructor(...e){super(...e),this.appServer=`https://app.luzmo.com/`,this.apiHost=`https://api.luzmo.com`}renderItemContent(e){return Kn(e,{appServer:this.appServer,apiHost:this.apiHost,authKey:this.authKey,authToken:this.authToken,contentLanguage:this.contentLanguage,fullTheme:this.resolvedTheme})}getItemRenderDependencies(){return[this.appServer,this.apiHost,this.authKey,this.authToken,this.contentLanguage]}resolveTheme(e,t){return er({theme:e,currentTheme:t})}renderOverlayContent(e,t){return $n({item:e,activeActions:t,defaultItemActionsMenu:this.defaultItemActionsMenu,placementItemActionsMenu:this.placementItemActionsMenu,language:this.language,handleAction:this.handleItemAction,itemActionsDocumentPopover:this.itemActionsDocumentPopover})}firstUpdated(e=/* @__PURE__ */ new Map){super.firstUpdated(e)}updated(e){super.updated(e),e.has(`contentLanguage`)&&qn(this.renderRoot.querySelectorAll(`.luzmo-item-grid-item`),this.contentLanguage)}get gridItems(){let e=this.renderRoot.querySelector(`.grid-stack`);return e?Jn(this.items,e):[]}getGridItemById(e){return this.gridItems.find(t=>t.item.id===e)}};r([_({type:String,attribute:`app-server`,reflect:!0})],$.prototype,`appServer`,void 0),r([_({type:String,attribute:`api-host`,reflect:!0})],$.prototype,`apiHost`,void 0),r([_({type:String,attribute:`auth-key`,reflect:!0})],$.prototype,`authKey`,void 0),r([_({type:String,attribute:`auth-token`,reflect:!0})],$.prototype,`authToken`,void 0),r([_({type:Number,attribute:`cache-time`,reflect:!0})],$.prototype,`cacheTime`,void 0),customElements.get(`luzmo-item-grid`)||customElements.define(`luzmo-item-grid`,$);export{$ as LuzmoItemGrid,Q as LuzmoItemGridItemActionsMenu};
123
+ `}};t([_({type:String,reflect:!0})],Q.prototype,`placement`,void 0),t([_({type:Array,attribute:!1})],Q.prototype,`actions`,void 0),Q=t([i()],Q),typeof customElements<`u`&&!customElements.get(`luzmo-item-grid-item-actions-menu`)&&customElements.define(`luzmo-item-grid-item-actions-menu`,Q);var $=class extends X{constructor(...e){super(...e),this.appServer=`https://app.luzmo.com/`,this.apiHost=`https://api.luzmo.com`}renderItemContent(e){return Kn(e,{appServer:this.appServer,apiHost:this.apiHost,authKey:this.authKey,authToken:this.authToken,contentLanguage:this.contentLanguage,fullTheme:this.resolvedTheme})}getItemRenderDependencies(){return[this.appServer,this.apiHost,this.authKey,this.authToken,this.contentLanguage]}resolveTheme(e,t){return er({theme:e,currentTheme:t})}renderOverlayContent(e,t){return $n({item:e,activeActions:t,defaultItemActionsMenu:this.defaultItemActionsMenu,placementItemActionsMenu:this.placementItemActionsMenu,language:this.language,handleAction:this.handleItemAction,itemActionsDocumentPopover:this.itemActionsDocumentPopover})}firstUpdated(e=/* @__PURE__ */ new Map){super.firstUpdated(e)}updated(e){super.updated(e),e.has(`contentLanguage`)&&qn(this.renderRoot.querySelectorAll(`.luzmo-item-grid-item`),this.contentLanguage)}get gridItems(){let e=this.renderRoot.querySelector(`.grid-stack`);return e?Jn(this.items,e):[]}getGridItemById(e){return this.gridItems.find(t=>t.item.id===e)}};t([_({type:String,attribute:`app-server`,reflect:!0})],$.prototype,`appServer`,void 0),t([_({type:String,attribute:`api-host`,reflect:!0})],$.prototype,`apiHost`,void 0),t([_({type:String,attribute:`auth-key`,reflect:!0})],$.prototype,`authKey`,void 0),t([_({type:String,attribute:`auth-token`,reflect:!0})],$.prototype,`authToken`,void 0),t([_({type:Number,attribute:`cache-time`,reflect:!0})],$.prototype,`cacheTime`,void 0),customElements.get(`luzmo-item-grid`)||customElements.define(`luzmo-item-grid`,$);export{$ as LuzmoItemGrid,Q as LuzmoItemGridItemActionsMenu};
@@ -43,8 +43,8 @@
43
43
  "chunks/bullet-chart-options.fr-NLzgxbaB.js",
44
44
  "chunks/bullet-chart-options.nl-BxNIes0u.js",
45
45
  "chunks/bullet-chart-slots.config-BiFMJsgN.js",
46
- "chunks/chart-helpers-DsIGsaDc.js",
47
- "chunks/choropleth-map-options.config-rUJsEJcm.js",
46
+ "chunks/chart-helpers-DZsidiCl.js",
47
+ "chunks/choropleth-map-options.config-CDMjKnJD.js",
48
48
  "chunks/choropleth-map-options.de-eALhIYgW.js",
49
49
  "chunks/choropleth-map-options.en-DNdPCTz7.js",
50
50
  "chunks/choropleth-map-options.es-BoHXBNpE.js",
@@ -68,7 +68,7 @@
68
68
  "chunks/classic-CHhNczKi.js",
69
69
  "chunks/classic-dark-Cmrn7jod.js",
70
70
  "chunks/color-palettes-B41FvzWH.js",
71
- "chunks/color-range-utils-DxOtqAKB.js",
71
+ "chunks/color-range-utils-BVyHBRiq.js",
72
72
  "chunks/column-chart-options.config-YIe6cMV5.js",
73
73
  "chunks/column-chart-options.de-CpCK5x2F.js",
74
74
  "chunks/column-chart-options.en-uZbbpK84.js",
@@ -93,7 +93,7 @@
93
93
  "chunks/create-lazy-loader-DC0rJePE.js",
94
94
  "chunks/cs-DLnr3a23.js",
95
95
  "chunks/da-BJgbo0uE.js",
96
- "chunks/data-broker-DXDyIrj_.js",
96
+ "chunks/data-broker-DpSrH3IP.js",
97
97
  "chunks/date-comparison-filter-options.config-a_qCDcWA.js",
98
98
  "chunks/date-comparison-filter-options.de-WqpVCnC1.js",
99
99
  "chunks/date-comparison-filter-options.en-Obm6KfbI.js",
@@ -108,15 +108,15 @@
108
108
  "chunks/date-filter-options.fr-DoZy8DU8.js",
109
109
  "chunks/date-filter-options.nl-DKtF0sFB.js",
110
110
  "chunks/date-filter-slots.config-DHaOkULx.js",
111
+ "chunks/de-BkB0q1Eg.js",
111
112
  "chunks/de-DPgYMyja.js",
112
- "chunks/de-mdZT2W1G.js",
113
113
  "chunks/default-Bi3Z4SMm.js",
114
114
  "chunks/default-dark-C2ykXPQt.js",
115
- "chunks/display-settings-binning-Byffw2Kl.js",
116
- "chunks/display-settings-datetime-CD52d6Sv.js",
117
- "chunks/display-settings-grand-totals-Cky99LX9.js",
118
- "chunks/display-settings-numeric-C9ea7Tgc.js",
119
- "chunks/display-settings-period-over-period-BLSGumkD.js",
115
+ "chunks/display-settings-binning-DhHlclWH.js",
116
+ "chunks/display-settings-datetime-C8xvOvi4.js",
117
+ "chunks/display-settings-grand-totals-CUpigDcs.js",
118
+ "chunks/display-settings-numeric-BLWF54Jx.js",
119
+ "chunks/display-settings-period-over-period-COd4tvUw.js",
120
120
  "chunks/donut-chart-options.config-DWpePR5V.js",
121
121
  "chunks/donut-chart-options.de-IKGJRoDL.js",
122
122
  "chunks/donut-chart-options.en-O2IK3YiS.js",
@@ -131,11 +131,11 @@
131
131
  "chunks/dropdown-filter-options.fr-CMapzFiR.js",
132
132
  "chunks/dropdown-filter-options.nl-BLAyit4D.js",
133
133
  "chunks/dropdown-filter-slots.config-DkqLjilE.js",
134
- "chunks/embed-CBu7iQRx.js",
135
- "chunks/en-CSboh17P.js",
136
- "chunks/en-GB-HoXKQBOY.js",
137
- "chunks/en-US-CSboh17P.js",
138
- "chunks/es-Di5D8JFd.js",
134
+ "chunks/embed-Bv1ps-EM.js",
135
+ "chunks/en-DNsyAwgq.js",
136
+ "chunks/en-GB-Di3OzVdL.js",
137
+ "chunks/en-US-DNsyAwgq.js",
138
+ "chunks/es-Bo0jStZn.js",
139
139
  "chunks/es-Dp1UuDDz.js",
140
140
  "chunks/evolution-number-options.config-Brbyq_TD.js",
141
141
  "chunks/evolution-number-options.de-NPOdl5mB.js",
@@ -145,10 +145,10 @@
145
145
  "chunks/evolution-number-options.nl-CvjB2qil.js",
146
146
  "chunks/evolution-number-slots.config-IqPfnCrw.js",
147
147
  "chunks/fi-CLQ6vC7V.js",
148
- "chunks/filters-DKgJcQGP.js",
149
- "chunks/formula-codemirror-BbyvNEVD.js",
148
+ "chunks/filters-lhg_WVDK.js",
149
+ "chunks/formula-codemirror-DZMzLE2I.js",
150
+ "chunks/fr-Co_qVhhV.js",
150
151
  "chunks/fr-D8xrUEX4.js",
151
- "chunks/fr-DZku7iB9.js",
152
152
  "chunks/funnel-chart-options.config-S1yxc6IG.js",
153
153
  "chunks/funnel-chart-options.de-u5OrFyng.js",
154
154
  "chunks/funnel-chart-options.en-BEGSBn35.js",
@@ -158,14 +158,14 @@
158
158
  "chunks/funnel-chart-slots.config-DfeuNGEL.js",
159
159
  "chunks/guidelines-options.config-CS29_J9M.js",
160
160
  "chunks/he-DHPb0VBo.js",
161
- "chunks/heat-map-options.config-D93AeYFi.js",
161
+ "chunks/heat-map-options.config-DDQMD38W.js",
162
162
  "chunks/heat-map-options.de-BfJMMX2Q.js",
163
163
  "chunks/heat-map-options.en-Dr653pN6.js",
164
164
  "chunks/heat-map-options.es-CklrBP1w.js",
165
165
  "chunks/heat-map-options.fr-DwtCOHrA.js",
166
166
  "chunks/heat-map-options.nl-DQBLussF.js",
167
167
  "chunks/heat-map-slots.config-BVBzVjJJ.js",
168
- "chunks/heat-table-options.config-ZVML76FK.js",
168
+ "chunks/heat-table-options.config-B4K0Ygug.js",
169
169
  "chunks/heat-table-options.de-B4y9dcra.js",
170
170
  "chunks/heat-table-options.en-Bouip0NE.js",
171
171
  "chunks/heat-table-options.es-BRAQP8GK.js",
@@ -192,25 +192,25 @@
192
192
  "chunks/info-tooltip-options.i18n-B_gjTq0R.js",
193
193
  "chunks/interactivity-options.config-09eXx6k6.js",
194
194
  "chunks/interactivity-options.i18n-BLDCmZkC.js",
195
- "chunks/is-same-option-value-Di-A7Wmg.js",
195
+ "chunks/is-same-option-value-7kXNF4st.js",
196
196
  "chunks/it-DWTvD2Xn.js",
197
- "chunks/item-option-action-button-group-BEAwPHVw.js",
198
- "chunks/item-option-base-CRUxNhJQ.js",
199
- "chunks/item-option-color-palette-picker-CBz61iZb.js",
200
- "chunks/item-option-color-picker-lLvBPnKA.js",
201
- "chunks/item-option-color-range-BqeatOei.js",
202
- "chunks/item-option-guidelines-Cop8rM8y.js",
203
- "chunks/item-option-multi-language-field-DPPpN2qg.js",
204
- "chunks/item-option-number-field-CkqJjInE.js",
205
- "chunks/item-option-panel-CzSKFCVl.js",
206
- "chunks/item-option-picker-BnwQPT9A.js",
207
- "chunks/item-option-position-picker-Bkc4JvJX.js",
208
- "chunks/item-option-positions-number-field-Dr_315TE.js",
209
- "chunks/item-option-radio-button-group-BkymJq3E.js",
210
- "chunks/item-option-slider-K_bsNci8.js",
211
- "chunks/item-option-switch-DeihDHhM.js",
212
- "chunks/item-option-text-field-D7bkuhsv.js",
213
- "chunks/item-slot-picker-panel-D4BMxGs9.js",
197
+ "chunks/item-option-action-button-group-Bl1HR1JK.js",
198
+ "chunks/item-option-base-DF24wTyv.js",
199
+ "chunks/item-option-color-palette-picker-MkIIn56p.js",
200
+ "chunks/item-option-color-picker-CxosMo_p.js",
201
+ "chunks/item-option-color-range-C7C70r4J.js",
202
+ "chunks/item-option-guidelines-iu8yWRzr.js",
203
+ "chunks/item-option-multi-language-field-foanqCdr.js",
204
+ "chunks/item-option-number-field-ByVD4oq0.js",
205
+ "chunks/item-option-panel-Bya-K7HH.js",
206
+ "chunks/item-option-picker-CqNNVIML.js",
207
+ "chunks/item-option-position-picker-BjCFVtDH.js",
208
+ "chunks/item-option-positions-number-field-BJJtXZL-.js",
209
+ "chunks/item-option-radio-button-group-C5bxsD85.js",
210
+ "chunks/item-option-slider-DUXWz70B.js",
211
+ "chunks/item-option-switch-BHyJuOkP.js",
212
+ "chunks/item-option-text-field-rBZY9OX4.js",
213
+ "chunks/item-slot-picker-panel-BM82vSXi.js",
214
214
  "chunks/ja-CtDlXHD1.js",
215
215
  "chunks/ko-CekuHU50.js",
216
216
  "chunks/kpi-options.config-DGl2N2HJ.js",
@@ -227,9 +227,10 @@
227
227
  "chunks/line-chart-options.fr-Rp7fs4Id.js",
228
228
  "chunks/line-chart-options.nl-DcgJ9CUw.js",
229
229
  "chunks/line-chart-slots.config-CavGuJXK.js",
230
- "chunks/load-data-fields-for-datasets-ClctSj6y.js",
231
- "chunks/localize-DXRmGRe-.js",
232
- "chunks/localized-decorator-DJVBmJVH.js",
230
+ "chunks/load-data-fields-for-datasets-DS9O1oyy.js",
231
+ "chunks/localize-DLl7tgQp.js",
232
+ "chunks/localized-decorator-DosMCCQo.js",
233
+ "chunks/localized-mixin-BWJj88bd.js",
233
234
  "chunks/luzmo-icon-markup-ByaNI6dg.js",
234
235
  "chunks/luzmoAlignLeft-HA-XKPHy.js",
235
236
  "chunks/luzmoAngleDown-PNrItYzK.js",
@@ -252,7 +253,7 @@
252
253
  "chunks/marker-map-slots.config-CtzpU-rK.js",
253
254
  "chunks/mk-Dq3YK4jD.js",
254
255
  "chunks/nl-7csxtU-I.js",
255
- "chunks/nl-CViTevL3.js",
256
+ "chunks/nl-CQz2jrVx.js",
256
257
  "chunks/no-DJNRx8au.js",
257
258
  "chunks/ohlc-chart-options.config-kyYOgBtR.js",
258
259
  "chunks/ohlc-chart-options.de-DeQ8wdeE.js",
@@ -261,7 +262,7 @@
261
262
  "chunks/ohlc-chart-options.fr-DWhV_lXz.js",
262
263
  "chunks/ohlc-chart-options.nl-D8lhNKIv.js",
263
264
  "chunks/ohlc-chart-slots.config-xYpPbmg2.js",
264
- "chunks/option-interaction-controller-BslAXAHF.js",
265
+ "chunks/option-interaction-controller-BuwRr21c.js",
265
266
  "chunks/orion-BHOu-xse.js",
266
267
  "chunks/parallel-coordinates-plot-options.config-BcIYCRdF.js",
267
268
  "chunks/parallel-coordinates-plot-options.de-Dvi0gBbB.js",
@@ -302,7 +303,7 @@
302
303
  "chunks/regular-table-options.fr-roRCzuK8.js",
303
304
  "chunks/regular-table-options.nl-DxYUm_Rz.js",
304
305
  "chunks/regular-table-slots.config-BqEJgzhG.js",
305
- "chunks/route-map-options.config-Dwy0JSVq.js",
306
+ "chunks/route-map-options.config-CGBkHnhM.js",
306
307
  "chunks/route-map-options.de-Ke-Bybpi.js",
307
308
  "chunks/route-map-options.en-CDXIcBc0.js",
308
309
  "chunks/route-map-options.es-CCEXcHLb.js",
@@ -356,7 +357,7 @@
356
357
  "chunks/speedometer-chart-options.fr-BqnVNM9x.js",
357
358
  "chunks/speedometer-chart-options.nl-D2dmDbhJ.js",
358
359
  "chunks/speedometer-chart-slots.config-Cfsna_2O.js",
359
- "chunks/spike-map-options.config-DFmuNxym.js",
360
+ "chunks/spike-map-options.config-CSenlJ_F.js",
360
361
  "chunks/spike-map-options.de-cIVh4l8Z.js",
361
362
  "chunks/spike-map-options.en-CKjynYQl.js",
362
363
  "chunks/spike-map-options.es-_GxcrK73.js",
@@ -406,7 +407,6 @@
406
407
  "chunks/v4-BxSu4gkw.js",
407
408
  "chunks/venn-diagram-options.config-DmYOnwBz.js",
408
409
  "chunks/venn-diagram-slots.config-GnP5AAAL.js",
409
- "chunks/version-BW4Ixl63.js",
410
410
  "chunks/video-options.config-CfgT_MAw.js",
411
411
  "chunks/video-options.de-Cxs3-JN3.js",
412
412
  "chunks/video-options.en-ck74JByC.js",
package/types.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  * canonical owner modules (domain `src/types/*`, component `types.ts` files,
6
6
  * and selected utils).
7
7
  */
8
- export type { Column, ColumnSubtype, ColumnType, GenericSlotContent, GridConfig, ItemFilterGroup, OptionConfig, OptionsConfig, OptionTranslation, Slot, SlotConfig, SlotName, SlotPosition, SlotPositioningConfig, ThemeConfig, TranslationOverrides, TranslationsFile, VizItemSlot, VizItemType } from '@luzmo/dashboard-contents-types';
8
+ export type { Column, ColumnSubtype, ColumnType, GenericSlotContent, GridConfig, ItemFilterGroup, OptionConfig, OptionsConfig, OptionTranslation, Slot, SlotConfig, SlotName, SlotPosition, SlotPositioningConfig, ThemeConfig, TranslationOverrides, TranslationsFile, VizItemExportType, VizItemSlot, VizItemType } from '@luzmo/dashboard-contents-types';
9
9
  export type { ElementSize, Placement } from '@luzmo/lucero';
10
10
  export type * from './types/add-to-dashboard.types';
11
11
  export type * from './types/agent.types';
@@ -1,20 +0,0 @@
1
- /*! * A kit of modern Luzmo Web Components for analytics in your web application.
2
- *
3
- * Copyright © 2026 Luzmo
4
- * All rights reserved.
5
- * Luzmo web components (“Luzmo Web Components”)
6
- * must be used according to the Luzmo Terms of Service.
7
- * This license allows users with a current active Luzmo account
8
- * to use the Luzmo Web Components. This license terminates
9
- * automatically if a user no longer has an active Luzmo account.
10
- * Please view the Luzmo Terms of Service at: https://www.luzmo.com/information-pages/terms-of-use.
11
- *
12
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18
- * SOFTWARE.
19
- * */
20
- var e=function(e){return e.Top=`top`,e.Bottom=`bottom`,e}({}),t=function(e){return e.Asc=`asc`,e.Desc=`desc`,e}({}),n=function(e){return e.Measure=`measure`,e.Category=`category`,e}({}),r=5,i=Array.isArray;function a(e){return typeof e==`string`}function o(e){let t={...e};return!t.datasetId&&t.set&&(t.datasetId=t.set),!t.set&&t.datasetId&&(t.set=t.datasetId),!t.columnId&&t.column&&(t.columnId=t.column),!t.column&&t.columnId&&(t.column=t.columnId),!t.formulaId&&t.formula&&(t.formulaId=t.formula),!t.formula&&t.formulaId&&(t.formula=t.formulaId),t}function s(e){return i(e)?e:Object.entries(e).map(([e,t])=>({name:e,content:i(t)?t:[]}))}function c(e){let t=new Set;for(let n of e)for(let e of n.content){let n=e.datasetId??e.set;a(n)&&t.add(n)}return[...t]}function l(e){let t=s(e.slots??[]),n=e.options??{},r=n.interactivity;return{type:e.type,options:{...n,interactivity:{...r,scheduledExport:!1}},slots:t.map(e=>({...e,content:i(e.content)?e.content.map(e=>o(e)):[]})),filters:e.filters}}function u(e,t){return{...e,options:{...e.options,theme:{...e.options.theme,...t}}}}function d(e){let t=e.find(e=>e.name===`measure`||e.name===`measures`);if(t&&t.content.length>1)return!0;let n=e.find(e=>e.name===`legend`);return n?n.content.length>0:!1}function f(r){let i=[],a=r.options;switch(r.type){case`area-chart`:case`bar-chart`:case`column-chart`:if(i.push({type:`rankingPicker`,mutationType:`rankAndSort`,ranking:a.ranking??{active:!1,number:5,direction:e.Top},sort:a.sort??{direction:t.Desc,by:n.Measure},importance:100}),d(r.slots)){let e=r.type===`area-chart`,t=e?[{key:`stacked`,label:`Stacked`},{key:`unstacked`,label:`Unstacked`},{key:`100`,label:`100%`},{key:`stream`,label:`Stream`}]:[{key:`grouped`,label:`Grouped`},{key:`stacked`,label:`Stacked`},{key:`100`,label:`100%`}],n=e?`stacked`:`grouped`;i.push({type:`optionDropdown`,mutationType:`mode`,values:t,currentValue:a.mode??n,importance:90})}break;case`donut-chart`:{let e=a.display??{};i.push({type:`optionDropdown`,mutationType:`donutLabelDisplay`,values:[{key:`withLegend`,label:`With legend`},{key:`withLabels`,label:`With labels`}],currentValue:e.categoryLabels===!0?`withLabels`:`withLegend`,importance:90});break}case`bubble-chart`:{let e=a.display??{};i.push({type:`optionDropdown`,mutationType:`bubbleValues`,values:[{key:`none`,label:`No values`},{key:`absolute`,label:`Absolute`},{key:`percentage`,label:`Percentage`}],currentValue:e.bubbleValues??e.values??`none`,importance:100});break}}return i.sort((e,t)=>t.importance-e.importance)}function p(e,t,n){let r=e.options;switch(t){case`mode`:return{...e,options:{...r,mode:n}};case`donutLabelDisplay`:{let t={...r.display??{}};return n===`withLabels`?(t.legend=!1,t.categoryLabels=!0):(t.legend=!0,t.categoryLabels=!1),{...e,options:{...r,display:t}}}case`bubbleValues`:{let t={...r.display??{}};return t.bubbleLabels=t.bubbleLabels!==!1,t.bubbleValues=n,{...e,options:{...r,display:t}}}default:return e}}function m(e,t){switch(t.type){case`slots`:return{...e,slots:t.slotsContents};case`options`:return{...e,options:t.options};case`filters`:return{...e,filters:t.filters};case`chartAction`:return p(e,t.actionType,t.key);case`rankAndSort`:return{...e,options:{...e.options,ranking:t.ranking,sort:t.sort}};case`fullReplace`:return t.chart;default:return e}}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return t}});