@luzmo/analytics-components-kit 1.1.1 → 1.2.1

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 (161) hide show
  1. package/README.md +8 -2
  2. package/angular/components/interactive-viz-item.ts +40 -3
  3. package/angular/components/item-option-color-picker.ts +30 -3
  4. package/angular/components/item-option-color-range.ts +30 -3
  5. package/angular/components/item-option-guidelines.ts +31 -4
  6. package/angular/components/item-option-panel.ts +41 -4
  7. package/angular/components/item-option-slider.ts +41 -4
  8. package/angular/components/item-option.ts +41 -4
  9. package/angular/esm/components/interactive-viz-item.d.ts +13 -4
  10. package/angular/esm/components/interactive-viz-item.js +29 -3
  11. package/angular/esm/components/item-option-color-picker.d.ts +11 -4
  12. package/angular/esm/components/item-option-color-picker.js +23 -3
  13. package/angular/esm/components/item-option-color-range.d.ts +11 -4
  14. package/angular/esm/components/item-option-color-range.js +23 -3
  15. package/angular/esm/components/item-option-guidelines.d.ts +11 -4
  16. package/angular/esm/components/item-option-guidelines.js +24 -4
  17. package/angular/esm/components/item-option-panel.d.ts +13 -4
  18. package/angular/esm/components/item-option-panel.js +30 -4
  19. package/angular/esm/components/item-option-slider.d.ts +13 -4
  20. package/angular/esm/components/item-option-slider.js +30 -4
  21. package/angular/esm/components/item-option.d.ts +13 -4
  22. package/angular/esm/components/item-option.js +30 -4
  23. package/angular/package.json +2 -2
  24. package/angular/utils/option-interaction/index.d.ts +2 -0
  25. package/angular/utils/option-interaction/is-same-option-value.d.ts +10 -0
  26. package/angular/utils/option-interaction/option-interaction-controller.d.ts +54 -0
  27. package/angular/utils/option-interaction/tests/option-interaction-controller.test.d.ts +1 -0
  28. package/angular/utils/store/base-store.d.ts +9 -0
  29. package/angular/utils/store/tests/store-base-history.test.d.ts +1 -0
  30. package/components/{base-store-SgJsjLap.cjs → base-store-D3whjduR.cjs} +1 -1
  31. package/components/{base-store-g0dt7ru7.js → base-store-DQYj8A1W.js} +3 -0
  32. package/components/{choropleth-map-options.config-D9-u-NwX.js → choropleth-map-options.config-Blu0Z2tR.js} +1 -1
  33. package/components/{choropleth-map-options.config-CXDGMiSJ.cjs → choropleth-map-options.config-DwFJ00CS.cjs} +1 -1
  34. package/components/{color-range-utils-CUCTsRXM.js → color-range-utils-CgwRGUkg.js} +18 -18
  35. package/components/{color-range-utils-BCFQAeY1.cjs → color-range-utils-D8uygiMe.cjs} +1 -1
  36. package/components/{heat-map-options.config-ChZeslEy.js → heat-map-options.config-BQkhkLPb.js} +16 -16
  37. package/components/{heat-map-options.config-DiNa8NnG.cjs → heat-map-options.config-DjQkB039.cjs} +1 -1
  38. package/components/{heat-table-options.config-BPCszrFn.js → heat-table-options.config-CMWWTeyo.js} +1 -1
  39. package/components/{heat-table-options.config-BvE6coaV.cjs → heat-table-options.config-D21xtaIk.cjs} +1 -1
  40. package/components/index.cjs +1 -1
  41. package/components/index.js +7 -7
  42. package/components/interactive-viz-item/index.cjs +1 -1
  43. package/components/interactive-viz-item/index.d.ts +2 -1
  44. package/components/interactive-viz-item/index.js +1 -1
  45. package/components/interactive-viz-item/interactive-viz-item.d.ts +31 -1
  46. package/components/interactive-viz-item/types.d.ts +13 -0
  47. package/components/{interactive-viz-item-CofUkpP6.js → interactive-viz-item-CwRRaCZB.js} +144 -84
  48. package/components/interactive-viz-item-CxdrGRKc.cjs +265 -0
  49. package/components/is-same-option-value-B2oyvEqT.js +42 -0
  50. package/components/is-same-option-value-Cf6BQcs7.cjs +20 -0
  51. package/components/item-option/helpers/control-markup.d.ts +7 -0
  52. package/components/item-option/index.cjs +1 -1
  53. package/components/item-option/index.d.ts +1 -1
  54. package/components/item-option/index.js +1 -1
  55. package/components/item-option/item-option.d.ts +23 -2
  56. package/components/item-option/types.d.ts +19 -0
  57. package/components/{item-option-Cgx3c08E.js → item-option-DKLRnicU.js} +182 -136
  58. package/components/item-option-DpLdospV.cjs +285 -0
  59. package/components/item-option-color-picker/index.cjs +1 -1
  60. package/components/item-option-color-picker/index.d.ts +1 -1
  61. package/components/item-option-color-picker/index.js +1 -1
  62. package/components/item-option-color-picker/item-option-color-picker.d.ts +17 -1
  63. package/components/item-option-color-picker-CNW7GsCO.cjs +37 -0
  64. package/components/item-option-color-picker-DDvsY7hV.js +129 -0
  65. package/components/item-option-color-range/index.cjs +1 -1
  66. package/components/item-option-color-range/index.d.ts +1 -1
  67. package/components/item-option-color-range/index.js +1 -1
  68. package/components/item-option-color-range/item-option-color-range.d.ts +20 -1
  69. package/components/item-option-color-range-BqSbuSZh.cjs +101 -0
  70. package/components/item-option-color-range-FQduqtz3.js +265 -0
  71. package/components/item-option-guidelines/index.cjs +1 -1
  72. package/components/item-option-guidelines/index.d.ts +1 -1
  73. package/components/item-option-guidelines/index.js +1 -1
  74. package/components/item-option-guidelines/item-option-guidelines.d.ts +16 -1
  75. package/components/{item-option-guidelines-DNJevmVD.js → item-option-guidelines-k5DwMONo.js} +132 -104
  76. package/components/item-option-guidelines-z9BsGR-l.cjs +138 -0
  77. package/components/item-option-panel/index.cjs +1 -1
  78. package/components/item-option-panel/index.d.ts +1 -1
  79. package/components/item-option-panel/index.js +1 -1
  80. package/components/item-option-panel/item-option-panel.d.ts +12 -1
  81. package/components/{item-option-panel-DHdnisRb.js → item-option-panel-BLXWIbjX.js} +18 -6
  82. package/components/{item-option-panel-Dl3aYBNe.cjs → item-option-panel-CU51qvgV.cjs} +6 -4
  83. package/components/item-option-slider/index.cjs +1 -1
  84. package/components/item-option-slider/index.d.ts +1 -1
  85. package/components/item-option-slider/index.js +1 -1
  86. package/components/item-option-slider/item-option-slider.d.ts +15 -2
  87. package/components/item-option-slider-BKtJfL3D.js +119 -0
  88. package/components/item-option-slider-Kz2eFBql.cjs +36 -0
  89. package/components/item-options-configs.cjs +1 -1
  90. package/components/item-options-configs.js +5 -5
  91. package/components/option-interaction-controller-B8S1N_Oo.js +90 -0
  92. package/components/option-interaction-controller-D0U-CTpZ.cjs +20 -0
  93. package/components/{route-map-options.config-DdCaVtIF.cjs → route-map-options.config-DER6ENky.cjs} +1 -1
  94. package/components/{route-map-options.config-B7vT6KG_.js → route-map-options.config-DTcS47fW.js} +1 -1
  95. package/components/{spike-map-options.config-DkmRZ1JZ.js → spike-map-options.config-CPYfKWoF.js} +1 -1
  96. package/components/{spike-map-options.config-B3hDh2qU.cjs → spike-map-options.config-DeF1Whq5.cjs} +1 -1
  97. package/components/utils/store.cjs +1 -1
  98. package/components/utils/store.js +1 -1
  99. package/custom-elements.json +409 -103
  100. package/package.json +1 -1
  101. package/react/components/interactive-viz-item.component.ts +11 -2
  102. package/react/components/item-option-color-picker.component.ts +9 -3
  103. package/react/components/item-option-color-range.component.ts +9 -3
  104. package/react/components/item-option-guidelines.component.ts +9 -3
  105. package/react/components/item-option-panel.component.ts +12 -3
  106. package/react/components/item-option-slider.component.ts +12 -3
  107. package/react/components/item-option.component.ts +12 -3
  108. package/react/esm/components/interactive-viz-item.component.d.ts +8 -2
  109. package/react/esm/components/interactive-viz-item.component.js +7 -1
  110. package/react/esm/components/item-option-color-picker.component.d.ts +6 -2
  111. package/react/esm/components/item-option-color-picker.component.js +6 -2
  112. package/react/esm/components/item-option-color-range.component.d.ts +6 -2
  113. package/react/esm/components/item-option-color-range.component.js +6 -2
  114. package/react/esm/components/item-option-guidelines.component.d.ts +6 -2
  115. package/react/esm/components/item-option-guidelines.component.js +6 -2
  116. package/react/esm/components/item-option-panel.component.d.ts +8 -2
  117. package/react/esm/components/item-option-panel.component.js +8 -2
  118. package/react/esm/components/item-option-slider.component.d.ts +8 -2
  119. package/react/esm/components/item-option-slider.component.js +8 -2
  120. package/react/esm/components/item-option.component.d.ts +8 -2
  121. package/react/esm/components/item-option.component.js +8 -2
  122. package/react/luzmo-stub.d.ts +7 -0
  123. package/react/package.json +2 -2
  124. package/standalone/chunks/{choropleth-map-options.config-Cs4Kvr9h.js → choropleth-map-options.config-rUJsEJcm.js} +1 -1
  125. package/standalone/chunks/{color-range-utils-CKDpd3gZ.js → color-range-utils-DxOtqAKB.js} +1 -1
  126. package/standalone/chunks/embed-CBu7iQRx.js +231 -0
  127. package/standalone/chunks/{heat-map-options.config-DF5kjOOe.js → heat-map-options.config-D93AeYFi.js} +1 -1
  128. package/standalone/chunks/{heat-table-options.config-DaePzfHG.js → heat-table-options.config-ZVML76FK.js} +1 -1
  129. package/standalone/chunks/is-same-option-value-Di-A7Wmg.js +2 -0
  130. package/standalone/chunks/item-option-color-picker-lLvBPnKA.js +19 -0
  131. package/standalone/chunks/{item-option-color-range-CyJd1LZ_.js → item-option-color-range-BqeatOei.js} +18 -15
  132. package/standalone/chunks/item-option-guidelines-Cop8rM8y.js +120 -0
  133. package/standalone/chunks/item-option-panel-CzSKFCVl.js +316 -0
  134. package/standalone/chunks/item-option-slider-K_bsNci8.js +18 -0
  135. package/standalone/chunks/option-interaction-controller-BslAXAHF.js +2 -0
  136. package/standalone/chunks/{route-map-options.config-D7FfzIiU.js → route-map-options.config-Dwy0JSVq.js} +1 -1
  137. package/standalone/chunks/{spike-map-options.config-CZiFzDm9.js → spike-map-options.config-DFmuNxym.js} +1 -1
  138. package/standalone/interactive-viz-item.js +24 -20
  139. package/standalone/item-grid.js +1 -1
  140. package/standalone/manifest.json +14 -13
  141. package/utils/option-interaction/index.d.ts +2 -0
  142. package/utils/option-interaction/is-same-option-value.d.ts +10 -0
  143. package/utils/option-interaction/option-interaction-controller.d.ts +54 -0
  144. package/utils/option-interaction/tests/option-interaction-controller.test.d.ts +1 -0
  145. package/utils/store/base-store.d.ts +9 -0
  146. package/utils/store/tests/store-base-history.test.d.ts +1 -0
  147. package/components/interactive-viz-item-D537mo3l.cjs +0 -261
  148. package/components/item-option-CqGDFdPj.cjs +0 -269
  149. package/components/item-option-color-picker-BpPoOO2b.cjs +0 -34
  150. package/components/item-option-color-picker-cojuCvu5.js +0 -84
  151. package/components/item-option-color-range-CMBEx1fi.cjs +0 -98
  152. package/components/item-option-color-range-Dt7Bv06p.js +0 -217
  153. package/components/item-option-guidelines-Beh0DlG0.cjs +0 -135
  154. package/components/item-option-slider-Bo5vs6nr.js +0 -89
  155. package/components/item-option-slider-CyWKWr5D.cjs +0 -33
  156. package/standalone/chunks/color-7IgCGZKz.js +0 -2
  157. package/standalone/chunks/embed-BfHBKhIe.js +0 -231
  158. package/standalone/chunks/item-option-color-picker-Cr7ujQNO.js +0 -16
  159. package/standalone/chunks/item-option-guidelines-6NjpzS6b.js +0 -117
  160. package/standalone/chunks/item-option-panel-VxvWU56c.js +0 -298
  161. package/standalone/chunks/item-option-slider-l9wt7_0c.js +0 -15
