@limetech/lime-elements 39.42.2 → 39.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ ## [39.43.0](https://github.com/Lundalogik/lime-elements/compare/v39.42.2...v39.43.0) (2026-07-10)
2
+
3
+ ### Features
4
+
5
+
6
+ * **chart:** add a scatter chart type ([849c0d4](https://github.com/Lundalogik/lime-elements/commit/849c0d48d6fb0be429c9a84f6697fb928b5111f4))
7
+ ### Bug Fixes
8
+
9
+
10
+ * **chart:** rotate scatter value-axis labels with orientation ([00aa0cf](https://github.com/Lundalogik/lime-elements/commit/00aa0cf90ac7403f6d0372a99bc873173c0293cf))
11
+
1
12
  ## [39.42.2](https://github.com/Lundalogik/lime-elements/compare/v39.42.1...v39.42.2) (2026-07-10)
2
13
 
3
14
  ### Bug Fixes
@@ -4,7 +4,7 @@ var index = require('./index-DYg_7kkT.js');
4
4
  var translations = require('./translations-Bnw00bkf.js');
5
5
  var randomString = require('./random-string-BTzDB2ee.js');
6
6
 
7
- const chartCss = () => `@charset "UTF-8";:host(limel-chart[type=bar]) .chart,:host(limel-chart[type=dot]) .chart,:host(limel-chart[type=line]) .chart,:host(limel-chart[type=area]) .chart{display:flex;background-color:var(--chart-background-color, transparent)}:host(limel-chart[type=bar]) .item,:host(limel-chart[type=dot]) .item,:host(limel-chart[type=line]) .item,:host(limel-chart[type=area]) .item{position:relative;mix-blend-mode:hard-light}:host(limel-chart[type=bar][orientation=landscape]),:host(limel-chart[type=dot][orientation=landscape]),:host(limel-chart[type=line][orientation=landscape]),:host(limel-chart[type=area][orientation=landscape]){--limel-chart-padding:0.5rem 0.5rem 0.5rem 2rem}:host(limel-chart[type=bar][orientation=landscape]) .chart,:host(limel-chart[type=dot][orientation=landscape]) .chart,:host(limel-chart[type=line][orientation=landscape]) .chart,:host(limel-chart[type=area][orientation=landscape]) .chart{flex-direction:row;align-items:flex-end;overflow:auto hidden;padding:0 0.125rem}:host(limel-chart[type=bar][orientation=landscape]) .item,:host(limel-chart[type=dot][orientation=landscape]) .item,:host(limel-chart[type=line][orientation=landscape]) .item,:host(limel-chart[type=area][orientation=landscape]) .item{min-width:var(--limel-chart-min-item-size);width:inherit}:host(limel-chart[type=bar][orientation=portrait]),:host(limel-chart[type=dot][orientation=portrait]),:host(limel-chart[type=line][orientation=portrait]),:host(limel-chart[type=area][orientation=portrait]){--limel-chart-padding:0.5rem 0.5rem 1rem 0.5rem}:host(limel-chart[type=bar][orientation=portrait]) .chart,:host(limel-chart[type=dot][orientation=portrait]) .chart,:host(limel-chart[type=line][orientation=portrait]) .chart,:host(limel-chart[type=area][orientation=portrait]) .chart{flex-direction:column;overflow:hidden auto;padding:0.125rem 0}:host(limel-chart[type=bar][orientation=portrait]) .item,:host(limel-chart[type=dot][orientation=portrait]) .item,:host(limel-chart[type=line][orientation=portrait]) .item,:host(limel-chart[type=area][orientation=portrait]) .item{min-height:var(--limel-chart-min-item-size);height:inherit}:host(limel-chart[display-axis-labels][orientation=portrait]){--limel-chart-padding:0.5rem 0.5rem 2rem 1.25rem}:host(limel-chart[display-axis-labels][orientation=landscape]){--limel-chart-padding:0.5rem 0.5rem 1.25rem 3rem}:host(limel-chart[display-axis-labels][type=line]) table thead,:host(limel-chart[display-axis-labels][type=line]) table th,:host(limel-chart[display-axis-labels][type=dot]) table thead,:host(limel-chart[display-axis-labels][type=dot]) table th,:host(limel-chart[display-axis-labels][type=area]) table thead,:host(limel-chart[display-axis-labels][type=area]) table th,:host(limel-chart[display-axis-labels][type=bar]) table thead,:host(limel-chart[display-axis-labels][type=bar]) table th{all:unset}:host(limel-chart[display-axis-labels][type=line]) table th,:host(limel-chart[display-axis-labels][type=dot]) table th,:host(limel-chart[display-axis-labels][type=area]) table th,:host(limel-chart[display-axis-labels][type=bar]) table th{position:absolute;font-size:var(--limel-theme-default-small-font-size);max-width:100%;max-height:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host(limel-chart[display-axis-labels][orientation=portrait]) table thead th:first-of-type{left:-1.25rem;writing-mode:sideways-lr}:host(limel-chart[display-axis-labels][orientation=portrait]) table thead th:last-of-type{bottom:-2rem;left:50%;transform:translateX(-50%)}:host(limel-chart[display-axis-labels][orientation=landscape]) table thead th:first-of-type{bottom:-1.25rem;left:50%;transform:translateX(-50%)}:host(limel-chart[display-axis-labels][orientation=landscape]) table thead th:last-of-type{left:-3rem;writing-mode:sideways-lr}:host(limel-chart[display-item-text][type=line]) td.text,:host(limel-chart[display-item-text][type=area]) td.text,:host(limel-chart[display-item-text][type=dot]) td.text,:host(limel-chart[display-item-text][type=bar]) td.text{all:unset;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:absolute;font-size:0.75rem;max-width:max(5rem, 100%);mix-blend-mode:difference}:host(limel-chart[display-item-value][type=line]) td.value,:host(limel-chart[display-item-value][type=area]) td.value,:host(limel-chart[display-item-value][type=dot]) td.value,:host(limel-chart[display-item-value][type=bar]) td.value{all:unset;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:absolute;font-size:0.75rem;max-width:max(5rem, 100%);border-radius:9rem;padding:0 0.25rem;background-color:rgb(var(--contrast-100), 0.7);box-shadow:var(--shadow-brighten-edges-outside)}:host(limel-chart[display-item-value][type=line]) .item.has-value-zero td.value,:host(limel-chart[display-item-value][type=area]) .item.has-value-zero td.value,:host(limel-chart[display-item-value][type=dot]) .item.has-value-zero td.value,:host(limel-chart[display-item-value][type=bar]) .item.has-value-zero td.value{opacity:0}:host(limel-chart[display-item-text][orientation=landscape]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=landscape]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=landscape]) .item.has-negative-value-only td.value{transform:rotateX(180deg)}:host(limel-chart[display-item-text][orientation=landscape]) .item.has-value-zero td.text,:host(limel-chart[display-item-value][orientation=landscape]) .item.has-value-zero td.text{transform:translateY(-50%)}:host(limel-chart[display-item-text][orientation=portrait]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=portrait]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=portrait]) .item.has-negative-value-only td.value{transform:rotateY(180deg)}:host(limel-chart[display-item-text][orientation=landscape][type=bar]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=bar]) td.value{top:0;transform:translateY(-50%)}:host(limel-chart[display-item-text][orientation=landscape][type=bar]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=bar]) .item.has-negative-value-only td.value{transform:rotateX(180deg) translateY(50%)}:host(limel-chart[display-item-text][orientation=portrait][type=bar]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=bar]) td.value{right:0;transform:translateX(50%)}:host(limel-chart[display-item-text][orientation=portrait][type=bar]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=bar]) .item.has-negative-value-only td.value{transform:rotateY(180deg) translateX(-50%)}:host(limel-chart[display-item-text][orientation=portrait][type=bar]) .item.has-value-zero td.text,:host(limel-chart[display-item-value][orientation=portrait][type=bar]) .item.has-value-zero td.text{transform:translateX(50%)}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) td.value{top:1rem}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) td.text{top:0}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) .item.has-negative-value-only td.value{transform:rotateX(180deg)}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) .item.has-value-zero td.text,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) .item.has-value-zero td.text{transform:translateY(-100%)}:host(limel-chart[display-item-text][orientation=portrait][type=dot]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=dot]) td.value{right:-0.25rem;transform:translateX(100%)}:host(limel-chart[display-item-text][orientation=portrait][type=dot]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=dot]) td.text{right:0.5rem}:host(limel-chart[display-item-text][orientation=portrait][type=dot]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=dot]) .item.has-negative-value-only td.value{transform:rotateY(180deg) translateX(-100%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.text,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.value{left:0.5rem;bottom:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.text{transform:translateY(150%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.value{transform:translateY(50%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=landscape][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=landscape][type=area]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=landscape][type=area]) .item.has-negative-value-only td.text{transform:translateY(50%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-text][orientation=landscape][type=area]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=area]) .item.has-negative-value-only td.value{transform:translateY(150%)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.text,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.value{left:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.text{transform:translateX(-100%)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.value{transform:translateX(0)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=portrait][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=portrait][type=area]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=portrait][type=area]) .item.has-negative-value-only td.text{transform:translateX(0)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-text][orientation=portrait][type=area]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=area]) .item.has-negative-value-only td.value{transform:translateX(-100%)}:host(limel-chart[type=pie]) table,:host(limel-chart[type=doughnut]) table,:host(limel-chart[type=ring]) table{min-height:2rem;min-width:2rem}:host(limel-chart[type=pie]) .chart,:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .chart,:host(limel-chart[type=doughnut]) .item,:host(limel-chart[type=ring]) .chart,:host(limel-chart[type=ring]) .item{aspect-ratio:1;display:flex;margin:auto}:host(limel-chart[type=pie]) .chart,:host(limel-chart[type=doughnut]) .chart,:host(limel-chart[type=ring]) .chart{justify-content:center;align-items:center}:host(limel-chart[type=pie]) .chart:before,:host(limel-chart[type=doughnut]) .chart:before,:host(limel-chart[type=ring]) .chart:before{aspect-ratio:1;content:"";position:absolute;z-index:0;inset:0;margin:auto;border-radius:50%;max-width:100%;max-height:100%;background-color:var(--chart-background-color, rgb(var(--contrast-200)))}:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .item,:host(limel-chart[type=ring]) .item{max-width:100%;max-height:100%;border-radius:50%;position:absolute;inset:0}:host(limel-chart[type=bar]) .chart,:host(limel-chart[type=dot]) .chart{gap:0.5rem}:host(limel-chart[type=bar]) .item,:host(limel-chart[type=dot]) .item{display:flex;align-items:center;justify-content:center;border-radius:var(--chart-item-border-radius, 0.125rem)}:host(limel-chart[type=bar]) .item{background:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=dot]) .item:before,:host(limel-chart[type=dot]) .item:after{content:"";position:absolute;margin:auto;width:var(--limel-chart-min-item-size);height:var(--limel-chart-min-item-size);border-radius:50%}:host(limel-chart[type=dot]) .item::after{background-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=dot]) .item.has-start-value:before{background-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=bar][orientation=landscape]) .item,:host(limel-chart[type=dot][orientation=landscape]) .item{height:calc(var(--limel-chart-item-size) * 1%);bottom:calc(var(--limel-chart-item-offset) * 1%)}:host(limel-chart[type=bar][orientation=landscape]) .item.has-negative-value-only,:host(limel-chart[type=dot][orientation=landscape]) .item.has-negative-value-only{height:calc(var(--limel-chart-item-size) * -1%);transform-origin:bottom;transform:rotateX(180deg)}:host(limel-chart[type=dot][orientation=landscape]) .item.has-start-value,:host(limel-chart[type=dot][orientation=landscape]) .item:hover,:host(limel-chart[type=dot][orientation=landscape]) .item:focus-visible{background:linear-gradient(to bottom, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) center/1px 100% no-repeat}:host(limel-chart[type=dot][orientation=landscape]) .item:before{inset:auto 0 0 0;transform:translateY(50%)}:host(limel-chart[type=dot][orientation=landscape]) .item::after{inset:0 0 auto 0;transform:translateY(-50%)}:host(limel-chart[type=bar][orientation=portrait]) .item,:host(limel-chart[type=dot][orientation=portrait]) .item{width:calc(var(--limel-chart-item-size) * 1%);left:calc(var(--limel-chart-item-offset) * 1%)}:host(limel-chart[type=bar][orientation=portrait]) .item.has-negative-value-only,:host(limel-chart[type=dot][orientation=portrait]) .item.has-negative-value-only{width:calc(var(--limel-chart-item-size) * -1%);transform-origin:left;transform:rotateY(180deg)}:host(limel-chart[type=dot][orientation=portrait]) .item.has-start-value,:host(limel-chart[type=dot][orientation=portrait]) .item:hover,:host(limel-chart[type=dot][orientation=portrait]) .item:focus-visible{background:linear-gradient(to right, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) center/100% 1px no-repeat}:host(limel-chart[type=dot][orientation=portrait]) .item:before{inset:0 auto 0 0;transform:translateX(-50%)}:host(limel-chart[type=dot][orientation=portrait]) .item:after{inset:0 0 0 auto;transform:translateX(50%)}:host(limel-chart[type=area]) .item,:host(limel-chart[type=line]) .item{position:relative}:host(limel-chart[type=area]) .item:after,:host(limel-chart[type=line]) .item:after{margin:auto;width:var(--limel-chart-min-item-size);height:var(--limel-chart-min-item-size);border-radius:50%;border:1px solid rgb(var(--contrast-100))}:host(limel-chart[type=area]) .item:before,:host(limel-chart[type=line]) .item:before{inset:0}:host(limel-chart[type=area]) .item:after,:host(limel-chart[type=area]) .item:before,:host(limel-chart[type=line]) .item:after,:host(limel-chart[type=line]) .item:before{transition:border-color 0.2s ease, opacity 0.4s ease;content:"";position:absolute;background:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=area]) .item:hover:after,:host(limel-chart[type=area]) .item:focus-visible:after,:host(limel-chart[type=line]) .item:hover:after,:host(limel-chart[type=line]) .item:focus-visible:after{border-color:transparent}:host(limel-chart[type=line][orientation=landscape]) .item,:host(limel-chart[type=area][orientation=landscape]) .item{height:100%}:host(limel-chart[type=line][orientation=landscape]) .item:after,:host(limel-chart[type=area][orientation=landscape]) .item:after{transform:translateX(-50%) translateY(50%);left:0;bottom:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[type=line][orientation=landscape]) .item:last-of-type:before,:host(limel-chart[type=area][orientation=landscape]) .item:last-of-type:before{display:none}:host(limel-chart[type=line][orientation=portrait]) .item,:host(limel-chart[type=area][orientation=portrait]) .item{width:100%}:host(limel-chart[type=line][orientation=portrait]) .item:after,:host(limel-chart[type=area][orientation=portrait]) .item:after{transform:translateX(-50%) translateY(-50%);left:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[type=area]) .item:after{opacity:0}:host(limel-chart[type=area]) .item:hover:after,:host(limel-chart[type=area]) .item:focus-visible:after{opacity:1}:host(limel-chart[type=area]) .item:hover:before,:host(limel-chart[type=area]) .item:focus-visible:before{opacity:0.7}:host(limel-chart[type=area][orientation=landscape]){}:host(limel-chart[type=area][orientation=landscape]) .item:before{clip-path:polygon(0 calc((100 - var(--limel-chart-item-offset)) * 1%), 0 calc((100 - (var(--limel-chart-item-size) + var(--limel-chart-item-offset))) * 1%), 100% calc((100 - (var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset))) * 1%), 100% calc((100 - var(--limel-chart-next-item-offset)) * 1%))}:host(limel-chart[type=area][orientation=portrait]){}:host(limel-chart[type=area][orientation=portrait]) .item:before{clip-path:polygon(calc(var(--limel-chart-item-offset) * 1%) 0, calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%) 0, calc((var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset)) * 1%) 100%, calc(var(--limel-chart-next-item-offset) * 1%) 100%)}:host(limel-chart[type=line]){--limel-chart-line-thickness:0.125rem}:host(limel-chart[type=line]) .item:hover:before{opacity:0.4}:host(limel-chart[type=line][orientation=landscape]){}:host(limel-chart[type=line][orientation=landscape]) .item:hover{background:linear-gradient(to bottom, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) left/1px 100% no-repeat}:host(limel-chart[type=line][orientation=landscape]) .item:before{clip-path:polygon(0 calc((100 - (var(--limel-chart-item-size) + var(--limel-chart-item-offset))) * 1%), 0 calc((100 - (var(--limel-chart-item-size) + var(--limel-chart-item-offset))) * 1% + var(--limel-chart-line-thickness)), 100% calc((100 - (var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset))) * 1% + var(--limel-chart-line-thickness)), 100% calc((100 - (var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset))) * 1%))}:host(limel-chart[type=line][orientation=portrait]){}:host(limel-chart[type=line][orientation=portrait]) .item:hover{background:linear-gradient(to right, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) top/100% 1px no-repeat}:host(limel-chart[type=line][orientation=portrait]) .item:before{clip-path:polygon(calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%) 0, calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1% + var(--limel-chart-line-thickness)) 0, calc((var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset)) * 1% + var(--limel-chart-line-thickness)) 100%, calc((var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset)) * 1%) 100%)}:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .item{background:conic-gradient(transparent 0 calc(var(--limel-chart-item-offset) * 1%), var(--limel-chart-item-color, var(--limel-chart-default-item-color)) calc(var(--limel-chart-item-offset) * 1%) calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%), transparent calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%))}:host(limel-chart[type=pie]) .item:focus,:host(limel-chart[type=pie]) .item:focus-visible,:host(limel-chart[type=doughnut]) .item:focus,:host(limel-chart[type=doughnut]) .item:focus-visible{outline:none}:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .item{pointer-events:none}:host(limel-chart[type=doughnut]) .chart:after{aspect-ratio:1;content:"";position:absolute;inset:0;margin:auto;max-width:60%;max-height:60%;border-radius:50%;background-color:rgb(var(--contrast-100))}:host(limel-chart[type=ring]) .chart:after{content:"";position:absolute;inset:0;aspect-ratio:1;border-radius:50%;max-height:calc(100% - var(--limel-chart-number-of-items) * 100% / (var(--limel-chart-number-of-items) + 1));max-width:calc(100% - var(--limel-chart-number-of-items) * 100% / (var(--limel-chart-number-of-items) + 1));background-color:var(--limel-chart-background-color, rgb(var(--contrast-200)))}:host(limel-chart[type=ring]) .chart:has(.item:hover) .item,:host(limel-chart[type=ring]) .chart:has(.item:focus-visible) .item{opacity:1;filter:grayscale(1)}:host(limel-chart[type=ring]) .chart:after,:host(limel-chart[type=ring]) .item{margin:auto;border:1px solid var(--limel-chart-background-color, rgb(var(--contrast-400)))}:host(limel-chart[type=ring]) .item{background:conic-gradient(var(--limel-chart-item-color, var(--limel-chart-default-item-color)) 0 calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%), var(--chart-background-color, rgb(var(--contrast-200))) calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%));max-width:calc(100% - var(--limel-chart-item-index) * 100% / (var(--limel-chart-number-of-items) + 1));max-height:calc(100% - var(--limel-chart-item-index) * 100% / (var(--limel-chart-number-of-items) + 1))}:host(limel-chart[type=ring]) .item:focus-visible,:host(limel-chart[type=ring]) .item:hover{filter:grayscale(0) !important}:host(limel-chart[type=stacked-bar]) .chart{display:flex;border-radius:0.25rem;overflow:hidden;background-color:var(--chart-background-color, rgb(var(--contrast-800), 0.2))}:host(limel-chart[type=stacked-bar]) .item{display:flex;border-radius:var(--chart-item-border-radius, 0);background:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=stacked-bar]) .item:last-of-type:not(:focus-visible){box-shadow:none !important}:host(limel-chart[type=stacked-bar][orientation=landscape]) .chart{flex-direction:row}:host(limel-chart[type=stacked-bar][orientation=landscape]) .item{min-height:0.5rem;width:calc(var(--limel-chart-item-size) * 1%)}:host(limel-chart[type=stacked-bar][orientation=landscape]) .item:not(:focus-visible){box-shadow:-1px 0 0 0 var(--chart-item-divider-color, rgb(var(--color-white), 0.6)) inset}:host(limel-chart[type=stacked-bar][orientation=portrait]) .chart{flex-direction:column-reverse}:host(limel-chart[type=stacked-bar][orientation=portrait]) .item{min-width:0.5rem;height:calc(var(--limel-chart-item-size) * 1%)}:host(limel-chart[type=stacked-bar][orientation=portrait]) .item:not(:focus-visible){box-shadow:0 -1px 0 0 rgb(var(--color-white), 0.6) inset}:host(limel-chart[type=nps]){--limel-chart-nps-gauge-angel:220deg}:host(limel-chart[type=nps]) table{min-height:4rem;min-width:4rem}:host(limel-chart[type=nps]) .chart{position:relative;display:flex;justify-content:center;align-items:center;aspect-ratio:1;margin:auto;width:unset;height:unset;max-width:100%;max-height:100%;rotate:calc(var(--limel-chart-nps-gauge-angel) / 2 * -1);transform:translate(-15%, -5%)}:host(limel-chart[type=nps]) .chart:before,:host(limel-chart[type=nps]) .chart:after{content:"";aspect-ratio:1;position:absolute;border-radius:50%;z-index:-1;min-height:0;min-width:0}:host(limel-chart[type=nps]) .chart:before{height:100%;max-height:100%;background:conic-gradient(rgb(var(--color-coral-default)) 0deg calc(var(--limel-chart-nps-gauge-angel) / 2), rgb(var(--color-amber-light)) calc(var(--limel-chart-nps-gauge-angel) / 2) calc(var(--limel-chart-nps-gauge-angel) * 0.65), rgb(var(--color-lime-light)) calc(var(--limel-chart-nps-gauge-angel) * 0.65) calc(var(--limel-chart-nps-gauge-angel) * 0.85), rgb(var(--color-lime-default)) calc(var(--limel-chart-nps-gauge-angel) * 0.85) var(--limel-chart-nps-gauge-angel), transparent var(--limel-chart-nps-gauge-angel))}:host(limel-chart[type=nps]) .chart:after{height:calc(100% - min(3rem, 20%) * 2);max-height:calc(100% - min(3rem, 20%) * 2);background:conic-gradient(var(--chart-background-color, rgb(var(--contrast-100))) 0deg var(--limel-chart-nps-gauge-angel), transparent var(--limel-chart-nps-gauge-angel))}:host(limel-chart[type=nps]) .item{display:flex;align-items:flex-start;justify-content:center;border-radius:0.5rem;position:absolute;height:calc(50% - min(3rem, 20%) + 0.5rem);width:0.5rem;transform:translateY(-50%) rotate(calc((var(--limel-chart-item-value) + 100) / 200 * var(--limel-chart-nps-gauge-angel)));transform-origin:bottom}:host(limel-chart[type=nps]) .item:hover,:host(limel-chart[type=nps]) .item:focus-visible{background:linear-gradient(to bottom, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) center/1px 100% no-repeat}:host(limel-chart[type=nps]) .item:before,:host(limel-chart[type=nps]) .item:after{content:"";position:absolute}:host(limel-chart[type=nps]) .item:before{transform:translateY(-60%);width:0.4rem;border-radius:1rem;border-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color));border-style:solid;border-bottom-width:1.75rem;border-right-color:transparent;border-left-color:transparent;border-top-color:transparent}:host(limel-chart[type=nps]) .item:after{border-radius:50%;background-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color));aspect-ratio:1;height:clamp(0.75rem, 10%, 1.25rem);border:0.125rem solid rgb(var(--contrast-100), 0.8);box-shadow:var(--shadow-depth-8)}.axises{position:absolute;display:flex;justify-content:space-between;min-height:100%;min-width:100%;height:100%;width:100%}.axis-line{transition:opacity 0.4s ease;position:relative;opacity:0.2;font-size:0.625rem;border-color:var(--limel-chart-axis-line-color)}.axis-line:hover{opacity:0.6;transition-duration:0.2s}.axis-line.zero-line{opacity:0.6;z-index:1}.axis-line limel-badge{--badge-background-color:transparent;--badge-text-color:currentColor;position:absolute;text-align:right;min-width:2rem}:host(limel-chart[orientation=landscape]) .axises{flex-direction:column-reverse}:host(limel-chart[orientation=landscape]) .axis-line{border-bottom:1px solid;transform:translateY(50%)}:host(limel-chart[orientation=landscape]) .axis-line limel-badge{bottom:0;left:-2rem;transform:translateY(50%)}:host(limel-chart[orientation=portrait]) .axises{flex-direction:row}:host(limel-chart[orientation=portrait]) .axis-line{border-left:1px solid;transform:translateX(-50%)}:host(limel-chart[orientation=portrait]) .axis-line limel-badge{bottom:-1rem;right:-1rem}:host(limel-chart){--limel-chart-min-item-size:0.5rem;--limel-chart-default-item-color:var( --chart-item-color, rgb(var(--contrast-1100), 0.8) );--chart-axis-line-color:var( --limel-chart-axis-line-color, rgb(var(--contrast-900)) );box-sizing:border-box;isolation:isolate;display:flex;width:100%;height:100%;min-width:0;min-height:0;padding:var(--limel-chart-padding)}table{all:unset;border-collapse:collapse;border-spacing:0;empty-cells:show;position:relative;display:flex;width:100%;height:100%;min-width:0;min-height:0}table colgroup,table thead,table tbody,table tr,table th,table td{all:unset}table caption,table colgroup,table thead,table tfoot,table th,table td{position:absolute;width:0;height:0;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap}*,*:before,*:after{box-sizing:border-box}.chart{position:relative;flex-grow:1;width:100%;height:100%;min-height:0;min-width:0}.chart:has(.item:hover) .item,.chart:has(.item:focus-visible) .item{opacity:0.4}.item:focus{outline:none}.item:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}.item{transition:background-color 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease, opacity 0.4s ease;cursor:help}.item:focus-visible,.item:hover{opacity:1 !important}.item[role=button]{cursor:pointer}limel-spinner{margin:auto}`;
7
+ const chartCss = () => `@charset "UTF-8";:host(limel-chart[type=bar]) .chart,:host(limel-chart[type=dot]) .chart,:host(limel-chart[type=line]) .chart,:host(limel-chart[type=area]) .chart{display:flex;background-color:var(--chart-background-color, transparent)}:host(limel-chart[type=bar]) .item,:host(limel-chart[type=dot]) .item,:host(limel-chart[type=line]) .item,:host(limel-chart[type=area]) .item{position:relative;mix-blend-mode:hard-light}:host(limel-chart[type=bar][orientation=landscape]),:host(limel-chart[type=dot][orientation=landscape]),:host(limel-chart[type=line][orientation=landscape]),:host(limel-chart[type=area][orientation=landscape]){--limel-chart-padding:0.5rem 0.5rem 0.5rem 2rem}:host(limel-chart[type=bar][orientation=landscape]) .chart,:host(limel-chart[type=dot][orientation=landscape]) .chart,:host(limel-chart[type=line][orientation=landscape]) .chart,:host(limel-chart[type=area][orientation=landscape]) .chart{flex-direction:row;align-items:flex-end;overflow:auto hidden;padding:0 0.125rem}:host(limel-chart[type=bar][orientation=landscape]) .item,:host(limel-chart[type=dot][orientation=landscape]) .item,:host(limel-chart[type=line][orientation=landscape]) .item,:host(limel-chart[type=area][orientation=landscape]) .item{min-width:var(--limel-chart-min-item-size);width:inherit}:host(limel-chart[type=bar][orientation=portrait]),:host(limel-chart[type=dot][orientation=portrait]),:host(limel-chart[type=line][orientation=portrait]),:host(limel-chart[type=area][orientation=portrait]){--limel-chart-padding:0.5rem 0.5rem 1rem 0.5rem}:host(limel-chart[type=bar][orientation=portrait]) .chart,:host(limel-chart[type=dot][orientation=portrait]) .chart,:host(limel-chart[type=line][orientation=portrait]) .chart,:host(limel-chart[type=area][orientation=portrait]) .chart{flex-direction:column;overflow:hidden auto;padding:0.125rem 0}:host(limel-chart[type=bar][orientation=portrait]) .item,:host(limel-chart[type=dot][orientation=portrait]) .item,:host(limel-chart[type=line][orientation=portrait]) .item,:host(limel-chart[type=area][orientation=portrait]) .item{min-height:var(--limel-chart-min-item-size);height:inherit}:host(limel-chart[display-axis-labels][orientation=portrait]){--limel-chart-padding:0.5rem 0.5rem 2rem 1.25rem}:host(limel-chart[display-axis-labels][orientation=landscape]){--limel-chart-padding:0.5rem 0.5rem 1.25rem 3rem}:host(limel-chart[display-axis-labels][type=scatter]) table thead,:host(limel-chart[display-axis-labels][type=scatter]) table th,:host(limel-chart[display-axis-labels][type=line]) table thead,:host(limel-chart[display-axis-labels][type=line]) table th,:host(limel-chart[display-axis-labels][type=dot]) table thead,:host(limel-chart[display-axis-labels][type=dot]) table th,:host(limel-chart[display-axis-labels][type=area]) table thead,:host(limel-chart[display-axis-labels][type=area]) table th,:host(limel-chart[display-axis-labels][type=bar]) table thead,:host(limel-chart[display-axis-labels][type=bar]) table th{all:unset}:host(limel-chart[display-axis-labels][type=scatter]) table th,:host(limel-chart[display-axis-labels][type=line]) table th,:host(limel-chart[display-axis-labels][type=dot]) table th,:host(limel-chart[display-axis-labels][type=area]) table th,:host(limel-chart[display-axis-labels][type=bar]) table th{position:absolute;font-size:var(--limel-theme-default-small-font-size);max-width:100%;max-height:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host(limel-chart[display-axis-labels][orientation=portrait]) table thead th:first-of-type{left:-1.25rem;writing-mode:sideways-lr}:host(limel-chart[display-axis-labels][orientation=portrait]) table thead th:last-of-type{bottom:-2rem;left:50%;transform:translateX(-50%)}:host(limel-chart[display-axis-labels][orientation=landscape]) table thead th:first-of-type{bottom:-1.25rem;left:50%;transform:translateX(-50%)}:host(limel-chart[display-axis-labels][orientation=landscape]) table thead th:last-of-type{left:-3rem;writing-mode:sideways-lr}:host(limel-chart[display-item-text][type=scatter]) td.text,:host(limel-chart[display-item-text][type=line]) td.text,:host(limel-chart[display-item-text][type=area]) td.text,:host(limel-chart[display-item-text][type=dot]) td.text,:host(limel-chart[display-item-text][type=bar]) td.text{all:unset;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:absolute;font-size:0.75rem;max-width:max(5rem, 100%);mix-blend-mode:difference}:host(limel-chart[display-item-value][type=scatter]) td.value,:host(limel-chart[display-item-value][type=line]) td.value,:host(limel-chart[display-item-value][type=area]) td.value,:host(limel-chart[display-item-value][type=dot]) td.value,:host(limel-chart[display-item-value][type=bar]) td.value{all:unset;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:absolute;font-size:0.75rem;max-width:max(5rem, 100%);border-radius:9rem;padding:0 0.25rem;background-color:rgb(var(--contrast-100), 0.7);box-shadow:var(--shadow-brighten-edges-outside)}:host(limel-chart[display-item-value][type=scatter]) .item.has-value-zero td.value,:host(limel-chart[display-item-value][type=line]) .item.has-value-zero td.value,:host(limel-chart[display-item-value][type=area]) .item.has-value-zero td.value,:host(limel-chart[display-item-value][type=dot]) .item.has-value-zero td.value,:host(limel-chart[display-item-value][type=bar]) .item.has-value-zero td.value{opacity:0}:host(limel-chart[display-item-text][orientation=landscape]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=landscape]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=landscape]) .item.has-negative-value-only td.value{transform:rotateX(180deg)}:host(limel-chart[display-item-text][orientation=landscape]) .item.has-value-zero td.text,:host(limel-chart[display-item-value][orientation=landscape]) .item.has-value-zero td.text{transform:translateY(-50%)}:host(limel-chart[display-item-text][orientation=portrait]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=portrait]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=portrait]) .item.has-negative-value-only td.value{transform:rotateY(180deg)}:host(limel-chart[display-item-text][orientation=landscape][type=bar]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=bar]) td.value{top:0;transform:translateY(-50%)}:host(limel-chart[display-item-text][orientation=landscape][type=bar]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=bar]) .item.has-negative-value-only td.value{transform:rotateX(180deg) translateY(50%)}:host(limel-chart[display-item-text][orientation=portrait][type=bar]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=bar]) td.value{right:0;transform:translateX(50%)}:host(limel-chart[display-item-text][orientation=portrait][type=bar]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=bar]) .item.has-negative-value-only td.value{transform:rotateY(180deg) translateX(-50%)}:host(limel-chart[display-item-text][orientation=portrait][type=bar]) .item.has-value-zero td.text,:host(limel-chart[display-item-value][orientation=portrait][type=bar]) .item.has-value-zero td.text{transform:translateX(50%)}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) td.value{top:1rem}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) td.text{top:0}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) .item.has-negative-value-only td.value{transform:rotateX(180deg)}:host(limel-chart[display-item-text][orientation=landscape][type=dot]) .item.has-value-zero td.text,:host(limel-chart[display-item-value][orientation=landscape][type=dot]) .item.has-value-zero td.text{transform:translateY(-100%)}:host(limel-chart[display-item-text][orientation=portrait][type=dot]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=dot]) td.value{right:-0.25rem;transform:translateX(100%)}:host(limel-chart[display-item-text][orientation=portrait][type=dot]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=dot]) td.text{right:0.5rem}:host(limel-chart[display-item-text][orientation=portrait][type=dot]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=dot]) .item.has-negative-value-only td.value{transform:rotateY(180deg) translateX(-100%)}:host(limel-chart[display-item-text][type=scatter]) td.text{bottom:calc(100% + 0.25rem);left:50%;transform:translateX(-50%)}:host(limel-chart[display-item-value][type=scatter]) td.value{top:calc(100% + 0.25rem);left:50%;transform:translateX(-50%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.text,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.value{left:0.5rem;bottom:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.text,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.text,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.text{transform:translateY(150%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=line]) td.value,:host(limel-chart[display-item-text][orientation=landscape][type=area]) td.value,:host(limel-chart[display-item-value][orientation=landscape][type=area]) td.value{transform:translateY(50%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=landscape][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=landscape][type=area]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=landscape][type=area]) .item.has-negative-value-only td.text{transform:translateY(50%)}:host(limel-chart[display-item-text][orientation=landscape][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-text][orientation=landscape][type=area]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=landscape][type=area]) .item.has-negative-value-only td.value{transform:translateY(150%)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.text,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.value{left:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.text,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.text,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.text{transform:translateX(-100%)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=line]) td.value,:host(limel-chart[display-item-text][orientation=portrait][type=area]) td.value,:host(limel-chart[display-item-value][orientation=portrait][type=area]) td.value{transform:translateX(0)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=portrait][type=line]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-text][orientation=portrait][type=area]) .item.has-negative-value-only td.text,:host(limel-chart[display-item-value][orientation=portrait][type=area]) .item.has-negative-value-only td.text{transform:translateX(0)}:host(limel-chart[display-item-text][orientation=portrait][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=line]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-text][orientation=portrait][type=area]) .item.has-negative-value-only td.value,:host(limel-chart[display-item-value][orientation=portrait][type=area]) .item.has-negative-value-only td.value{transform:translateX(-100%)}:host(limel-chart[type=pie]) table,:host(limel-chart[type=doughnut]) table,:host(limel-chart[type=ring]) table{min-height:2rem;min-width:2rem}:host(limel-chart[type=pie]) .chart,:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .chart,:host(limel-chart[type=doughnut]) .item,:host(limel-chart[type=ring]) .chart,:host(limel-chart[type=ring]) .item{aspect-ratio:1;display:flex;margin:auto}:host(limel-chart[type=pie]) .chart,:host(limel-chart[type=doughnut]) .chart,:host(limel-chart[type=ring]) .chart{justify-content:center;align-items:center}:host(limel-chart[type=pie]) .chart:before,:host(limel-chart[type=doughnut]) .chart:before,:host(limel-chart[type=ring]) .chart:before{aspect-ratio:1;content:"";position:absolute;z-index:0;inset:0;margin:auto;border-radius:50%;max-width:100%;max-height:100%;background-color:var(--chart-background-color, rgb(var(--contrast-200)))}:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .item,:host(limel-chart[type=ring]) .item{max-width:100%;max-height:100%;border-radius:50%;position:absolute;inset:0}:host(limel-chart[type=bar]) .chart,:host(limel-chart[type=dot]) .chart{gap:0.5rem}:host(limel-chart[type=bar]) .item,:host(limel-chart[type=dot]) .item{display:flex;align-items:center;justify-content:center;border-radius:var(--chart-item-border-radius, 0.125rem)}:host(limel-chart[type=bar]) .item{background:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=dot]) .item:before,:host(limel-chart[type=dot]) .item:after{content:"";position:absolute;margin:auto;width:var(--limel-chart-min-item-size);height:var(--limel-chart-min-item-size);border-radius:50%}:host(limel-chart[type=dot]) .item::after{background-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=dot]) .item.has-start-value:before{background-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=bar][orientation=landscape]) .item,:host(limel-chart[type=dot][orientation=landscape]) .item{height:calc(var(--limel-chart-item-size) * 1%);bottom:calc(var(--limel-chart-item-offset) * 1%)}:host(limel-chart[type=bar][orientation=landscape]) .item.has-negative-value-only,:host(limel-chart[type=dot][orientation=landscape]) .item.has-negative-value-only{height:calc(var(--limel-chart-item-size) * -1%);transform-origin:bottom;transform:rotateX(180deg)}:host(limel-chart[type=dot][orientation=landscape]) .item.has-start-value,:host(limel-chart[type=dot][orientation=landscape]) .item:hover,:host(limel-chart[type=dot][orientation=landscape]) .item:focus-visible{background:linear-gradient(to bottom, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) center/1px 100% no-repeat}:host(limel-chart[type=dot][orientation=landscape]) .item:before{inset:auto 0 0 0;transform:translateY(50%)}:host(limel-chart[type=dot][orientation=landscape]) .item::after{inset:0 0 auto 0;transform:translateY(-50%)}:host(limel-chart[type=bar][orientation=portrait]) .item,:host(limel-chart[type=dot][orientation=portrait]) .item{width:calc(var(--limel-chart-item-size) * 1%);left:calc(var(--limel-chart-item-offset) * 1%)}:host(limel-chart[type=bar][orientation=portrait]) .item.has-negative-value-only,:host(limel-chart[type=dot][orientation=portrait]) .item.has-negative-value-only{width:calc(var(--limel-chart-item-size) * -1%);transform-origin:left;transform:rotateY(180deg)}:host(limel-chart[type=dot][orientation=portrait]) .item.has-start-value,:host(limel-chart[type=dot][orientation=portrait]) .item:hover,:host(limel-chart[type=dot][orientation=portrait]) .item:focus-visible{background:linear-gradient(to right, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) center/100% 1px no-repeat}:host(limel-chart[type=dot][orientation=portrait]) .item:before{inset:0 auto 0 0;transform:translateX(-50%)}:host(limel-chart[type=dot][orientation=portrait]) .item:after{inset:0 0 0 auto;transform:translateX(50%)}:host(limel-chart[type=area]) .item,:host(limel-chart[type=line]) .item{position:relative}:host(limel-chart[type=area]) .item:after,:host(limel-chart[type=line]) .item:after{margin:auto;width:var(--limel-chart-min-item-size);height:var(--limel-chart-min-item-size);border-radius:50%;border:1px solid rgb(var(--contrast-100))}:host(limel-chart[type=area]) .item:before,:host(limel-chart[type=line]) .item:before{inset:0}:host(limel-chart[type=area]) .item:after,:host(limel-chart[type=area]) .item:before,:host(limel-chart[type=line]) .item:after,:host(limel-chart[type=line]) .item:before{transition:border-color 0.2s ease, opacity 0.4s ease;content:"";position:absolute;background:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=area]) .item:hover:after,:host(limel-chart[type=area]) .item:focus-visible:after,:host(limel-chart[type=line]) .item:hover:after,:host(limel-chart[type=line]) .item:focus-visible:after{border-color:transparent}:host(limel-chart[type=line][orientation=landscape]) .item,:host(limel-chart[type=area][orientation=landscape]) .item{height:100%}:host(limel-chart[type=line][orientation=landscape]) .item:after,:host(limel-chart[type=area][orientation=landscape]) .item:after{transform:translateX(-50%) translateY(50%);left:0;bottom:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[type=line][orientation=landscape]) .item:last-of-type:before,:host(limel-chart[type=area][orientation=landscape]) .item:last-of-type:before{display:none}:host(limel-chart[type=line][orientation=portrait]) .item,:host(limel-chart[type=area][orientation=portrait]) .item{width:100%}:host(limel-chart[type=line][orientation=portrait]) .item:after,:host(limel-chart[type=area][orientation=portrait]) .item:after{transform:translateX(-50%) translateY(-50%);left:calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%)}:host(limel-chart[type=area]) .item:after{opacity:0}:host(limel-chart[type=area]) .item:hover:after,:host(limel-chart[type=area]) .item:focus-visible:after{opacity:1}:host(limel-chart[type=area]) .item:hover:before,:host(limel-chart[type=area]) .item:focus-visible:before{opacity:0.7}:host(limel-chart[type=area][orientation=landscape]){}:host(limel-chart[type=area][orientation=landscape]) .item:before{clip-path:polygon(0 calc((100 - var(--limel-chart-item-offset)) * 1%), 0 calc((100 - (var(--limel-chart-item-size) + var(--limel-chart-item-offset))) * 1%), 100% calc((100 - (var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset))) * 1%), 100% calc((100 - var(--limel-chart-next-item-offset)) * 1%))}:host(limel-chart[type=area][orientation=portrait]){}:host(limel-chart[type=area][orientation=portrait]) .item:before{clip-path:polygon(calc(var(--limel-chart-item-offset) * 1%) 0, calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%) 0, calc((var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset)) * 1%) 100%, calc(var(--limel-chart-next-item-offset) * 1%) 100%)}:host(limel-chart[type=line]){--limel-chart-line-thickness:0.125rem}:host(limel-chart[type=line]) .item:hover:before{opacity:0.4}:host(limel-chart[type=line][orientation=landscape]){}:host(limel-chart[type=line][orientation=landscape]) .item:hover{background:linear-gradient(to bottom, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) left/1px 100% no-repeat}:host(limel-chart[type=line][orientation=landscape]) .item:before{clip-path:polygon(0 calc((100 - (var(--limel-chart-item-size) + var(--limel-chart-item-offset))) * 1%), 0 calc((100 - (var(--limel-chart-item-size) + var(--limel-chart-item-offset))) * 1% + var(--limel-chart-line-thickness)), 100% calc((100 - (var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset))) * 1% + var(--limel-chart-line-thickness)), 100% calc((100 - (var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset))) * 1%))}:host(limel-chart[type=line][orientation=portrait]){}:host(limel-chart[type=line][orientation=portrait]) .item:hover{background:linear-gradient(to right, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) top/100% 1px no-repeat}:host(limel-chart[type=line][orientation=portrait]) .item:before{clip-path:polygon(calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1%) 0, calc((var(--limel-chart-item-size) + var(--limel-chart-item-offset)) * 1% + var(--limel-chart-line-thickness)) 0, calc((var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset)) * 1% + var(--limel-chart-line-thickness)) 100%, calc((var(--limel-chart-next-item-size) + var(--limel-chart-next-item-offset)) * 1%) 100%)}:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .item{background:conic-gradient(transparent 0 calc(var(--limel-chart-item-offset) * 1%), var(--limel-chart-item-color, var(--limel-chart-default-item-color)) calc(var(--limel-chart-item-offset) * 1%) calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%), transparent calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%))}:host(limel-chart[type=pie]) .item:focus,:host(limel-chart[type=pie]) .item:focus-visible,:host(limel-chart[type=doughnut]) .item:focus,:host(limel-chart[type=doughnut]) .item:focus-visible{outline:none}:host(limel-chart[type=pie]) .item,:host(limel-chart[type=doughnut]) .item{pointer-events:none}:host(limel-chart[type=doughnut]) .chart:after{aspect-ratio:1;content:"";position:absolute;inset:0;margin:auto;max-width:60%;max-height:60%;border-radius:50%;background-color:rgb(var(--contrast-100))}:host(limel-chart[type=ring]) .chart:after{content:"";position:absolute;inset:0;aspect-ratio:1;border-radius:50%;max-height:calc(100% - var(--limel-chart-number-of-items) * 100% / (var(--limel-chart-number-of-items) + 1));max-width:calc(100% - var(--limel-chart-number-of-items) * 100% / (var(--limel-chart-number-of-items) + 1));background-color:var(--limel-chart-background-color, rgb(var(--contrast-200)))}:host(limel-chart[type=ring]) .chart:has(.item:hover) .item,:host(limel-chart[type=ring]) .chart:has(.item:focus-visible) .item{opacity:1;filter:grayscale(1)}:host(limel-chart[type=ring]) .chart:after,:host(limel-chart[type=ring]) .item{margin:auto;border:1px solid var(--limel-chart-background-color, rgb(var(--contrast-400)))}:host(limel-chart[type=ring]) .item{background:conic-gradient(var(--limel-chart-item-color, var(--limel-chart-default-item-color)) 0 calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%), var(--chart-background-color, rgb(var(--contrast-200))) calc(var(--limel-chart-item-offset) * 1% + var(--limel-chart-item-size) * 1%));max-width:calc(100% - var(--limel-chart-item-index) * 100% / (var(--limel-chart-number-of-items) + 1));max-height:calc(100% - var(--limel-chart-item-index) * 100% / (var(--limel-chart-number-of-items) + 1))}:host(limel-chart[type=ring]) .item:focus-visible,:host(limel-chart[type=ring]) .item:hover{filter:grayscale(0) !important}:host(limel-chart[type=stacked-bar]) .chart{display:flex;border-radius:0.25rem;overflow:hidden;background-color:var(--chart-background-color, rgb(var(--contrast-800), 0.2))}:host(limel-chart[type=stacked-bar]) .item{display:flex;border-radius:var(--chart-item-border-radius, 0);background:var(--limel-chart-item-color, var(--limel-chart-default-item-color))}:host(limel-chart[type=stacked-bar]) .item:last-of-type:not(:focus-visible){box-shadow:none !important}:host(limel-chart[type=stacked-bar][orientation=landscape]) .chart{flex-direction:row}:host(limel-chart[type=stacked-bar][orientation=landscape]) .item{min-height:0.5rem;width:calc(var(--limel-chart-item-size) * 1%)}:host(limel-chart[type=stacked-bar][orientation=landscape]) .item:not(:focus-visible){box-shadow:-1px 0 0 0 var(--chart-item-divider-color, rgb(var(--color-white), 0.6)) inset}:host(limel-chart[type=stacked-bar][orientation=portrait]) .chart{flex-direction:column-reverse}:host(limel-chart[type=stacked-bar][orientation=portrait]) .item{min-width:0.5rem;height:calc(var(--limel-chart-item-size) * 1%)}:host(limel-chart[type=stacked-bar][orientation=portrait]) .item:not(:focus-visible){box-shadow:0 -1px 0 0 rgb(var(--color-white), 0.6) inset}:host(limel-chart[type=nps]){--limel-chart-nps-gauge-angel:220deg}:host(limel-chart[type=nps]) table{min-height:4rem;min-width:4rem}:host(limel-chart[type=nps]) .chart{position:relative;display:flex;justify-content:center;align-items:center;aspect-ratio:1;margin:auto;width:unset;height:unset;max-width:100%;max-height:100%;rotate:calc(var(--limel-chart-nps-gauge-angel) / 2 * -1);transform:translate(-15%, -5%)}:host(limel-chart[type=nps]) .chart:before,:host(limel-chart[type=nps]) .chart:after{content:"";aspect-ratio:1;position:absolute;border-radius:50%;z-index:-1;min-height:0;min-width:0}:host(limel-chart[type=nps]) .chart:before{height:100%;max-height:100%;background:conic-gradient(rgb(var(--color-coral-default)) 0deg calc(var(--limel-chart-nps-gauge-angel) / 2), rgb(var(--color-amber-light)) calc(var(--limel-chart-nps-gauge-angel) / 2) calc(var(--limel-chart-nps-gauge-angel) * 0.65), rgb(var(--color-lime-light)) calc(var(--limel-chart-nps-gauge-angel) * 0.65) calc(var(--limel-chart-nps-gauge-angel) * 0.85), rgb(var(--color-lime-default)) calc(var(--limel-chart-nps-gauge-angel) * 0.85) var(--limel-chart-nps-gauge-angel), transparent var(--limel-chart-nps-gauge-angel))}:host(limel-chart[type=nps]) .chart:after{height:calc(100% - min(3rem, 20%) * 2);max-height:calc(100% - min(3rem, 20%) * 2);background:conic-gradient(var(--chart-background-color, rgb(var(--contrast-100))) 0deg var(--limel-chart-nps-gauge-angel), transparent var(--limel-chart-nps-gauge-angel))}:host(limel-chart[type=nps]) .item{display:flex;align-items:flex-start;justify-content:center;border-radius:0.5rem;position:absolute;height:calc(50% - min(3rem, 20%) + 0.5rem);width:0.5rem;transform:translateY(-50%) rotate(calc((var(--limel-chart-item-value) + 100) / 200 * var(--limel-chart-nps-gauge-angel)));transform-origin:bottom}:host(limel-chart[type=nps]) .item:hover,:host(limel-chart[type=nps]) .item:focus-visible{background:linear-gradient(to bottom, rgb(var(--contrast-800), 0.4) 0%, rgb(var(--contrast-800), 0.4) 100%) center/1px 100% no-repeat}:host(limel-chart[type=nps]) .item:before,:host(limel-chart[type=nps]) .item:after{content:"";position:absolute}:host(limel-chart[type=nps]) .item:before{transform:translateY(-60%);width:0.4rem;border-radius:1rem;border-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color));border-style:solid;border-bottom-width:1.75rem;border-right-color:transparent;border-left-color:transparent;border-top-color:transparent}:host(limel-chart[type=nps]) .item:after{border-radius:50%;background-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color));aspect-ratio:1;height:clamp(0.75rem, 10%, 1.25rem);border:0.125rem solid rgb(var(--contrast-100), 0.8);box-shadow:var(--shadow-depth-8)}:host(limel-chart[type=scatter]){--limel-chart-padding:0.5rem 0.5rem 1rem 2rem}:host(limel-chart[type=scatter]) .chart{display:block;background-color:var(--chart-background-color, transparent)}:host(limel-chart[type=scatter]) .item{position:absolute;transform-origin:center;width:var(--chart-scatter-item-size, 0.5rem);height:var(--chart-scatter-item-size, 0.5rem);border-radius:50%;background-color:var(--limel-chart-item-color, var(--limel-chart-default-item-color));mix-blend-mode:hard-light}:host(limel-chart[type=scatter][orientation=landscape]) .item{left:calc(var(--limel-chart-item-offset-x) * 1%);bottom:calc(var(--limel-chart-item-offset-y) * 1%);transform:translate(-50%, 50%)}:host(limel-chart[type=scatter][orientation=portrait]) .item{left:calc(var(--limel-chart-item-offset-y) * 1%);top:calc(var(--limel-chart-item-offset-x) * 1%);transform:translate(-50%, -50%)}:host(limel-chart[type=scatter][display-axis-labels][orientation=landscape]),:host(limel-chart[type=scatter][display-axis-labels][orientation=portrait]){--limel-chart-padding:0.5rem 0.5rem 2rem 3rem}:host(limel-chart[type=scatter][display-axis-labels][orientation=landscape]) table thead th:first-of-type{bottom:-2rem;left:50%;transform:translateX(-50%)}:host(limel-chart[type=scatter][display-axis-labels][orientation=landscape]) table thead th:last-of-type{left:-3rem;writing-mode:sideways-lr}:host(limel-chart[type=scatter][display-axis-labels][orientation=portrait]) table thead th:first-of-type{left:-3rem;writing-mode:sideways-lr}:host(limel-chart[type=scatter][display-axis-labels][orientation=portrait]) table thead th:last-of-type{bottom:-2rem;left:50%;transform:translateX(-50%)}.axises{position:absolute;display:flex;justify-content:space-between;min-height:100%;min-width:100%;height:100%;width:100%}.axis-line{transition:opacity 0.4s ease;position:relative;opacity:0.2;font-size:0.625rem;border-color:var(--limel-chart-axis-line-color)}.axis-line:hover{opacity:0.6;transition-duration:0.2s}.axis-line.zero-line{opacity:0.6;z-index:1}.axis-line limel-badge{--badge-background-color:transparent;--badge-text-color:currentColor;position:absolute;text-align:right;min-width:2rem}:host(limel-chart[orientation=landscape]:not([type=scatter])) .axises{flex-direction:column-reverse}:host(limel-chart[orientation=landscape]:not([type=scatter])) .axis-line{border-bottom:1px solid;transform:translateY(50%)}:host(limel-chart[orientation=landscape]:not([type=scatter])) .axis-line limel-badge{bottom:0;left:-2rem;transform:translateY(50%)}:host(limel-chart[orientation=portrait]:not([type=scatter])) .axises{flex-direction:row}:host(limel-chart[orientation=portrait]:not([type=scatter])) .axis-line{border-left:1px solid;transform:translateX(-50%)}:host(limel-chart[orientation=portrait]:not([type=scatter])) .axis-line limel-badge{bottom:-1rem;right:-1rem}.axises.horizontal-lines .axis-line{border-bottom:1px solid;transform:translateY(50%)}.axises.horizontal-lines .axis-line limel-badge{bottom:0;left:-2rem;transform:translateY(50%)}:host(limel-chart[orientation=landscape]) .axises.horizontal-lines{flex-direction:column-reverse}:host(limel-chart[orientation=portrait]) .axises.horizontal-lines{flex-direction:column}.axises.vertical-lines{flex-direction:row}.axises.vertical-lines .axis-line{border-left:1px solid;transform:translateX(-50%)}.axises.vertical-lines .axis-line limel-badge{bottom:-1rem;right:-1rem}:host(limel-chart){--limel-chart-min-item-size:0.5rem;--limel-chart-default-item-color:var( --chart-item-color, rgb(var(--contrast-1100), 0.8) );--chart-axis-line-color:var( --limel-chart-axis-line-color, rgb(var(--contrast-900)) );box-sizing:border-box;isolation:isolate;display:flex;width:100%;height:100%;min-width:0;min-height:0;padding:var(--limel-chart-padding)}table{all:unset;border-collapse:collapse;border-spacing:0;empty-cells:show;position:relative;display:flex;width:100%;height:100%;min-width:0;min-height:0}table colgroup,table thead,table tbody,table tr,table th,table td{all:unset}table caption,table colgroup,table thead,table tfoot,table th,table td{position:absolute;width:0;height:0;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap}*,*:before,*:after{box-sizing:border-box}.chart{position:relative;flex-grow:1;width:100%;height:100%;min-height:0;min-width:0}.chart:has(.item:hover) .item,.chart:has(.item:focus-visible) .item{opacity:0.4}.item:focus{outline:none}.item:focus-visible{outline:none;box-shadow:var(--shadow-depth-8-focused)}.item{transition:background-color 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease, opacity 0.4s ease;cursor:help}.item:focus-visible,.item:hover{opacity:1 !important}.item[role=button]{cursor:pointer}limel-spinner{margin:auto}`;
8
8
 
9
9
  const PERCENT = 100;
10
10
  const DEFAULT_INCREMENT_SIZE = 10;
@@ -91,20 +91,40 @@ const Chart = class {
91
91
  return (index.h("thead", null, index.h("tr", null, index.h("th", { scope: "col" }, (_a = this.accessibleItemsLabel) !== null && _a !== void 0 ? _a : translations.translate.get('items', this.language)), index.h("th", { scope: "col" }, (_b = this.accessibleValuesLabel) !== null && _b !== void 0 ? _b : translations.translate.get('value', this.language)))));
92
92
  }
93
93
  renderAxises() {
94
- if (!['bar', 'dot', 'area', 'line'].includes(this.type)) {
94
+ if (!['bar', 'dot', 'area', 'line', 'scatter'].includes(this.type)) {
95
95
  return;
96
96
  }
97
- const { minValue, maxValue } = this.range;
97
+ if (this.type === 'scatter') {
98
+ return this.renderScatterAxises();
99
+ }
100
+ return this.renderAxisLines(this.range);
101
+ }
102
+ // Two value axes, so a full grid: horizontal lines for the vertical axis,
103
+ // vertical lines for the horizontal one. Which range maps to which flips
104
+ // with `orientation`, like the points.
105
+ renderScatterAxises() {
106
+ const portrait = this.orientation === 'portrait';
107
+ const horizontalLines = portrait ? this.secondaryAxisRange : this.range;
108
+ const verticalLines = portrait ? this.range : this.secondaryAxisRange;
109
+ return [
110
+ this.renderAxisLines(horizontalLines, 'horizontal-lines'),
111
+ this.renderAxisLines(verticalLines, 'vertical-lines'),
112
+ ];
113
+ }
114
+ renderAxisLines(range, direction) {
115
+ const { minValue, maxValue, increment } = range;
98
116
  const lines = [];
99
- const adjustedMinRange = Math.floor(minValue / this.axisIncrement) * this.axisIncrement;
100
- const adjustedMaxRange = Math.ceil(maxValue / this.axisIncrement) * this.axisIncrement;
101
- for (let value = adjustedMinRange; value <= adjustedMaxRange; value += this.axisIncrement) {
117
+ for (let value = minValue; value <= maxValue; value += increment) {
102
118
  lines.push(index.h("div", { class: {
103
119
  'axis-line': true,
104
120
  'zero-line': value === 0,
105
121
  }, role: "presentation" }, index.h("limel-badge", { label: value })));
106
122
  }
107
- return (index.h("div", { class: "axises", role: "presentation" }, lines));
123
+ const cssClass = { axises: true };
124
+ if (direction) {
125
+ cssClass[direction] = true;
126
+ }
127
+ return (index.h("div", { class: cssClass, role: "presentation", key: direction }, lines));
108
128
  }
109
129
  renderItems() {
110
130
  var _a;
@@ -125,6 +145,9 @@ const Chart = class {
125
145
  });
126
146
  }
127
147
  getItemStyle(item, index, size, offset) {
148
+ if (this.type === 'scatter') {
149
+ return this.getScatterItemStyle(item, index);
150
+ }
128
151
  const style = {
129
152
  '--limel-chart-item-offset': `${offset}`,
130
153
  '--limel-chart-item-size': `${size}`,
@@ -141,12 +164,25 @@ const Chart = class {
141
164
  }
142
165
  return style;
143
166
  }
167
+ getScatterItemStyle(item, index) {
168
+ const style = {
169
+ '--limel-chart-item-offset-x': `${this.normalize(this.getXValue(item), this.secondaryAxisRange)}`,
170
+ '--limel-chart-item-offset-y': `${this.normalize(this.getYValue(item), this.range)}`,
171
+ '--limel-chart-item-index': `${index}`,
172
+ };
173
+ if (item.color) {
174
+ style['--limel-chart-item-color'] = item.color;
175
+ }
176
+ return style;
177
+ }
144
178
  getItemClass(item) {
145
179
  return {
146
180
  item: true,
147
- 'has-start-value': Array.isArray(item.value),
181
+ 'has-start-value': this.type !== 'scatter' && Array.isArray(item.value),
148
182
  'has-negative-value-only': this.getMaximumValue(item) < 0 && !this.isRangeItem(item),
149
- 'has-value-zero': this.getMaximumValue(item) === 0,
183
+ // Scatter coordinates are independent values, so "value is zero"
184
+ // (which hides the value label elsewhere) must not apply.
185
+ 'has-value-zero': this.type !== 'scatter' && this.getMaximumValue(item) === 0,
150
186
  };
151
187
  }
152
188
  calculateSizeAndOffset(item) {
@@ -174,6 +210,9 @@ const Chart = class {
174
210
  return formattedValue;
175
211
  }
176
212
  if (Array.isArray(value)) {
213
+ if (this.type === 'scatter') {
214
+ return `(${value[0]}, ${value[1]})`;
215
+ }
177
216
  return `${value[0]} — ${value[1]}`;
178
217
  }
179
218
  return `${value}`;
@@ -190,7 +229,10 @@ const Chart = class {
190
229
  helperLabel: formattedValue,
191
230
  elementId: itemId,
192
231
  };
193
- if (this.type !== 'bar' && this.type !== 'dot' && this.type !== 'nps') {
232
+ if (this.type !== 'bar' &&
233
+ this.type !== 'dot' &&
234
+ this.type !== 'nps' &&
235
+ this.type !== 'scatter') {
194
236
  tooltipProps.label = `${text} (${size.toFixed(PERCENT_DECIMAL)}%)`;
195
237
  }
196
238
  return (index.h("limel-tooltip", Object.assign({}, tooltipProps, { openDirection: this.orientation === 'portrait' ? 'right' : 'top' })));
@@ -209,7 +251,7 @@ const Chart = class {
209
251
  finalMaxRange = totalSum;
210
252
  }
211
253
  if (!this.axisIncrement) {
212
- this.axisIncrement = this.calculateAxisIncrement(this.items);
254
+ this.axisIncrement = this.calculateAxisIncrement(this.items.map(this.getMaximumValue));
213
255
  }
214
256
  const visualMaxValue = Math.ceil(finalMaxRange / this.axisIncrement) * this.axisIncrement;
215
257
  const visualMinValue = Math.floor(minRange / this.axisIncrement) * this.axisIncrement;
@@ -218,20 +260,54 @@ const Chart = class {
218
260
  minValue: visualMinValue,
219
261
  maxValue: visualMaxValue,
220
262
  totalRange: totalRange,
263
+ increment: this.axisIncrement,
221
264
  };
222
265
  }
223
- calculateAxisIncrement(items, steps = DEFAULT_INCREMENT_SIZE) {
224
- const maxValue = Math.max(...items.map((item) => {
225
- const value = item.value;
226
- if (Array.isArray(value)) {
227
- return Math.max(...value);
228
- }
229
- return value;
230
- }));
231
- const roughStep = maxValue / steps;
266
+ calculateAxisIncrement(values, steps = DEFAULT_INCREMENT_SIZE) {
267
+ return this.calculateNiceStep(Math.max(...values), steps);
268
+ }
269
+ // A "nice" step (…× 10ⁿ) dividing `span` into ~`steps` intervals. Takes the
270
+ // axis length, not a raw max, so it's sign-safe (a negative max would make
271
+ // `Math.log10` return `NaN`).
272
+ calculateNiceStep(span, steps = DEFAULT_INCREMENT_SIZE) {
273
+ if (span <= 0) {
274
+ // Every value is identical (e.g. all zero); any positive step works.
275
+ return 1;
276
+ }
277
+ const roughStep = span / steps;
232
278
  const magnitude = 10 ** Math.floor(Math.log10(roughStep));
233
279
  return Math.ceil(roughStep / magnitude) * magnitude;
234
280
  }
281
+ // Axis length measured through zero, so the origin is always included.
282
+ axisSpan(values) {
283
+ return Math.max(0, ...values) - Math.min(0, ...values);
284
+ }
285
+ // A "nice" rounded range for one scatter axis. Both bounds include zero, so
286
+ // a fully-negative axis still shows its origin (and zero line).
287
+ calculateAxisRange(values, increment) {
288
+ const minValue = Math.floor(Math.min(0, ...values) / increment) * increment;
289
+ const maxValue = Math.ceil(Math.max(0, ...values) / increment) * increment;
290
+ return {
291
+ minValue: minValue,
292
+ maxValue: maxValue,
293
+ totalRange: maxValue - minValue,
294
+ increment: increment,
295
+ };
296
+ }
297
+ normalize(value, range) {
298
+ if (range.totalRange === 0) {
299
+ // Degenerate axis (every value is zero): center the point so it
300
+ // stays visible instead of dividing by zero.
301
+ return PERCENT / 2;
302
+ }
303
+ return ((value - range.minValue) / range.totalRange) * PERCENT;
304
+ }
305
+ getXValue(item) {
306
+ return Array.isArray(item.value) ? item.value[0] : item.value;
307
+ }
308
+ getYValue(item) {
309
+ return Array.isArray(item.value) ? item.value[1] : item.value;
310
+ }
235
311
  getMinimumValue(item) {
236
312
  const value = item.value;
237
313
  return Array.isArray(value) ? Math.min(...value) : value;
@@ -245,11 +321,26 @@ const Chart = class {
245
321
  }
246
322
  handleChange() {
247
323
  this.range = null;
324
+ this.secondaryAxisRange = null;
248
325
  this.recalculateRangeData();
249
326
  }
250
327
  recalculateRangeData() {
328
+ if (this.type === 'scatter') {
329
+ this.recalculateScatterRanges();
330
+ return;
331
+ }
251
332
  this.range = this.calculateRange();
252
333
  }
334
+ // Each axis derives its own range and step from its own zero-anchored span
335
+ // (positive, negative, and zero-crossing data all grid sensibly). The single
336
+ // `axisIncrement` prop can't describe two independent axes, so scatter
337
+ // ignores it and auto-derives both, like it does `maxValue`.
338
+ recalculateScatterRanges() {
339
+ const xValues = this.items.map((item) => this.getXValue(item));
340
+ const yValues = this.items.map((item) => this.getYValue(item));
341
+ this.range = this.calculateAxisRange(yValues, this.calculateNiceStep(this.axisSpan(yValues)));
342
+ this.secondaryAxisRange = this.calculateAxisRange(xValues, this.calculateNiceStep(this.axisSpan(xValues)));
343
+ }
253
344
  getClickableItem(target) {
254
345
  const index = target.dataset.index;
255
346
  if (index === undefined) {
@@ -167,6 +167,8 @@
167
167
  3rem;
168
168
  }
169
169
 
170
+ :host(limel-chart[display-axis-labels][type=scatter]) table thead,
171
+ :host(limel-chart[display-axis-labels][type=scatter]) table th,
170
172
  :host(limel-chart[display-axis-labels][type=line]) table thead,
171
173
  :host(limel-chart[display-axis-labels][type=line]) table th,
172
174
  :host(limel-chart[display-axis-labels][type=dot]) table thead,
@@ -177,6 +179,7 @@
177
179
  :host(limel-chart[display-axis-labels][type=bar]) table th {
178
180
  all: unset;
179
181
  }
182
+ :host(limel-chart[display-axis-labels][type=scatter]) table th,
180
183
  :host(limel-chart[display-axis-labels][type=line]) table th,
181
184
  :host(limel-chart[display-axis-labels][type=dot]) table th,
182
185
  :host(limel-chart[display-axis-labels][type=area]) table th,
@@ -210,6 +213,7 @@
210
213
  writing-mode: sideways-lr;
211
214
  }
212
215
 
216
+ :host(limel-chart[display-item-text][type=scatter]) td.text,
213
217
  :host(limel-chart[display-item-text][type=line]) td.text,
214
218
  :host(limel-chart[display-item-text][type=area]) td.text,
215
219
  :host(limel-chart[display-item-text][type=dot]) td.text,
@@ -224,6 +228,7 @@
224
228
  mix-blend-mode: difference;
225
229
  }
226
230
 
231
+ :host(limel-chart[display-item-value][type=scatter]) td.value,
227
232
  :host(limel-chart[display-item-value][type=line]) td.value,
228
233
  :host(limel-chart[display-item-value][type=area]) td.value,
229
234
  :host(limel-chart[display-item-value][type=dot]) td.value,
@@ -240,6 +245,7 @@
240
245
  background-color: rgb(var(--contrast-100), 0.7);
241
246
  box-shadow: var(--shadow-brighten-edges-outside);
242
247
  }
248
+ :host(limel-chart[display-item-value][type=scatter]) .item.has-value-zero td.value,
243
249
  :host(limel-chart[display-item-value][type=line]) .item.has-value-zero td.value,
244
250
  :host(limel-chart[display-item-value][type=area]) .item.has-value-zero td.value,
245
251
  :host(limel-chart[display-item-value][type=dot]) .item.has-value-zero td.value,
@@ -320,6 +326,18 @@
320
326
  transform: rotateY(180deg) translateX(-100%);
321
327
  }
322
328
 
329
+ :host(limel-chart[display-item-text][type=scatter]) td.text {
330
+ bottom: calc(100% + 0.25rem);
331
+ left: 50%;
332
+ transform: translateX(-50%);
333
+ }
334
+
335
+ :host(limel-chart[display-item-value][type=scatter]) td.value {
336
+ top: calc(100% + 0.25rem);
337
+ left: 50%;
338
+ transform: translateX(-50%);
339
+ }
340
+
323
341
  :host(limel-chart[display-item-text][orientation=landscape][type=line]) td.text,
324
342
  :host(limel-chart[display-item-text][orientation=landscape][type=line]) td.value,
325
343
  :host(limel-chart[display-item-value][orientation=landscape][type=line]) td.text,
@@ -799,6 +817,60 @@
799
817
  box-shadow: var(--shadow-depth-8);
800
818
  }
801
819
 
820
+ :host(limel-chart[type=scatter]) {
821
+ --limel-chart-padding: 0.5rem 0.5rem 1rem 2rem;
822
+ }
823
+ :host(limel-chart[type=scatter]) .chart {
824
+ display: block;
825
+ background-color: var(--chart-background-color, transparent);
826
+ }
827
+ :host(limel-chart[type=scatter]) .item {
828
+ position: absolute;
829
+ transform-origin: center;
830
+ width: var(--chart-scatter-item-size, 0.5rem);
831
+ height: var(--chart-scatter-item-size, 0.5rem);
832
+ border-radius: 50%;
833
+ background-color: var(--limel-chart-item-color, var(--limel-chart-default-item-color));
834
+ mix-blend-mode: hard-light;
835
+ }
836
+
837
+ :host(limel-chart[type=scatter][orientation=landscape]) .item {
838
+ left: calc(var(--limel-chart-item-offset-x) * 1%);
839
+ bottom: calc(var(--limel-chart-item-offset-y) * 1%);
840
+ transform: translate(-50%, 50%);
841
+ }
842
+
843
+ :host(limel-chart[type=scatter][orientation=portrait]) .item {
844
+ left: calc(var(--limel-chart-item-offset-y) * 1%);
845
+ top: calc(var(--limel-chart-item-offset-x) * 1%);
846
+ transform: translate(-50%, -50%);
847
+ }
848
+
849
+ :host(limel-chart[type=scatter][display-axis-labels][orientation=landscape]),
850
+ :host(limel-chart[type=scatter][display-axis-labels][orientation=portrait]) {
851
+ --limel-chart-padding: 0.5rem 0.5rem 2rem 3rem;
852
+ }
853
+
854
+ :host(limel-chart[type=scatter][display-axis-labels][orientation=landscape]) table thead th:first-of-type {
855
+ bottom: -2rem;
856
+ left: 50%;
857
+ transform: translateX(-50%);
858
+ }
859
+ :host(limel-chart[type=scatter][display-axis-labels][orientation=landscape]) table thead th:last-of-type {
860
+ left: -3rem;
861
+ writing-mode: sideways-lr;
862
+ }
863
+
864
+ :host(limel-chart[type=scatter][display-axis-labels][orientation=portrait]) table thead th:first-of-type {
865
+ left: -3rem;
866
+ writing-mode: sideways-lr;
867
+ }
868
+ :host(limel-chart[type=scatter][display-axis-labels][orientation=portrait]) table thead th:last-of-type {
869
+ bottom: -2rem;
870
+ left: 50%;
871
+ transform: translateX(-50%);
872
+ }
873
+
802
874
  .axises {
803
875
  position: absolute;
804
876
  display: flex;
@@ -832,27 +904,57 @@
832
904
  min-width: 2rem;
833
905
  }
834
906
 
835
- :host(limel-chart[orientation=landscape]) .axises {
907
+ :host(limel-chart[orientation=landscape]:not([type=scatter])) .axises {
836
908
  flex-direction: column-reverse;
837
909
  }
838
- :host(limel-chart[orientation=landscape]) .axis-line {
910
+ :host(limel-chart[orientation=landscape]:not([type=scatter])) .axis-line {
839
911
  border-bottom: 1px solid;
840
912
  transform: translateY(50%);
841
913
  }
842
- :host(limel-chart[orientation=landscape]) .axis-line limel-badge {
914
+ :host(limel-chart[orientation=landscape]:not([type=scatter])) .axis-line limel-badge {
843
915
  bottom: 0;
844
916
  left: -2rem;
845
917
  transform: translateY(50%);
846
918
  }
847
919
 
848
- :host(limel-chart[orientation=portrait]) .axises {
920
+ :host(limel-chart[orientation=portrait]:not([type=scatter])) .axises {
921
+ flex-direction: row;
922
+ }
923
+ :host(limel-chart[orientation=portrait]:not([type=scatter])) .axis-line {
924
+ border-left: 1px solid;
925
+ transform: translateX(-50%);
926
+ }
927
+ :host(limel-chart[orientation=portrait]:not([type=scatter])) .axis-line limel-badge {
928
+ bottom: -1rem;
929
+ right: -1rem;
930
+ }
931
+
932
+ .axises.horizontal-lines .axis-line {
933
+ border-bottom: 1px solid;
934
+ transform: translateY(50%);
935
+ }
936
+ .axises.horizontal-lines .axis-line limel-badge {
937
+ bottom: 0;
938
+ left: -2rem;
939
+ transform: translateY(50%);
940
+ }
941
+
942
+ :host(limel-chart[orientation=landscape]) .axises.horizontal-lines {
943
+ flex-direction: column-reverse;
944
+ }
945
+
946
+ :host(limel-chart[orientation=portrait]) .axises.horizontal-lines {
947
+ flex-direction: column;
948
+ }
949
+
950
+ .axises.vertical-lines {
849
951
  flex-direction: row;
850
952
  }
851
- :host(limel-chart[orientation=portrait]) .axis-line {
953
+ .axises.vertical-lines .axis-line {
852
954
  border-left: 1px solid;
853
955
  transform: translateX(-50%);
854
956
  }
855
- :host(limel-chart[orientation=portrait]) .axis-line limel-badge {
957
+ .axises.vertical-lines .axis-line limel-badge {
856
958
  bottom: -1rem;
857
959
  right: -1rem;
858
960
  }
@@ -863,6 +965,7 @@
863
965
  * @prop --chart-item-divider-color: Defines the color that visually separates items in some charts, such as `stacked-bar` chart items. Defaults to `rgb(var(--color-white), 0.6)`.
864
966
  * @prop --chart-axis-line-color: Defines color of the axis lines. Defaults to `--contrast-900`. Note that lines have opacity as well, and get opaque on hover.
865
967
  * @prop --chart-item-border-radius: Defines the roundness of corners of items in a chart. Defaults to different values depending on the chart type. Does not have any effect on `pie` and `doughnut` types.
968
+ * @prop --chart-scatter-item-size: Defines the diameter of the dots in a `scatter` chart. Defaults to `0.5rem`.
866
969
  */
867
970
  :host(limel-chart) {
868
971
  --limel-chart-min-item-size: 0.5rem;