@@ -19,16 +19,16 @@
19
19
  *
20
20
  */
21
21
 
22
- import{i as e,n as t,r as n}from"./chunks/version-BW4Ixl63.js";import{t as r}from"./chunks/luzmoAlignLeft-HA-XKPHy.js";import{a as i,c as a,d as o,f as s,i as c,l,n as u,o as d,p as f,r as p,s as m,t as h,u as g}from"./chunks/chart-helpers-DsIGsaDc.js";import"./chunks/embed-BfHBKhIe.js";import{t as _}from"./chunks/create-lazy-loader-DC0rJePE.js";import{html as v,nothing as y,property as b,state as x,unsafeCSS as S}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/overlay.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/popover.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/progress-circle.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/action-group.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/field-label.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/number-field.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/picker.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/tabs.js";var C={icon:[32,32,`M16 0a16 16 0 1 0 16 16A16 16 0 0 0 16 0m0 7q1.4 0 1.5 1.5c0 2-3 2-3 0 0-1 .8-1.5 1.5-1.5m0 5q.9 0 1 1v10c0 1.3-2 1.3-2 0V13q.1-1 1-1`],name:`info-circle`},w={icon:[32,32,`M18.05 5.11a1.5 1.5 0 1 1 2.9.8l-.29 1.02a13.67 13.67 0 0 1-1.54 3.56 1 1 0 0 0 .85 1.52H28a2 2 0 0 1 1.07 3.7 1 1 0 0 0-.33 1.32 2 2 0 0 1-.82 2.76 1 1 0 0 0-.33 1.5 1.99 1.99 0 0 1-.96 3.12 1 1 0 0 0-.67 1.17A2 2 0 0 1 24 28h-5.6c-.98 0-1.94-.3-2.77-.84l-2.4-1.6a4.94 4.94 0 0 1-1.4-1.42 1 1 0 0 0-1.4-.29 1 1 0 0 0-.28 1.4c.5.76 1.17 1.43 1.96 1.97l2.4 1.6a6.98 6.98 0 0 0 3.89 1.18H24a4 4 0 0 0 4-4v-.04a4 4 0 0 0 1.7-5 4 4 0 0 0 1.13-4.13A4 4 0 0 0 28 10h-6.35c.39-.82.7-1.67.94-2.56l.29-1.02a3.51 3.51 0 0 0-6.76-1.85l-.28 1.03a8.5 8.5 0 0 1-3.64 4.93l-.2.13a6.53 6.53 0 0 0-1.84 1.76 1 1 0 0 0 .25 1.4 1 1 0 0 0 1.4-.25c.33-.49.76-.9 1.27-1.22l.2-.13c2.2-1.4 3.8-3.57 4.49-6.1ZM2 14.01h4v14H2Zm-2 0v14c0 1.1.9 2 2 2h4a2 2 0 0 0 2-2V14a2 2 0 0 0-2-2H2a2 2 0 0 0-2 2z`],name:`thumbs-up`},T={icon:[32,32,`M18.05 26.89a1.5 1.5 0 1 0 2.9-.8l-.29-1.02a13.66 13.66 0 0 0-1.54-3.56 1 1 0 0 1 .85-1.52H28a2 2 0 0 0 1.07-3.69 1 1 0 0 1-.33-1.33 2 2 0 0 0-.82-2.76 1 1 0 0 1-.33-1.5 1.99 1.99 0 0 0-.96-3.12 1 1 0 0 1-.67-1.16A2 2 0 0 0 24 4h-5.6c-.98 0-1.94.3-2.77.84l-2.4 1.6c-.57.38-1.04.86-1.4 1.41a1 1 0 0 1-1.67-1.1 7.03 7.03 0 0 1 1.95-1.97l2.4-1.6A6.98 6.98 0 0 1 18.4 2H24a4 4 0 0 1 4 4v.04a4 4 0 0 1 1.7 5 3.99 3.99 0 0 1 1.13 4.13A3.99 3.99 0 0 1 28 22h-6.35c.39.81.7 1.66.94 2.55l.28 1.03a3.5 3.5 0 0 1-6.75 1.84l-.28-1.03a8.5 8.5 0 0 0-3.64-4.93l-.2-.13a6.52 6.52 0 0 1-1.84-1.76 1 1 0 0 1 .25-1.4 1 1 0 0 1 1.4.26c.33.48.76.9 1.27 1.22l.2.12c2.2 1.4 3.8 3.57 4.49 6.1zM2 21.99h4V8H2Zm-2 0V8c0-1.1.9-2 2-2h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2z`],name:`thumbs-down`},E=`:host{box-sizing:border-box;display:block;container-type:inline-size}.answer{width:100%;display:block}.chart-actions-bar{justify-content:space-between;align-items:flex-start;gap:var(--luzmo-interactive-viz-item-actions-gap,var(--interactive-viz-item-actions-gap));padding-block:var(--luzmo-interactive-viz-item-actions-padding-block,var(--interactive-viz-item-actions-padding-block));flex-wrap:nowrap;margin-block-start:var(--luzmo-interactive-viz-item-actions-margin-block-start,var(--interactive-viz-item-actions-margin-block-start));display:flex}.chart-actions-primary{gap:var(--luzmo-interactive-viz-item-actions-gap,var(--interactive-viz-item-actions-gap));flex-wrap:wrap;flex:1;align-items:center;min-width:0;display:flex}.ranking-content{gap:var(--luzmo-spacing-3);padding:var(--luzmo-spacing-3);flex-direction:column;display:flex}.ranking-row{gap:var(--luzmo-spacing-3);align-items:center;display:flex}.ranking-number{width:4rem}.icon-flipped{transform:scaleY(-1)}.chart-container{border-radius:var(--luzmo-interactive-viz-item-chart-border-radius,var(--interactive-viz-item-chart-border-radius));height:var(--luzmo-interactive-viz-item-chart-height,var(--interactive-viz-item-chart-height));overflow:hidden}.chart-container luzmo-embed-viz-item{width:100%;height:100%;display:block}.feedback-row{padding-block:var(--luzmo-interactive-viz-item-feedback-padding-block,var(--interactive-viz-item-feedback-padding-block));justify-content:space-between;align-items:center;display:flex}.rating-btn-positive{--luzmo-action-button-content-color-default-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-content-color-hover-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-content-color-down-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-content-color-focus-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-background-color-default-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-hover-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-down-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-focus-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background))}.rating-btn-negative{--luzmo-action-button-content-color-default-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-content-color-hover-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-content-color-down-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-content-color-focus-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-background-color-default-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-hover-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-down-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-focus-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background))}.config-toggle{--luzmo-action-button-border-radius:32px;margin-inline-start:auto}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.config-panel{border:1px solid var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color));border-radius:var(--luzmo-interactive-viz-item-config-panel-border-radius,var(--interactive-viz-item-config-panel-border-radius));padding:var(--luzmo-interactive-viz-item-config-panel-padding,var(--interactive-viz-item-config-panel-padding));background:var(--luzmo-interactive-viz-item-config-panel-background,var(--interactive-viz-item-config-panel-background));margin-block-start:var(--luzmo-spacing-2)}.config-panel luzmo-tab-panel[selected]{padding-block-start:var(--luzmo-spacing-4);display:block}.config-panel luzmo-item-option-panel,.config-panel luzmo-item-slot-picker-panel,.config-panel luzmo-filters{width:100%;max-height:15rem;scrollbar-width:thin;scrollbar-color:var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color)) transparent;padding-inline-end:var(--luzmo-spacing-3);overflow-y:auto}.edit-grid{min-height:12.5rem;display:flex}.edit-column{gap:var(--luzmo-spacing-3);flex-direction:column;display:flex}.edit-column:first-child{flex-shrink:0;max-width:15rem}.edit-column-filters{border-inline-start:1px solid var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color));flex:1;min-width:18.75rem;padding-inline-start:var(--luzmo-spacing-5)}@container (width<=520px){.edit-grid{flex-direction:column}.edit-column,.edit-column:first-child{width:100%;min-width:0;max-width:100%}.edit-column-filters{border-inline-start:none;border-block-start:1px solid var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color));min-width:0;margin-block-start:var(--luzmo-spacing-3);padding-block-start:var(--luzmo-spacing-4);padding-inline-start:0}}@container (width<=768px){.chart-container{height:calc(var(--luzmo-interactive-viz-item-chart-height,var(--interactive-viz-item-chart-height)) - var(--luzmo-interactive-viz-item-chart-narrow-offset,var(--interactive-viz-item-chart-narrow-offset)))}}:host{--interactive-viz-item-actions-gap:var(--luzmo-spacing-3);--interactive-viz-item-actions-padding-block:var(--luzmo-spacing-3);--interactive-viz-item-actions-margin-block-start:var(--luzmo-spacing-5);--interactive-viz-item-chart-height:20rem;--interactive-viz-item-chart-narrow-offset:2.5rem;--interactive-viz-item-chart-border-radius:var(--luzmo-border-radius);--interactive-viz-item-feedback-padding-block:var(--luzmo-spacing-4);--interactive-viz-item-config-panel-padding:var(--luzmo-spacing-5);--interactive-viz-item-config-panel-border-color:var(--luzmo-border-color);--interactive-viz-item-config-panel-border-radius:var(--luzmo-border-radius);--interactive-viz-item-config-panel-background:var(--luzmo-background-color);--interactive-viz-item-rating-positive-color:var(--luzmo-positive-color,#12855a);--interactive-viz-item-rating-negative-color:var(--luzmo-negative-color,#ca221c);--interactive-viz-item-rating-selected-background:var(--luzmo-background-color-focus,#0000000f)}:host([size=s]){--interactive-viz-item-chart-height:17.5rem}:host([size=l]){--interactive-viz-item-chart-height:22rem}:host([size=xl]){--interactive-viz-item-chart-height:24rem}`,D=_(()=>import(`./add-to-dashboard.js`)).load,O=[`luzmo-filters`,`luzmo-item-option-panel`,`luzmo-item-slot-picker-panel`],k=_(()=>Promise.all([import(`./chunks/filters-DKgJcQGP.js`),import(`./chunks/item-option-panel-VxvWU56c.js`).then(e=>e.t),import(`./chunks/item-slot-picker-panel-D4BMxGs9.js`).then(e=>e.t)])),A=k.load,j=()=>k.isLoaded()||O.every(e=>customElements.get(e)!==void 0),M=0,N=class extends t(s(f,{validSizes:Object.values(o)})){constructor(...e){super(...e),this.chart=null,this.feedback=null,this.messageId=``,this.authKey=``,this.authToken=``,this.apiUrl=`https://api.luzmo.com`,this.appServer=`https://app.luzmo.com`,this.contentLanguage=``,this.hideActions=!1,this.hideFeedback=!1,this.hideConfigPanel=!1,this.addToDashboard=!1,this.dashboardActions=null,this.controlled=!1,this._configPanelOpen=!1,this._configPanelPending=!1,this._configPanelLoadFailed=!1,this._rankingTriggerId=`interactive-viz-item-ranking-${++M}`,this._handleSlotsChanged=e=>{this.chart&&this._emitChart({...this.chart,slots:e.detail.slotsContents})},this._handleFiltersChanged=e=>{this.chart&&this._emitChart({...this.chart,filters:e.detail.filters})},this._handleOptionsChanged=e=>{if(!this.chart)return;let t=e.detail.options;if(!t)return;let n=this.chart.options.theme??{};this._emitChart({...this.chart,options:{...t,theme:{...n}}})}}static get styles(){return[S(E)]}get _effectiveContentLanguage(){return this.contentLanguage||this.language}_dispatch(e,t){let n=new CustomEvent(e,{detail:t,bubbles:!0,composed:!0});this.dispatchEvent(n)}get _chartActions(){return this.chart?u(d(this.chart)):[]}get _rating(){return this.feedback?.rating??0}get _canShowConfigPanel(){return!!this.chart&&!this.hideConfigPanel}async _toggleConfigPanel(){if(this._configPanelLoadFailed=!1,this._configPanelOpen)this._configPanelOpen=!1;else if(!this._configPanelPending){if(!j()){this._configPanelPending=!0;try{await A()}catch(e){console.warn(`Failed to load the chart configuration panel:`,e),this._configPanelLoadFailed=!0;return}finally{this._configPanelPending=!1}}this.isConnected&&this._canShowConfigPanel&&(this._configPanelOpen=!0)}}willUpdate(e){super.willUpdate(e),e.has(`addToDashboard`)&&this.addToDashboard&&D().catch(e=>console.warn(`Failed to load add to dashboard:`,e))}_emitOptions(e){!this.controlled&&this.chart&&(this.chart={...this.chart,options:e}),this._dispatch(`luzmo-chart-options-changed`,{options:e})}_emitChart(e){this.controlled||(this.chart=e),this._dispatch(`luzmo-chart-changed`,{chart:e})}_handleDropdownChange(e,t){if(!this.chart)return;t.stopPropagation();let n=t.detail,r=typeof n==`string`?n:n?.value??t.target?.value;if(!r)return;let i=h({...d(this.chart),options:this.chart.options},{type:`chartAction`,actionType:e.mutationType,key:r});this._emitOptions(i.options)}_currentRanking(e){return e.ranking??{active:!1,number:5,direction:a.Top}}_currentSort(e){return e.sort??{direction:g.Desc,by:l.Measure}}_emitRankAndSort(e,t){this.chart&&this._emitOptions({...this.chart.options,ranking:e,sort:t})}_renderOptionDropdown(e){let t=e.values??[],n=e.currentValue||t[0]?.key||``;return v`
22
+ import{i as e,n as t,r as n}from"./chunks/version-BW4Ixl63.js";import{t as r}from"./chunks/luzmoAlignLeft-HA-XKPHy.js";import{a as i,c as a,d as o,f as s,i as c,l,n as u,o as d,p as f,r as p,s as m,t as h,u as g}from"./chunks/chart-helpers-DsIGsaDc.js";import"./chunks/embed-CBu7iQRx.js";import{n as _}from"./chunks/is-same-option-value-Di-A7Wmg.js";import{t as v}from"./chunks/create-lazy-loader-DC0rJePE.js";import{html as y,nothing as b,property as x,state as S,unsafeCSS as C}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/overlay.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/popover.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/progress-circle.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/action-group.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/field-label.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/number-field.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/picker.js";import"https://cdn.jsdelivr.net/npm/@luzmo/lucero@2.6.1/standalone/tabs.js";var w={icon:[32,32,`M16 0a16 16 0 1 0 16 16A16 16 0 0 0 16 0m0 7q1.4 0 1.5 1.5c0 2-3 2-3 0 0-1 .8-1.5 1.5-1.5m0 5q.9 0 1 1v10c0 1.3-2 1.3-2 0V13q.1-1 1-1`],name:`info-circle`},T={icon:[32,32,`M18.05 5.11a1.5 1.5 0 1 1 2.9.8l-.29 1.02a13.67 13.67 0 0 1-1.54 3.56 1 1 0 0 0 .85 1.52H28a2 2 0 0 1 1.07 3.7 1 1 0 0 0-.33 1.32 2 2 0 0 1-.82 2.76 1 1 0 0 0-.33 1.5 1.99 1.99 0 0 1-.96 3.12 1 1 0 0 0-.67 1.17A2 2 0 0 1 24 28h-5.6c-.98 0-1.94-.3-2.77-.84l-2.4-1.6a4.94 4.94 0 0 1-1.4-1.42 1 1 0 0 0-1.4-.29 1 1 0 0 0-.28 1.4c.5.76 1.17 1.43 1.96 1.97l2.4 1.6a6.98 6.98 0 0 0 3.89 1.18H24a4 4 0 0 0 4-4v-.04a4 4 0 0 0 1.7-5 4 4 0 0 0 1.13-4.13A4 4 0 0 0 28 10h-6.35c.39-.82.7-1.67.94-2.56l.29-1.02a3.51 3.51 0 0 0-6.76-1.85l-.28 1.03a8.5 8.5 0 0 1-3.64 4.93l-.2.13a6.53 6.53 0 0 0-1.84 1.76 1 1 0 0 0 .25 1.4 1 1 0 0 0 1.4-.25c.33-.49.76-.9 1.27-1.22l.2-.13c2.2-1.4 3.8-3.57 4.49-6.1ZM2 14.01h4v14H2Zm-2 0v14c0 1.1.9 2 2 2h4a2 2 0 0 0 2-2V14a2 2 0 0 0-2-2H2a2 2 0 0 0-2 2z`],name:`thumbs-up`},E={icon:[32,32,`M18.05 26.89a1.5 1.5 0 1 0 2.9-.8l-.29-1.02a13.66 13.66 0 0 0-1.54-3.56 1 1 0 0 1 .85-1.52H28a2 2 0 0 0 1.07-3.69 1 1 0 0 1-.33-1.33 2 2 0 0 0-.82-2.76 1 1 0 0 1-.33-1.5 1.99 1.99 0 0 0-.96-3.12 1 1 0 0 1-.67-1.16A2 2 0 0 0 24 4h-5.6c-.98 0-1.94.3-2.77.84l-2.4 1.6c-.57.38-1.04.86-1.4 1.41a1 1 0 0 1-1.67-1.1 7.03 7.03 0 0 1 1.95-1.97l2.4-1.6A6.98 6.98 0 0 1 18.4 2H24a4 4 0 0 1 4 4v.04a4 4 0 0 1 1.7 5 3.99 3.99 0 0 1 1.13 4.13A3.99 3.99 0 0 1 28 22h-6.35c.39.81.7 1.66.94 2.55l.28 1.03a3.5 3.5 0 0 1-6.75 1.84l-.28-1.03a8.5 8.5 0 0 0-3.64-4.93l-.2-.13a6.52 6.52 0 0 1-1.84-1.76 1 1 0 0 1 .25-1.4 1 1 0 0 1 1.4.26c.33.48.76.9 1.27 1.22l.2.12c2.2 1.4 3.8 3.57 4.49 6.1zM2 21.99h4V8H2Zm-2 0V8c0-1.1.9-2 2-2h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2z`],name:`thumbs-down`},D=`:host{box-sizing:border-box;display:block;container-type:inline-size}.answer{width:100%;display:block}.chart-actions-bar{justify-content:space-between;align-items:flex-start;gap:var(--luzmo-interactive-viz-item-actions-gap,var(--interactive-viz-item-actions-gap));padding-block:var(--luzmo-interactive-viz-item-actions-padding-block,var(--interactive-viz-item-actions-padding-block));flex-wrap:nowrap;margin-block-start:var(--luzmo-interactive-viz-item-actions-margin-block-start,var(--interactive-viz-item-actions-margin-block-start));display:flex}.chart-actions-primary{gap:var(--luzmo-interactive-viz-item-actions-gap,var(--interactive-viz-item-actions-gap));flex-wrap:wrap;flex:1;align-items:center;min-width:0;display:flex}.ranking-content{gap:var(--luzmo-spacing-3);padding:var(--luzmo-spacing-3);flex-direction:column;display:flex}.ranking-row{gap:var(--luzmo-spacing-3);align-items:center;display:flex}.ranking-number{width:4rem}.icon-flipped{transform:scaleY(-1)}.chart-container{border-radius:var(--luzmo-interactive-viz-item-chart-border-radius,var(--interactive-viz-item-chart-border-radius));height:var(--luzmo-interactive-viz-item-chart-height,var(--interactive-viz-item-chart-height));overflow:hidden}.chart-container luzmo-embed-viz-item{width:100%;height:100%;display:block}.feedback-row{padding-block:var(--luzmo-interactive-viz-item-feedback-padding-block,var(--interactive-viz-item-feedback-padding-block));justify-content:space-between;align-items:center;display:flex}.rating-btn-positive{--luzmo-action-button-content-color-default-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-content-color-hover-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-content-color-down-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-content-color-focus-selected:var(--luzmo-interactive-viz-item-rating-positive-color,var(--interactive-viz-item-rating-positive-color));--luzmo-action-button-background-color-default-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-hover-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-down-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-focus-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background))}.rating-btn-negative{--luzmo-action-button-content-color-default-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-content-color-hover-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-content-color-down-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-content-color-focus-selected:var(--luzmo-interactive-viz-item-rating-negative-color,var(--interactive-viz-item-rating-negative-color));--luzmo-action-button-background-color-default-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-hover-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-down-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background));--luzmo-action-button-background-color-focus-selected:var(--luzmo-interactive-viz-item-rating-selected-background,var(--interactive-viz-item-rating-selected-background))}.config-toggle{--luzmo-action-button-border-radius:32px;margin-inline-start:auto}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.config-panel{border:1px solid var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color));border-radius:var(--luzmo-interactive-viz-item-config-panel-border-radius,var(--interactive-viz-item-config-panel-border-radius));padding:var(--luzmo-interactive-viz-item-config-panel-padding,var(--interactive-viz-item-config-panel-padding));background:var(--luzmo-interactive-viz-item-config-panel-background,var(--interactive-viz-item-config-panel-background));margin-block-start:var(--luzmo-spacing-2)}.config-panel luzmo-tab-panel[selected]{padding-block-start:var(--luzmo-spacing-4);display:block}.config-panel luzmo-item-option-panel,.config-panel luzmo-item-slot-picker-panel,.config-panel luzmo-filters{width:100%;max-height:15rem;scrollbar-width:thin;scrollbar-color:var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color)) transparent;padding-inline-end:var(--luzmo-spacing-3);overflow-y:auto}.edit-grid{min-height:12.5rem;display:flex}.edit-column{gap:var(--luzmo-spacing-3);flex-direction:column;display:flex}.edit-column:first-child{flex-shrink:0;max-width:15rem}.edit-column-filters{border-inline-start:1px solid var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color));flex:1;min-width:18.75rem;padding-inline-start:var(--luzmo-spacing-5)}@container (width<=520px){.edit-grid{flex-direction:column}.edit-column,.edit-column:first-child{width:100%;min-width:0;max-width:100%}.edit-column-filters{border-inline-start:none;border-block-start:1px solid var(--luzmo-interactive-viz-item-config-panel-border-color,var(--interactive-viz-item-config-panel-border-color));min-width:0;margin-block-start:var(--luzmo-spacing-3);padding-block-start:var(--luzmo-spacing-4);padding-inline-start:0}}@container (width<=768px){.chart-container{height:calc(var(--luzmo-interactive-viz-item-chart-height,var(--interactive-viz-item-chart-height)) - var(--luzmo-interactive-viz-item-chart-narrow-offset,var(--interactive-viz-item-chart-narrow-offset)))}}:host{--interactive-viz-item-actions-gap:var(--luzmo-spacing-3);--interactive-viz-item-actions-padding-block:var(--luzmo-spacing-3);--interactive-viz-item-actions-margin-block-start:var(--luzmo-spacing-5);--interactive-viz-item-chart-height:20rem;--interactive-viz-item-chart-narrow-offset:2.5rem;--interactive-viz-item-chart-border-radius:var(--luzmo-border-radius);--interactive-viz-item-feedback-padding-block:var(--luzmo-spacing-4);--interactive-viz-item-config-panel-padding:var(--luzmo-spacing-5);--interactive-viz-item-config-panel-border-color:var(--luzmo-border-color);--interactive-viz-item-config-panel-border-radius:var(--luzmo-border-radius);--interactive-viz-item-config-panel-background:var(--luzmo-background-color);--interactive-viz-item-rating-positive-color:var(--luzmo-positive-color,#12855a);--interactive-viz-item-rating-negative-color:var(--luzmo-negative-color,#ca221c);--interactive-viz-item-rating-selected-background:var(--luzmo-background-color-focus,#0000000f)}:host([size=s]){--interactive-viz-item-chart-height:17.5rem}:host([size=l]){--interactive-viz-item-chart-height:22rem}:host([size=xl]){--interactive-viz-item-chart-height:24rem}`,O=v(()=>import(`./add-to-dashboard.js`)).load,k=[`luzmo-filters`,`luzmo-item-option-panel`,`luzmo-item-slot-picker-panel`],A=v(()=>Promise.all([import(`./chunks/filters-DKgJcQGP.js`),import(`./chunks/item-option-panel-CzSKFCVl.js`).then(e=>e.t),import(`./chunks/item-slot-picker-panel-D4BMxGs9.js`).then(e=>e.t)])),j=A.load,M=()=>A.isLoaded()||k.every(e=>customElements.get(e)!==void 0),N=0,P={},F=(e,t)=>t!==null&&_(JSON.parse(JSON.stringify(e)),JSON.parse(JSON.stringify(t))),I=class extends t(s(f,{validSizes:Object.values(o)})){constructor(...e){super(...e),this.chart=null,this.feedback=null,this.messageId=``,this.authKey=``,this.authToken=``,this.apiUrl=`https://api.luzmo.com`,this.appServer=`https://app.luzmo.com`,this.contentLanguage=``,this.hideActions=!1,this.hideFeedback=!1,this.hideConfigPanel=!1,this.addToDashboard=!1,this.dashboardActions=null,this.controlled=!1,this.liveInteractions=!1,this._configPanelOpen=!1,this._configPanelPending=!1,this._configPanelLoadFailed=!1,this._rankingTriggerId=`interactive-viz-item-ranking-${++N}`,this._interactionGeneration=0,this._openInteractions=/* @__PURE__ */ new Map,this._ownCharts=[],this._handleSlotsChanged=e=>{this.chart&&this._emitChart({...this.chart,slots:e.detail.slotsContents})},this._handleFiltersChanged=e=>{this.chart&&this._emitChart({...this.chart,filters:e.detail.filters})},this._handleOptionsChanged=e=>{if(!this.chart)return;let{options:t,interaction:n}=e.detail;if(!t)return;if(n){let e=this._openInteractions.get(n.id);if(!e||!this._isCurrentContext(e)){e?.generation===this._interactionGeneration&&this._invalidateInteractions();return}}let r=this.chart.options.theme??{};this._emitChart({...this.chart,options:{...t,theme:r}},n)},this._handleInteractionStart=e=>{if(!this.chart)return;let t={chart:this.chart,generation:this._interactionGeneration,auth:this._auth};this._openInteractions.set(e.detail.id,t),this._dispatchInteraction(e,t)},this._handleInteractionClosed=e=>{let t=this._openInteractions.get(e.detail.id);this._openInteractions.delete(e.detail.id),this._openInteractions.size===0&&(this._ownCharts=this._ownCharts.slice(-1)),t&&this._dispatchInteraction(e,t)}}static get styles(){return[C(D)]}get _effectiveContentLanguage(){return this.contentLanguage||this.language}_dispatch(e,t){let n=new CustomEvent(e,{detail:t,bubbles:!0,composed:!0});this.dispatchEvent(n)}get _chartActions(){return this.chart?u(d(this.chart)):[]}get _rating(){return this.feedback?.rating??0}get _canShowConfigPanel(){return!!this.chart&&!this.hideConfigPanel}async _toggleConfigPanel(){if(this._configPanelLoadFailed=!1,this._configPanelOpen)this.endInteraction(),this._configPanelOpen=!1;else if(!this._configPanelPending){if(!M()){this._configPanelPending=!0;try{await j()}catch(e){console.warn(`Failed to load the chart configuration panel:`,e),this._configPanelLoadFailed=!0;return}finally{this._configPanelPending=!1}}this.isConnected&&this._canShowConfigPanel&&(this._configPanelOpen=!0)}}endInteraction(){this.renderRoot?.querySelector(`luzmo-item-option-panel`)?.endInteraction?.()}willUpdate(e){super.willUpdate(e),this._openInteractions.size>0&&this._invalidatesInteractions(e)&&this._invalidateInteractions(),e.has(`addToDashboard`)&&this.addToDashboard&&O().catch(e=>console.warn(`Failed to load add to dashboard:`,e))}_emitOptions(e){!this.controlled&&this.chart&&(this.chart={...this.chart,options:e}),this._dispatch(`luzmo-chart-options-changed`,{options:e})}_invalidatesInteractions(e){return e.has(`authKey`)||e.has(`authToken`)||e.has(`apiUrl`)||e.has(`hideConfigPanel`)?!0:e.has(`chart`)&&[...this._openInteractions.values()].some(e=>!this._isCurrentChart(e))}_invalidateInteractions(){this._interactionGeneration++,this.endInteraction()}get _auth(){return[this.authKey,this.authToken,this.apiUrl]}_isCurrentChart(e){let t=this.chart;return t===e.chart||this._ownCharts.some(e=>e===t)||[...this._ownCharts].reverse().some(e=>F(e,t))||F(e.chart,t)}_isCurrentContext(e){return e.generation===this._interactionGeneration&&e.auth.every((e,t)=>e===this._auth[t])&&this._isCurrentChart(e)}_emitChart(e,t){this._ownCharts=this._openInteractions.size>0?[...this._ownCharts,e]:[e],this.controlled||(this.chart=e),this._dispatch(`luzmo-chart-changed`,t?{chart:e,interaction:t}:{chart:e})}_handleDropdownChange(e,t){if(!this.chart)return;t.stopPropagation();let n=t.detail,r=typeof n==`string`?n:n?.value??t.target?.value;if(!r)return;let i=h({...d(this.chart),options:this.chart.options},{type:`chartAction`,actionType:e.mutationType,key:r});this._emitOptions(i.options)}_currentRanking(e){return e.ranking??{active:!1,number:5,direction:a.Top}}_currentSort(e){return e.sort??{direction:g.Desc,by:l.Measure}}_emitRankAndSort(e,t){this.chart&&this._emitOptions({...this.chart.options,ranking:e,sort:t})}_renderOptionDropdown(e){let t=e.values??[],n=e.currentValue||t[0]?.key||``;return y`
23
23
  <luzmo-picker
24
24
  size=${this.size}
25
25
  variant="highlight"
26
26
  value=${n}
27
27
  @change=${t=>this._handleDropdownChange(e,t)}
28
28
  >
29
- ${t.map(e=>v`<luzmo-menu-item value=${e.key}>${e.label}</luzmo-menu-item>`)}
29
+ ${t.map(e=>y`<luzmo-menu-item value=${e.key}>${e.label}</luzmo-menu-item>`)}
30
30
  </luzmo-picker>
31
- `}_renderRankingPicker(t){let n=this._currentRanking(t),i=this._currentSort(t);if(!n.active)return v`
31
+ `}_renderRankingPicker(t){let n=this._currentRanking(t),i=this._currentSort(t);if(!n.active)return y`
32
32
  <luzmo-action-button
33
33
  size=${this.size}
34
34
  @click=${()=>this._emitRankAndSort({active:!0,number:5,direction:a.Top},i)}
@@ -36,7 +36,7 @@ import{i as e,n as t,r as n}from"./chunks/version-BW4Ixl63.js";import{t as r}fro
36
36
  <luzmo-icon slot="icon" size="xs" .icon=${r}></luzmo-icon>
37
37
  ${e(`Show top 5`,{desc:`Label to activate top-N ranking on a chart`})}
38
38
  </luzmo-action-button>
39
- `;let o=n.direction===a.Bottom?e(`Bottom`,{desc:`Ranking direction: keep the lowest values`}):e(`Top`,{desc:`Ranking direction: keep the highest values`});return v`
39
+ `;let o=n.direction===a.Bottom?e(`Bottom`,{desc:`Ranking direction: keep the lowest values`}):e(`Top`,{desc:`Ranking direction: keep the highest values`});return y`
40
40
  <luzmo-action-button size=${this.size} id=${this._rankingTriggerId}>
41
41
  <luzmo-icon slot="icon" size="xs" .icon=${r}></luzmo-icon>
42
42
  ${o} ${n.number||5}
@@ -112,7 +112,7 @@ import{i as e,n as t,r as n}from"./chunks/version-BW4Ixl63.js";import{t as r}fro
112
112
  </div>
113
113
  </luzmo-popover>
114
114
  </luzmo-overlay>
115
- `}_handleDirectionChange(e,t){t.stopPropagation();let n=t.target?.selected;n?.length&&this._emitRankAndSort({...this._currentRanking(e),direction:n[0]},this._currentSort(e))}_handleNumberChange(e,t){t.stopPropagation();let n=t.target?.value,r=typeof n==`number`?n:Number.parseInt(String(n),10);!Number.isNaN(r)&&r>=1&&this._emitRankAndSort({...this._currentRanking(e),number:r},this._currentSort(e))}_handleSortByChange(e,t){t.stopPropagation();let n=t.target?.selected;n?.length&&this._emitRankAndSort(this._currentRanking(e),{...this._currentSort(e),by:n[0]})}_handleSortDirectionChange(e,t){t.stopPropagation();let n=t.target?.selected;n?.length&&this._emitRankAndSort(this._currentRanking(e),{...this._currentSort(e),direction:n[0]})}_renderAddToDashboard(){return this.addToDashboard?v`
115
+ `}_handleDirectionChange(e,t){t.stopPropagation();let n=t.target?.selected;n?.length&&this._emitRankAndSort({...this._currentRanking(e),direction:n[0]},this._currentSort(e))}_handleNumberChange(e,t){t.stopPropagation();let n=t.target?.value,r=typeof n==`number`?n:Number.parseInt(String(n),10);!Number.isNaN(r)&&r>=1&&this._emitRankAndSort({...this._currentRanking(e),number:r},this._currentSort(e))}_handleSortByChange(e,t){t.stopPropagation();let n=t.target?.selected;n?.length&&this._emitRankAndSort(this._currentRanking(e),{...this._currentSort(e),by:n[0]})}_handleSortDirectionChange(e,t){t.stopPropagation();let n=t.target?.selected;n?.length&&this._emitRankAndSort(this._currentRanking(e),{...this._currentSort(e),direction:n[0]})}_renderAddToDashboard(){return this.addToDashboard?y`
116
116
  <luzmo-add-to-dashboard
117
117
  size=${this.size}
118
118
  language=${this.language}
@@ -122,13 +122,13 @@ import{i as e,n as t,r as n}from"./chunks/version-BW4Ixl63.js";import{t as r}fro
122
122
  .authToken=${this.authToken}
123
123
  .apiUrl=${this.apiUrl}
124
124
  ></luzmo-add-to-dashboard>
125
- `:y}_renderActions(){return this.hideActions?v`
125
+ `:b}_renderActions(){return this.hideActions?y`
126
126
  <div class="chart-actions-bar">
127
127
  <div class="chart-actions-primary"></div>
128
128
  <slot name="chart-actions-extra"></slot>
129
129
  ${this._renderAddToDashboard()}
130
130
  </div>
131
- `:v`
131
+ `:y`
132
132
  <div class="chart-actions-bar">
133
133
  <div class="chart-actions-primary">
134
134
  ${this._chartActions.map(e=>e.type===`optionDropdown`?this._renderOptionDropdown(e):this._renderRankingPicker(e))}
@@ -136,7 +136,7 @@ import{i as e,n as t,r as n}from"./chunks/version-BW4Ixl63.js";import{t as r}fro
136
136
  <slot name="chart-actions-extra"></slot>
137
137
  ${this._renderAddToDashboard()}
138
138
  </div>
139
- `}_renderChart(){if(!this.chart)return y;let e=d(this.chart);return v`
139
+ `}_renderChart(){if(!this.chart)return b;let e=d(this.chart);return y`
140
140
  <div class="chart-container" part="chart-container">
141
141
  <luzmo-embed-viz-item
142
142
  .type=${e.type}
@@ -151,9 +151,9 @@ import{i as e,n as t,r as n}from"./chunks/version-BW4Ixl63.js";import{t as r}fro
151
151
  .canFilter=${this.canFilter??!1}
152
152
  ></luzmo-embed-viz-item>
153
153
  </div>
154
- `}_renderFeedback(){let t=!this.hideFeedback&&!!this.messageId,n=this._canShowConfigPanel,r=e(`Loading`,{desc:`Loading spinner label`});return!t&&!n?y:v`
154
+ `}_renderFeedback(){let t=!this.hideFeedback&&!!this.messageId,n=this._canShowConfigPanel,r=e(`Loading`,{desc:`Loading spinner label`});return!t&&!n?b:y`
155
155
  <div class="feedback-row">
156
- ${t?v`
156
+ ${t?y`
157
157
  <luzmo-action-group quiet size=${this.size}>
158
158
  <luzmo-action-button
159
159
  class="rating-btn-positive"
@@ -163,7 +163,7 @@ import{i as e,n as t,r as n}from"./chunks/version-BW4Ixl63.js";import{t as r}fro
163
163
  ?selected=${this._rating===1}
164
164
  @click=${()=>this._toggleRating(!0)}
165
165
  >
166
- <luzmo-icon slot="icon" size="s" .icon=${w}></luzmo-icon>
166
+ <luzmo-icon slot="icon" size="s" .icon=${T}></luzmo-icon>
167
167
  </luzmo-action-button>
168
168
  <luzmo-action-button
169
169
  class="rating-btn-negative"
@@ -173,11 +173,11 @@ import{i as e,n as t,r as n}from"./chunks/version-BW4Ixl63.js";import{t as r}fro
173
173
  ?selected=${this._rating===-1}
174
174
  @click=${()=>this._toggleRating(!1)}
175
175
  >
176
- <luzmo-icon slot="icon" size="s" .icon=${T}></luzmo-icon>
176
+ <luzmo-icon slot="icon" size="s" .icon=${E}></luzmo-icon>
177
177
  </luzmo-action-button>
178
178
  </luzmo-action-group>
179
- `:y}
180
- ${n?v`
179
+ `:b}
180
+ ${n?y`
181
181
  <luzmo-action-button
182
182
  class="config-toggle"
183
183
  size=${this.size}
@@ -187,13 +187,13 @@ import{i as e,n as t,r as n}from"./chunks/version-BW4Ixl63.js";import{t as r}fro
187
187
  aria-label=${this._configPanelPending?r:e(`Configure chart`,{desc:`Accessible label for the chart config toggle`})}
188
188
  @click=${()=>this._toggleConfigPanel()}
189
189
  >
190
- ${this._configPanelPending?v`<luzmo-progress-circle slot="icon" size="s" indeterminate .label=${r}></luzmo-progress-circle>`:v`<luzmo-icon slot="icon" size="s" .icon=${C}></luzmo-icon>`}
190
+ ${this._configPanelPending?y`<luzmo-progress-circle slot="icon" size="s" indeterminate .label=${r}></luzmo-progress-circle>`:y`<luzmo-icon slot="icon" size="s" .icon=${w}></luzmo-icon>`}
191
191
  </luzmo-action-button>
192
192
  <span class="sr-only" role="status" aria-live="polite">${this._configPanelPending?r:``}</span>
193
193
  <span class="sr-only" role="alert">${this._configPanelLoadFailed?e(`Failed to load the chart configuration. Please try again.`,{desc:`Error message when the chart config panel fails to load`}):``}</span>
194
- `:y}
194
+ `:b}
195
195
  </div>
196
- `}_toggleRating(e){let t=e?1:-1,n=this._rating===t?0:t;this._dispatch(`luzmo-feedback-changed`,{rating:n,comment:this.feedback?.comment})}_renderConfigPanel(){if(!this.chart||this.hideConfigPanel||!this._configPanelOpen)return y;let t=this.chart,n=p(t.slots??[]),r=c(n),i=t.options.theme??{};return v`
196
+ `}_toggleRating(e){let t=e?1:-1,n=this._rating===t?0:t;this._dispatch(`luzmo-feedback-changed`,{rating:n,comment:this.feedback?.comment})}_renderConfigPanel(){if(!this.chart||this.hideConfigPanel||!this._configPanelOpen)return b;let t=this.chart,n=p(t.slots??[]),r=c(n),i=t.options.theme??P;return y`
197
197
  <div class="config-panel" part="config-panel">
198
198
  <luzmo-tabs selected="data" size=${this.size}>
199
199
  <luzmo-tab value="data">${e(`Data`,{desc:`Label for the data section`})}</luzmo-tab>
@@ -246,18 +246,22 @@ import{i as e,n as t,r as n}from"./chunks/version-BW4Ixl63.js";import{t as r}fro
246
246
  .authToken=${this.authToken}
247
247
  .apiUrl=${this.apiUrl}
248
248
  .language=${this.language}
249
+ ?live-interactions=${this.liveInteractions}
249
250
  @luzmo-options-changed=${this._handleOptionsChanged}
251
+ @luzmo-option-interaction-start=${this._handleInteractionStart}
252
+ @luzmo-option-interaction-end=${this._handleInteractionClosed}
253
+ @luzmo-option-interaction-cancel=${this._handleInteractionClosed}
250
254
  ></luzmo-item-option-panel>
251
255
  </luzmo-tab-panel>
252
256
  </luzmo-tabs>
253
257
  </div>
254
- `}render(){return this.chart?v`
258
+ `}_dispatchInteraction(e,{chart:t,generation:n}){e.stopPropagation(),this._dispatch(e.type,{...e.detail,chart:t,generation:n})}render(){return this.chart?y`
255
259
  <div class="answer" part="container">
256
260
  ${this._renderActions()} ${this._renderChart()} ${this._renderFeedback()} ${this._renderConfigPanel()}
257
261
  </div>
258
- `:v`
262
+ `:y`
259
263
  <div
260
264
  class="answer"
261
265
  part="container"
262
266
  ></div>
263
- `}};n([b({type:Object})],N.prototype,`chart`,void 0),n([b({type:Object})],N.prototype,`feedback`,void 0),n([b({type:String,attribute:`message-id`})],N.prototype,`messageId`,void 0),n([b({type:String,attribute:`auth-key`})],N.prototype,`authKey`,void 0),n([b({type:String,attribute:`auth-token`})],N.prototype,`authToken`,void 0),n([b({type:String,attribute:`api-url`})],N.prototype,`apiUrl`,void 0),n([b({type:String,attribute:`app-server`})],N.prototype,`appServer`,void 0),n([b({type:String,attribute:`content-language`})],N.prototype,`contentLanguage`,void 0),n([b({type:Boolean,attribute:`hide-actions`,reflect:!0})],N.prototype,`hideActions`,void 0),n([b({type:Boolean,attribute:`hide-feedback`,reflect:!0})],N.prototype,`hideFeedback`,void 0),n([b({type:Boolean,attribute:`hide-config-panel`,reflect:!0})],N.prototype,`hideConfigPanel`,void 0),n([b({type:Boolean,attribute:`add-to-dashboard`,reflect:!0})],N.prototype,`addToDashboard`,void 0),n([b({attribute:!1})],N.prototype,`dashboardActions`,void 0),n([b({type:Boolean,reflect:!0})],N.prototype,`controlled`,void 0),n([b({attribute:`can-filter`,converter:{fromAttribute:e=>e===null?void 0:`all`}})],N.prototype,`canFilter`,void 0),n([x()],N.prototype,`_configPanelOpen`,void 0),n([x()],N.prototype,`_configPanelPending`,void 0),n([x()],N.prototype,`_configPanelLoadFailed`,void 0),customElements.get(`luzmo-interactive-viz-item`)||customElements.define(`luzmo-interactive-viz-item`,N);export{m as DEFAULT_RANKING_NUMBER,N as LuzmoInteractiveVizItem,a as RankingDirection,l as SortBy,g as SortDirection,h as applyChartMutation,u as calculateChartActions,p as convertSlotsToArray,c as getChartDatasetIds,i as mergeThemeIntoChart,d as normalizeChartConfig};
267
+ `}};n([x({type:Object})],I.prototype,`chart`,void 0),n([x({type:Object})],I.prototype,`feedback`,void 0),n([x({type:String,attribute:`message-id`})],I.prototype,`messageId`,void 0),n([x({type:String,attribute:`auth-key`})],I.prototype,`authKey`,void 0),n([x({type:String,attribute:`auth-token`})],I.prototype,`authToken`,void 0),n([x({type:String,attribute:`api-url`})],I.prototype,`apiUrl`,void 0),n([x({type:String,attribute:`app-server`})],I.prototype,`appServer`,void 0),n([x({type:String,attribute:`content-language`})],I.prototype,`contentLanguage`,void 0),n([x({type:Boolean,attribute:`hide-actions`,reflect:!0})],I.prototype,`hideActions`,void 0),n([x({type:Boolean,attribute:`hide-feedback`,reflect:!0})],I.prototype,`hideFeedback`,void 0),n([x({type:Boolean,attribute:`hide-config-panel`,reflect:!0})],I.prototype,`hideConfigPanel`,void 0),n([x({type:Boolean,attribute:`add-to-dashboard`,reflect:!0})],I.prototype,`addToDashboard`,void 0),n([x({attribute:!1})],I.prototype,`dashboardActions`,void 0),n([x({type:Boolean,reflect:!0})],I.prototype,`controlled`,void 0),n([x({attribute:`can-filter`,converter:{fromAttribute:e=>e===null?void 0:`all`}})],I.prototype,`canFilter`,void 0),n([x({type:Boolean,reflect:!0,attribute:`live-interactions`})],I.prototype,`liveInteractions`,void 0),n([S()],I.prototype,`_configPanelOpen`,void 0),n([S()],I.prototype,`_configPanelPending`,void 0),n([S()],I.prototype,`_configPanelLoadFailed`,void 0),customElements.get(`luzmo-interactive-viz-item`)||customElements.define(`luzmo-interactive-viz-item`,I);export{m as DEFAULT_RANKING_NUMBER,I as LuzmoInteractiveVizItem,a as RankingDirection,l as SortBy,g as SortDirection,h as applyChartMutation,u as calculateChartActions,p as convertSlotsToArray,c as getChartDatasetIds,i as mergeThemeIntoChart,d as normalizeChartConfig};
@@ -19,7 +19,7 @@
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/color-7IgCGZKz.js";import"./chunks/embed-BfHBKhIe.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{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`
23
23
  <div
24
24
  class="luzmo-item-grid-item has-luzmo-viz-item"
25
25
  luzmo-item-grid-item-id=${n.id??``}
@@ -44,7 +44,7 @@
44
44
  "chunks/bullet-chart-options.nl-BxNIes0u.js",
45
45
  "chunks/bullet-chart-slots.config-BiFMJsgN.js",
46
46
  "chunks/chart-helpers-DsIGsaDc.js",
47
- "chunks/choropleth-map-options.config-Cs4Kvr9h.js",
47
+ "chunks/choropleth-map-options.config-rUJsEJcm.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",
@@ -67,9 +67,8 @@
67
67
  "chunks/circular-gauge-slots.config-C7yUFfFJ.js",
68
68
  "chunks/classic-CHhNczKi.js",
69
69
  "chunks/classic-dark-Cmrn7jod.js",
70
- "chunks/color-7IgCGZKz.js",
71
70
  "chunks/color-palettes-B41FvzWH.js",
72
- "chunks/color-range-utils-CKDpd3gZ.js",
71
+ "chunks/color-range-utils-DxOtqAKB.js",
73
72
  "chunks/column-chart-options.config-YIe6cMV5.js",
74
73
  "chunks/column-chart-options.de-CpCK5x2F.js",
75
74
  "chunks/column-chart-options.en-uZbbpK84.js",
@@ -132,7 +131,7 @@
132
131
  "chunks/dropdown-filter-options.fr-CMapzFiR.js",
133
132
  "chunks/dropdown-filter-options.nl-BLAyit4D.js",
134
133
  "chunks/dropdown-filter-slots.config-DkqLjilE.js",
135
- "chunks/embed-BfHBKhIe.js",
134
+ "chunks/embed-CBu7iQRx.js",
136
135
  "chunks/en-CSboh17P.js",
137
136
  "chunks/en-GB-HoXKQBOY.js",
138
137
  "chunks/en-US-CSboh17P.js",
@@ -159,14 +158,14 @@
159
158
  "chunks/funnel-chart-slots.config-DfeuNGEL.js",
160
159
  "chunks/guidelines-options.config-CS29_J9M.js",
161
160
  "chunks/he-DHPb0VBo.js",
162
- "chunks/heat-map-options.config-DF5kjOOe.js",
161
+ "chunks/heat-map-options.config-D93AeYFi.js",
163
162
  "chunks/heat-map-options.de-BfJMMX2Q.js",
164
163
  "chunks/heat-map-options.en-Dr653pN6.js",
165
164
  "chunks/heat-map-options.es-CklrBP1w.js",
166
165
  "chunks/heat-map-options.fr-DwtCOHrA.js",
167
166
  "chunks/heat-map-options.nl-DQBLussF.js",
168
167
  "chunks/heat-map-slots.config-BVBzVjJJ.js",
169
- "chunks/heat-table-options.config-DaePzfHG.js",
168
+ "chunks/heat-table-options.config-ZVML76FK.js",
170
169
  "chunks/heat-table-options.de-B4y9dcra.js",
171
170
  "chunks/heat-table-options.en-Bouip0NE.js",
172
171
  "chunks/heat-table-options.es-BRAQP8GK.js",
@@ -193,21 +192,22 @@
193
192
  "chunks/info-tooltip-options.i18n-B_gjTq0R.js",
194
193
  "chunks/interactivity-options.config-09eXx6k6.js",
195
194
  "chunks/interactivity-options.i18n-BLDCmZkC.js",
195
+ "chunks/is-same-option-value-Di-A7Wmg.js",
196
196
  "chunks/it-DWTvD2Xn.js",
197
197
  "chunks/item-option-action-button-group-BEAwPHVw.js",
198
198
  "chunks/item-option-base-CRUxNhJQ.js",
199
199
  "chunks/item-option-color-palette-picker-CBz61iZb.js",
200
- "chunks/item-option-color-picker-Cr7ujQNO.js",
201
- "chunks/item-option-color-range-CyJd1LZ_.js",
202
- "chunks/item-option-guidelines-6NjpzS6b.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
203
  "chunks/item-option-multi-language-field-DPPpN2qg.js",
204
204
  "chunks/item-option-number-field-CkqJjInE.js",
205
- "chunks/item-option-panel-VxvWU56c.js",
205
+ "chunks/item-option-panel-CzSKFCVl.js",
206
206
  "chunks/item-option-picker-BnwQPT9A.js",
207
207
  "chunks/item-option-position-picker-Bkc4JvJX.js",
208
208
  "chunks/item-option-positions-number-field-Dr_315TE.js",
209
209
  "chunks/item-option-radio-button-group-BkymJq3E.js",
210
- "chunks/item-option-slider-l9wt7_0c.js",
210
+ "chunks/item-option-slider-K_bsNci8.js",
211
211
  "chunks/item-option-switch-DeihDHhM.js",
212
212
  "chunks/item-option-text-field-D7bkuhsv.js",
213
213
  "chunks/item-slot-picker-panel-D4BMxGs9.js",
@@ -261,6 +261,7 @@
261
261
  "chunks/ohlc-chart-options.fr-DWhV_lXz.js",
262
262
  "chunks/ohlc-chart-options.nl-D8lhNKIv.js",
263
263
  "chunks/ohlc-chart-slots.config-xYpPbmg2.js",
264
+ "chunks/option-interaction-controller-BslAXAHF.js",
264
265
  "chunks/orion-BHOu-xse.js",
265
266
  "chunks/parallel-coordinates-plot-options.config-BcIYCRdF.js",
266
267
  "chunks/parallel-coordinates-plot-options.de-Dvi0gBbB.js",
@@ -301,7 +302,7 @@
301
302
  "chunks/regular-table-options.fr-roRCzuK8.js",
302
303
  "chunks/regular-table-options.nl-DxYUm_Rz.js",
303
304
  "chunks/regular-table-slots.config-BqEJgzhG.js",
304
- "chunks/route-map-options.config-D7FfzIiU.js",
305
+ "chunks/route-map-options.config-Dwy0JSVq.js",
305
306
  "chunks/route-map-options.de-Ke-Bybpi.js",
306
307
  "chunks/route-map-options.en-CDXIcBc0.js",
307
308
  "chunks/route-map-options.es-CCEXcHLb.js",
@@ -355,7 +356,7 @@
355
356
  "chunks/speedometer-chart-options.fr-BqnVNM9x.js",
356
357
  "chunks/speedometer-chart-options.nl-D2dmDbhJ.js",
357
358
  "chunks/speedometer-chart-slots.config-Cfsna_2O.js",
358
- "chunks/spike-map-options.config-CZiFzDm9.js",
359
+ "chunks/spike-map-options.config-DFmuNxym.js",
359
360
  "chunks/spike-map-options.de-cIVh4l8Z.js",
360
361
  "chunks/spike-map-options.en-CKjynYQl.js",
361
362
  "chunks/spike-map-options.es-_GxcrK73.js",
@@ -0,0 +1,2 @@
1
+ export { isSameColorValue, isSameOptionValue } from './is-same-option-value';
2
+ export { type LuceroInteractionDetail, OptionInteractionController } from './option-interaction-controller';
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Structural equality for option values: arrays and plain objects compare by content (an absent key differs from an
3
+ * `undefined` one), everything else with `Object.is`. Strings are never normalized as colors here; use `isSameColorValue`.
4
+ */
5
+ export declare const isSameOptionValue: (a: unknown, b: unknown) => boolean;
6
+ /**
7
+ * Equality for a color value: two strings that parse as colors compare by their sRGB channels and alpha, so `#ff0000`,
8
+ * `#FF0000` and `rgb(255, 0, 0)` are the same color. Other values fall back to `isSameOptionValue`.
9
+ */
10
+ export declare const isSameColorValue: (a: unknown, b: unknown) => boolean;
@@ -0,0 +1,54 @@
1
+ import type { ReactiveController, ReactiveControllerHost } from 'lit';
2
+ import type { ItemOptionInteraction } from '../../components/item-option/types';
3
+ /** The part of Lucero's `luzmo-interaction-*` event detail that ACK reads. */
4
+ export interface LuceroInteractionDetail {
5
+ id: string;
6
+ }
7
+ /**
8
+ * Maps Lucero gesture boundaries (`luzmo-interaction-*`) on a control's Lucero children to ACK
9
+ * `luzmo-option-interaction-*` events, and tags the live value updates in between with the gesture id.
10
+ * Each gesture on each source element gets its own id, so overlapping gestures never merge.
11
+ * A gesture stays silent until its first changed value: a press that never changes the value emits nothing.
12
+ */
13
+ export declare class OptionInteractionController implements ReactiveController {
14
+ private readonly _host;
15
+ private readonly _isSame;
16
+ private _open;
17
+ private _hasDiscreteValue;
18
+ private _discreteValue;
19
+ /**
20
+ * @param _isSame Equality used for `changed` and for dropping repeated values, for example `isSameColorValue`
21
+ * in a color control. Defaults to structural equality without color normalization.
22
+ */
23
+ constructor(_host: ReactiveControllerHost & HTMLElement, _isSame?: (a: unknown, b: unknown) => boolean);
24
+ /** Whether a Lucero gesture is open, whether or not it changed the value yet. */
25
+ get active(): boolean;
26
+ /** Ends gestures whose source element was removed by the last render, such as a deleted color stop. */
27
+ hostUpdated(): void;
28
+ /** Ends open gestures if the host was removed without `endInteraction()`; only listeners on the host still hear it. */
29
+ hostDisconnected(): void;
30
+ /**
31
+ * Opens a gesture for a Lucero `luzmo-interaction-start` on `source`. `value` is the value `source` edits, before the
32
+ * gesture: the option value, or in a composite control (color range, guidelines) only that child's own value.
33
+ * `luzmo-option-interaction-start` waits for the gesture's first changed value in `update`.
34
+ */
35
+ start(source: EventTarget, detail: LuceroInteractionDetail, value: unknown): void;
36
+ /**
37
+ * Emits a value update through `emit`. Inside a gesture on `source` the update carries the gesture id and is
38
+ * tracked by `ownValue` (the value `source` edits, as passed to `start`); outside one it is a discrete update
39
+ * tracked by the full `value`. An update whose tracked value equals the previous one is dropped. The first changed
40
+ * value of a gesture emits `luzmo-option-interaction-start` right before its update.
41
+ */
42
+ update(source: EventTarget, value: unknown, emit: (interaction?: ItemOptionInteraction) => void, ownValue?: unknown): void;
43
+ /** Closes the gesture for a Lucero `luzmo-interaction-end`. Unknown, closed or never-changed gestures emit nothing. */
44
+ end(source: EventTarget, detail: LuceroInteractionDetail): void;
45
+ /** Closes the gesture for a Lucero `luzmo-interaction-cancel`, after the control emitted Lucero's revert. */
46
+ cancel(source: EventTarget, detail: LuceroInteractionDetail): void;
47
+ /** Ends every open gesture, keeping the values already emitted; only gestures that changed a value emit an end. Idempotent. */
48
+ endAll(): void;
49
+ /** Discrete updates are deduped against the last emitted full value, a gesture's included, so returning to an older value still emits. */
50
+ private _rememberEmitted;
51
+ private _find;
52
+ private _take;
53
+ private _dispatch;
54
+ }
@@ -155,4 +155,13 @@ export declare abstract class BaseStore<TState> {
155
155
  * This ensures changes are tracked by the undo manager
156
156
  */
157
157
  protected transact<T>(fn: () => T): T;
158
+ /**
159
+ * Execute a function within a local transaction recorded as its own undo step.
160
+ * Unlike `transact`, it never merges with neighbouring transactions within `mergeInterval`.
161
+ * Use it to commit the final value of a gesture whose live preview is kept outside the document.
162
+ *
163
+ * `fn` must be synchronous. Changes made before `fn` throws are kept, not rolled back.
164
+ * Called inside another transaction, the whole outer transaction becomes the separate step.
165
+ */
166
+ protected transactHistoryStep<T>(fn: () => T): T;
158
167
  }
@@ -0,0 +1 @@
1
+ export {};