@k2b/ui 0.51.0 → 0.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/dist/base.css +3 -0
  2. package/dist/browser/actions/Toolbar.js +8 -2
  3. package/dist/browser/actions/Toolbar.js.map +1 -1
  4. package/dist/browser/charts/core/bar-labels.js +5 -0
  5. package/dist/browser/charts/core/bar-labels.js.map +1 -0
  6. package/dist/browser/charts/core/bubble.js +166 -0
  7. package/dist/browser/charts/core/bubble.js.map +1 -0
  8. package/dist/browser/charts/core/default-styles.js +83 -0
  9. package/dist/browser/charts/core/default-styles.js.map +1 -0
  10. package/dist/browser/charts/core/funnel-layout.js +79 -0
  11. package/dist/browser/charts/core/funnel-layout.js.map +1 -0
  12. package/dist/browser/charts/core/funnel.js +27 -0
  13. package/dist/browser/charts/core/funnel.js.map +1 -0
  14. package/dist/browser/charts/core/index.js +6 -1
  15. package/dist/browser/charts/core/index.js.map +1 -1
  16. package/dist/browser/charts/core/pareto.js +120 -0
  17. package/dist/browser/charts/core/pareto.js.map +1 -0
  18. package/dist/browser/charts/core/radar.js +101 -0
  19. package/dist/browser/charts/core/radar.js.map +1 -0
  20. package/dist/browser/charts/core/registry.js +11 -1
  21. package/dist/browser/charts/core/registry.js.map +1 -1
  22. package/dist/browser/charts/core/render-size.js +3 -1
  23. package/dist/browser/charts/core/render-size.js.map +1 -1
  24. package/dist/browser/charts/core/render.js +19 -0
  25. package/dist/browser/charts/core/render.js.map +1 -1
  26. package/dist/browser/charts/core/snapshot.js +1 -1
  27. package/dist/browser/charts/core/snapshot.js.map +1 -1
  28. package/dist/browser/charts/core/svg-barGauge.js +67 -0
  29. package/dist/browser/charts/core/svg-barGauge.js.map +1 -0
  30. package/dist/browser/charts/core/svg-boxplot.js +127 -0
  31. package/dist/browser/charts/core/svg-boxplot.js.map +1 -0
  32. package/dist/browser/charts/core/svg-common.js +1065 -0
  33. package/dist/browser/charts/core/svg-common.js.map +1 -0
  34. package/dist/browser/charts/core/svg-gauge.js +185 -0
  35. package/dist/browser/charts/core/svg-gauge.js.map +1 -0
  36. package/dist/browser/charts/core/svg-heatmap.js +80 -0
  37. package/dist/browser/charts/core/svg-heatmap.js.map +1 -0
  38. package/dist/browser/charts/core/svg-histogram.js +73 -0
  39. package/dist/browser/charts/core/svg-histogram.js.map +1 -0
  40. package/dist/browser/charts/core/svg-renderers.js +9 -1777
  41. package/dist/browser/charts/core/svg-renderers.js.map +1 -1
  42. package/dist/browser/charts/core/svg-scatter.js +114 -0
  43. package/dist/browser/charts/core/svg-scatter.js.map +1 -0
  44. package/dist/browser/charts/core/treemap.js +138 -0
  45. package/dist/browser/charts/core/treemap.js.map +1 -0
  46. package/dist/browser/charts/description.js.map +1 -1
  47. package/dist/browser/content/ChartRoot.js +21 -7
  48. package/dist/browser/content/ChartRoot.js.map +1 -1
  49. package/dist/browser/content/ChartSnapshotView.js +4 -1
  50. package/dist/browser/content/ChartSnapshotView.js.map +1 -1
  51. package/dist/browser/content/DataTable.js +186 -193
  52. package/dist/browser/content/DataTable.js.map +1 -1
  53. package/dist/browser/content/Lightbox.js +55 -23
  54. package/dist/browser/content/Lightbox.js.map +1 -1
  55. package/dist/browser/content/ThumbnailStrip.js +174 -0
  56. package/dist/browser/content/ThumbnailStrip.js.map +1 -0
  57. package/dist/browser/content/chart-bar.js +98 -0
  58. package/dist/browser/content/chart-bar.js.map +1 -1
  59. package/dist/browser/content/chart-inspection-core.js +28 -8
  60. package/dist/browser/content/chart-inspection-core.js.map +1 -1
  61. package/dist/browser/content/chart-message-catalog.js +18 -0
  62. package/dist/browser/content/chart-message-catalog.js.map +1 -1
  63. package/dist/browser/content/index.js +1 -0
  64. package/dist/browser/content/index.js.map +1 -1
  65. package/dist/browser/content/thumbnail-strip-messages.js +24 -0
  66. package/dist/browser/content/thumbnail-strip-messages.js.map +1 -0
  67. package/dist/browser/inputs/ChoiceInputs.js +132 -101
  68. package/dist/browser/inputs/ChoiceInputs.js.map +1 -1
  69. package/dist/browser/inputs/index.js +1 -0
  70. package/dist/browser/inputs/index.js.map +1 -1
  71. package/dist/browser/inputs/markdown/MarkdownSelectionToolbar.js +330 -0
  72. package/dist/browser/inputs/markdown/MarkdownSelectionToolbar.js.map +1 -0
  73. package/dist/browser/internal/field.js +96 -77
  74. package/dist/browser/internal/field.js.map +1 -1
  75. package/dist/browser/layout/AppWorkspace.js +7 -5
  76. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  77. package/dist/browser/layout/PanelDialog.js +92 -68
  78. package/dist/browser/layout/PanelDialog.js.map +1 -1
  79. package/dist/browser/surfaces/StatCell.js +82 -70
  80. package/dist/browser/surfaces/StatCell.js.map +1 -1
  81. package/dist/browser/surfaces/stat-cell-messages.js +4 -2
  82. package/dist/browser/surfaces/stat-cell-messages.js.map +1 -1
  83. package/dist/browser/widgets/DashboardFrame.js +93 -88
  84. package/dist/browser/widgets/DashboardFrame.js.map +1 -1
  85. package/dist/ssr/actions/Toolbar.js +8 -2
  86. package/dist/ssr/actions/Toolbar.js.map +1 -1
  87. package/dist/ssr/charts/core/bar-labels.js +5 -0
  88. package/dist/ssr/charts/core/bar-labels.js.map +1 -0
  89. package/dist/ssr/charts/core/bubble.js +166 -0
  90. package/dist/ssr/charts/core/bubble.js.map +1 -0
  91. package/dist/ssr/charts/core/default-styles.js +83 -0
  92. package/dist/ssr/charts/core/default-styles.js.map +1 -0
  93. package/dist/ssr/charts/core/funnel-layout.js +79 -0
  94. package/dist/ssr/charts/core/funnel-layout.js.map +1 -0
  95. package/dist/ssr/charts/core/funnel.js +27 -0
  96. package/dist/ssr/charts/core/funnel.js.map +1 -0
  97. package/dist/ssr/charts/core/index.js +6 -1
  98. package/dist/ssr/charts/core/index.js.map +1 -1
  99. package/dist/ssr/charts/core/pareto.js +120 -0
  100. package/dist/ssr/charts/core/pareto.js.map +1 -0
  101. package/dist/ssr/charts/core/radar.js +101 -0
  102. package/dist/ssr/charts/core/radar.js.map +1 -0
  103. package/dist/ssr/charts/core/registry.js +11 -1
  104. package/dist/ssr/charts/core/registry.js.map +1 -1
  105. package/dist/ssr/charts/core/render-size.js +3 -1
  106. package/dist/ssr/charts/core/render-size.js.map +1 -1
  107. package/dist/ssr/charts/core/render.js +19 -0
  108. package/dist/ssr/charts/core/render.js.map +1 -1
  109. package/dist/ssr/charts/core/snapshot.js +1 -1
  110. package/dist/ssr/charts/core/snapshot.js.map +1 -1
  111. package/dist/ssr/charts/core/svg-barGauge.js +67 -0
  112. package/dist/ssr/charts/core/svg-barGauge.js.map +1 -0
  113. package/dist/ssr/charts/core/svg-boxplot.js +127 -0
  114. package/dist/ssr/charts/core/svg-boxplot.js.map +1 -0
  115. package/dist/ssr/charts/core/svg-common.js +1065 -0
  116. package/dist/ssr/charts/core/svg-common.js.map +1 -0
  117. package/dist/ssr/charts/core/svg-gauge.js +185 -0
  118. package/dist/ssr/charts/core/svg-gauge.js.map +1 -0
  119. package/dist/ssr/charts/core/svg-heatmap.js +80 -0
  120. package/dist/ssr/charts/core/svg-heatmap.js.map +1 -0
  121. package/dist/ssr/charts/core/svg-histogram.js +73 -0
  122. package/dist/ssr/charts/core/svg-histogram.js.map +1 -0
  123. package/dist/ssr/charts/core/svg-renderers.js +9 -1777
  124. package/dist/ssr/charts/core/svg-renderers.js.map +1 -1
  125. package/dist/ssr/charts/core/svg-scatter.js +114 -0
  126. package/dist/ssr/charts/core/svg-scatter.js.map +1 -0
  127. package/dist/ssr/charts/core/treemap.js +138 -0
  128. package/dist/ssr/charts/core/treemap.js.map +1 -0
  129. package/dist/ssr/charts/description.js.map +1 -1
  130. package/dist/ssr/content/ChartRoot.js +21 -7
  131. package/dist/ssr/content/ChartRoot.js.map +1 -1
  132. package/dist/ssr/content/ChartSnapshotView.js +1 -0
  133. package/dist/ssr/content/ChartSnapshotView.js.map +1 -1
  134. package/dist/ssr/content/DataTable.js +12 -16
  135. package/dist/ssr/content/DataTable.js.map +1 -1
  136. package/dist/ssr/content/Lightbox.js +32 -3
  137. package/dist/ssr/content/Lightbox.js.map +1 -1
  138. package/dist/ssr/content/ThumbnailStrip.js +103 -0
  139. package/dist/ssr/content/ThumbnailStrip.js.map +1 -0
  140. package/dist/ssr/content/chart-bar.js +98 -0
  141. package/dist/ssr/content/chart-bar.js.map +1 -1
  142. package/dist/ssr/content/chart-inspection-core.js +28 -8
  143. package/dist/ssr/content/chart-inspection-core.js.map +1 -1
  144. package/dist/ssr/content/chart-message-catalog.js +18 -0
  145. package/dist/ssr/content/chart-message-catalog.js.map +1 -1
  146. package/dist/ssr/content/index.js +1 -0
  147. package/dist/ssr/content/index.js.map +1 -1
  148. package/dist/ssr/content/thumbnail-strip-messages.js +24 -0
  149. package/dist/ssr/content/thumbnail-strip-messages.js.map +1 -0
  150. package/dist/ssr/inputs/ChoiceInputs.js +55 -40
  151. package/dist/ssr/inputs/ChoiceInputs.js.map +1 -1
  152. package/dist/ssr/inputs/index.js +1 -0
  153. package/dist/ssr/inputs/index.js.map +1 -1
  154. package/dist/ssr/inputs/markdown/MarkdownSelectionToolbar.js +293 -0
  155. package/dist/ssr/inputs/markdown/MarkdownSelectionToolbar.js.map +1 -0
  156. package/dist/ssr/internal/field.js +36 -24
  157. package/dist/ssr/internal/field.js.map +1 -1
  158. package/dist/ssr/layout/AppWorkspace.js +5 -1
  159. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  160. package/dist/ssr/layout/PanelDialog.js +40 -26
  161. package/dist/ssr/layout/PanelDialog.js.map +1 -1
  162. package/dist/ssr/surfaces/StatCell.js +29 -18
  163. package/dist/ssr/surfaces/StatCell.js.map +1 -1
  164. package/dist/ssr/surfaces/stat-cell-messages.js +4 -2
  165. package/dist/ssr/surfaces/stat-cell-messages.js.map +1 -1
  166. package/dist/ssr/widgets/DashboardFrame.js +6 -11
  167. package/dist/ssr/widgets/DashboardFrame.js.map +1 -1
  168. package/dist/styles.css +1 -1
  169. package/dist/types/actions/Toolbar.d.ts +2 -0
  170. package/dist/types/charts/core/bar-labels.d.ts +1 -0
  171. package/dist/types/charts/core/bubble.d.ts +66 -0
  172. package/dist/types/charts/core/default-styles.d.ts +1 -0
  173. package/dist/types/charts/core/funnel-layout.d.ts +43 -0
  174. package/dist/types/charts/core/funnel.d.ts +13 -0
  175. package/dist/types/charts/core/index.d.ts +6 -1
  176. package/dist/types/charts/core/pareto.d.ts +40 -0
  177. package/dist/types/charts/core/radar.d.ts +47 -0
  178. package/dist/types/charts/core/registry.d.ts +10 -0
  179. package/dist/types/charts/core/render-size.d.ts +1 -1
  180. package/dist/types/charts/core/svg-barGauge.d.ts +3 -0
  181. package/dist/types/charts/core/svg-boxplot.d.ts +18 -0
  182. package/dist/types/charts/core/svg-common.d.ts +612 -0
  183. package/dist/types/charts/core/svg-gauge.d.ts +6 -0
  184. package/dist/types/charts/core/svg-heatmap.d.ts +6 -0
  185. package/dist/types/charts/core/svg-histogram.d.ts +16 -0
  186. package/dist/types/charts/core/svg-renderers.d.ts +8 -612
  187. package/dist/types/charts/core/svg-scatter.d.ts +23 -0
  188. package/dist/types/charts/core/treemap.d.ts +45 -0
  189. package/dist/types/charts/description.d.ts +63 -0
  190. package/dist/types/content/ChartRoot.d.ts +1 -1
  191. package/dist/types/content/Lightbox.d.ts +2 -0
  192. package/dist/types/content/ThumbnailStrip.d.ts +29 -0
  193. package/dist/types/content/chart-bar.d.ts +38 -2
  194. package/dist/types/content/chart-inspection-core.d.ts +7 -0
  195. package/dist/types/content/chart-inspection.d.ts +1 -0
  196. package/dist/types/content/chart-message-catalog.d.ts +8 -0
  197. package/dist/types/content/index.d.ts +1 -0
  198. package/dist/types/content/thumbnail-strip-messages.d.ts +10 -0
  199. package/dist/types/inputs/ChoiceInputs.d.ts +2 -0
  200. package/dist/types/inputs/index.d.ts +2 -0
  201. package/dist/types/inputs/markdown/MarkdownSelectionToolbar.d.ts +19 -0
  202. package/dist/types/internal/field.d.ts +2 -0
  203. package/dist/types/layout/PanelDialog.d.ts +5 -0
  204. package/dist/types/surfaces/stat-cell-messages.d.ts +1 -0
  205. package/dist/types/widgets/DashboardFrame.d.ts +4 -1
  206. package/package.json +2 -2
@@ -1,30 +1,30 @@
1
1
  import { template as _$template } from "solid-js/web";
2
2
  import { delegateEvents as _$delegateEvents } from "solid-js/web";
3
- import { memo as _$memo } from "solid-js/web";
4
3
  import { use as _$use } from "solid-js/web";
5
- import { className as _$className } from "solid-js/web";
6
4
  import { setProperty as _$setProperty } from "solid-js/web";
7
- import { setAttribute as _$setAttribute } from "solid-js/web";
8
- import { effect as _$effect } from "solid-js/web";
9
5
  import { runHydrationEvents as _$runHydrationEvents } from "solid-js/web";
10
6
  import { addEventListener as _$addEventListener } from "solid-js/web";
11
7
  import { getNextMarker as _$getNextMarker } from "solid-js/web";
12
- import { getNextElement as _$getNextElement } from "solid-js/web";
13
8
  import { insert as _$insert } from "solid-js/web";
14
9
  import { createComponent as _$createComponent } from "solid-js/web";
15
- var _tmpl$ = /*#__PURE__*/_$template(`<p>`),
16
- _tmpl$2 = /*#__PURE__*/_$template(`<div class=k2b-panel-dialog__actions>`),
17
- _tmpl$3 = /*#__PURE__*/_$template(`<button type=button class=k2b-dialog__close><i class="ti ti-x"aria-hidden=true>`),
18
- _tmpl$4 = /*#__PURE__*/_$template(`<header class=k2b-panel-dialog__header><!$><!/><div class=k2b-panel-dialog__heading><!$><!/><h2></h2><!$><!/></div><!$><!/><!$><!/>`),
19
- _tmpl$5 = /*#__PURE__*/_$template(`<span class="k2b-panel-dialog__icon k2b-icon-tile"aria-hidden=true><i>`),
10
+ import { className as _$className } from "solid-js/web";
11
+ import { setAttribute as _$setAttribute } from "solid-js/web";
12
+ import { effect as _$effect } from "solid-js/web";
13
+ import { getNextElement as _$getNextElement } from "solid-js/web";
14
+ import { memo as _$memo } from "solid-js/web";
15
+ var _tmpl$ = /*#__PURE__*/_$template(`<span class="k2b-panel-dialog__icon k2b-icon-tile"aria-hidden=true><i>`),
16
+ _tmpl$2 = /*#__PURE__*/_$template(`<p>`),
17
+ _tmpl$3 = /*#__PURE__*/_$template(`<div>`),
18
+ _tmpl$4 = /*#__PURE__*/_$template(`<button type=button><i class="ti ti-x"aria-hidden=true>`),
19
+ _tmpl$5 = /*#__PURE__*/_$template(`<header class=k2b-panel-dialog__header><!$><!/><div><!$><!/><h2></h2><!$><!/></div><!$><!/><!$><!/>`),
20
20
  _tmpl$6 = /*#__PURE__*/_$template(`<span class=k2b-sr-only data-dialog-tone-label>`),
21
21
  _tmpl$7 = /*#__PURE__*/_$template(`<div class=k2b-panel-dialog__body>`),
22
22
  _tmpl$8 = /*#__PURE__*/_$template(`<footer class=k2b-panel-dialog__footer>`),
23
23
  _tmpl$9 = /*#__PURE__*/_$template(`<span class=k2b-panel-dialog__section-subtitle>`),
24
24
  _tmpl$0 = /*#__PURE__*/_$template(`<span class=k2b-panel-dialog__section-copy><span class=k2b-panel-dialog__section-title></span><!$><!/>`),
25
25
  _tmpl$1 = /*#__PURE__*/_$template(`<i class="ti ti-eye"aria-hidden=true>`),
26
- _tmpl$10 = /*#__PURE__*/_$template(`<div>`),
27
- _tmpl$11 = /*#__PURE__*/_$template(`<p class=k2b-panel-dialog__section-subtitle>`),
26
+ _tmpl$10 = /*#__PURE__*/_$template(`<p class=k2b-panel-dialog__section-subtitle>`),
27
+ _tmpl$11 = /*#__PURE__*/_$template(`<div class=k2b-panel-dialog__actions>`),
28
28
  _tmpl$12 = /*#__PURE__*/_$template(`<i class="ti ti-eye-off"aria-hidden=true>`),
29
29
  _tmpl$13 = /*#__PURE__*/_$template(`<section class=k2b-panel-dialog__section><!$><!/><header><!$><!/><div><h3></h3><!$><!/></div><!$><!/><!$><!/></header><div class=k2b-panel-dialog__section-body>`),
30
30
  _tmpl$14 = /*#__PURE__*/_$template(`<i aria-hidden=true>`),
@@ -42,6 +42,7 @@ import { createScrollFade } from "./scroll-fade";
42
42
  const PanelDialogSurfaceContext = createContext("contained");
43
43
  const usePanelDialogSurface = () => useContext(PanelDialogSurfaceContext);
44
44
  const PanelDialogToneContext = createContext(() => undefined);
45
+ const PanelDialogMediaContext = createContext(false);
45
46
  const panelDialogBasePanelClass = "k2b-dialog k2b-panel-dialog-frame";
46
47
  export const panelDialogPanelClass = `${panelDialogBasePanelClass} is-standard`;
47
48
  export const panelDialogOptions = {
@@ -79,41 +80,45 @@ const PanelDialogHeader = props => {
79
80
  const value = tone();
80
81
  return value ? dialogToneIcon(value) : props.icon;
81
82
  };
83
+ // Over a picture the header's parts are glass layers of their own; the dialog owns them, so it sets the surface.
84
+ const media = useContext(PanelDialogMediaContext);
85
+ const layer = media ? " k2b-overlay-surface" : "";
82
86
  return (() => {
83
- var _el$ = _$getNextElement(_tmpl$4),
84
- _el$1 = _el$.firstChild,
85
- [_el$10, _co$3] = _$getNextMarker(_el$1.nextSibling),
86
- _el$2 = _el$10.nextSibling,
87
- _el$5 = _el$2.firstChild,
88
- [_el$6, _co$] = _$getNextMarker(_el$5.nextSibling),
89
- _el$3 = _el$6.nextSibling,
90
- _el$7 = _el$3.nextSibling,
91
- [_el$8, _co$2] = _$getNextMarker(_el$7.nextSibling),
92
- _el$11 = _el$2.nextSibling,
93
- [_el$12, _co$4] = _$getNextMarker(_el$11.nextSibling),
94
- _el$13 = _el$12.nextSibling,
95
- [_el$14, _co$5] = _$getNextMarker(_el$13.nextSibling);
87
+ var _el$ = _$getNextElement(_tmpl$5),
88
+ _el$11 = _el$.firstChild,
89
+ [_el$12, _co$3] = _$getNextMarker(_el$11.nextSibling),
90
+ _el$4 = _el$12.nextSibling,
91
+ _el$7 = _el$4.firstChild,
92
+ [_el$8, _co$] = _$getNextMarker(_el$7.nextSibling),
93
+ _el$5 = _el$8.nextSibling,
94
+ _el$9 = _el$5.nextSibling,
95
+ [_el$0, _co$2] = _$getNextMarker(_el$9.nextSibling),
96
+ _el$13 = _el$4.nextSibling,
97
+ [_el$14, _co$4] = _$getNextMarker(_el$13.nextSibling),
98
+ _el$15 = _el$14.nextSibling,
99
+ [_el$16, _co$5] = _$getNextMarker(_el$15.nextSibling);
96
100
  _$insert(_el$, _$createComponent(Show, {
97
101
  get when() {
98
- return icon();
102
+ return icon() && !media;
99
103
  },
100
- children: icon => (() => {
101
- var _el$15 = _$getNextElement(_tmpl$5),
102
- _el$16 = _el$15.firstChild;
104
+ get children() {
105
+ var _el$2 = _$getNextElement(_tmpl$),
106
+ _el$3 = _el$2.firstChild;
103
107
  _$effect(_p$ => {
104
- var _v$5 = tone(),
105
- _v$6 = icon();
106
- _v$5 !== _p$.e && _$setAttribute(_el$15, "data-tone", _p$.e = _v$5);
107
- _v$6 !== _p$.t && _$className(_el$16, _p$.t = _v$6);
108
+ var _v$ = tone(),
109
+ _v$2 = icon();
110
+ _v$ !== _p$.e && _$setAttribute(_el$2, "data-tone", _p$.e = _v$);
111
+ _v$2 !== _p$.t && _$className(_el$3, _p$.t = _v$2);
108
112
  return _p$;
109
113
  }, {
110
114
  e: undefined,
111
115
  t: undefined
112
116
  });
113
- return _el$15;
114
- })()
115
- }), _el$10, _co$3);
116
- _$insert(_el$2, _$createComponent(Show, {
117
+ return _el$2;
118
+ }
119
+ }), _el$12, _co$3);
120
+ _$className(_el$4, `k2b-panel-dialog__heading${layer}`);
121
+ _$insert(_el$4, _$createComponent(Show, {
117
122
  get when() {
118
123
  return tone();
119
124
  },
@@ -122,54 +127,57 @@ const PanelDialogHeader = props => {
122
127
  _$insert(_el$17, () => dialogToneLabel(messages(), value()));
123
128
  return _el$17;
124
129
  })()
125
- }), _el$6, _co$);
126
- _$insert(_el$3, () => props.title);
127
- _$insert(_el$2, _$createComponent(Show, {
130
+ }), _el$8, _co$);
131
+ _$className(_el$5, media ? "k2b-truncate-fade" : undefined);
132
+ _$insert(_el$5, () => props.title);
133
+ _$insert(_el$4, _$createComponent(Show, {
128
134
  get when() {
129
135
  return props.subtitle;
130
136
  },
131
137
  get children() {
132
- var _el$4 = _$getNextElement(_tmpl$);
133
- _$insert(_el$4, () => props.subtitle);
134
- return _el$4;
138
+ var _el$6 = _$getNextElement(_tmpl$2);
139
+ _$insert(_el$6, () => props.subtitle);
140
+ return _el$6;
135
141
  }
136
- }), _el$8, _co$2);
142
+ }), _el$0, _co$2);
137
143
  _$insert(_el$, _$createComponent(Show, {
138
144
  get when() {
139
145
  return props.actions;
140
146
  },
141
147
  get children() {
142
- var _el$9 = _$getNextElement(_tmpl$2);
143
- _$insert(_el$9, () => props.actions);
144
- return _el$9;
148
+ var _el$1 = _$getNextElement(_tmpl$3);
149
+ _$className(_el$1, `k2b-panel-dialog__actions${layer}`);
150
+ _$insert(_el$1, () => props.actions);
151
+ return _el$1;
145
152
  }
146
- }), _el$12, _co$4);
153
+ }), _el$14, _co$4);
147
154
  _$insert(_el$, _$createComponent(Show, {
148
155
  get when() {
149
156
  return props.close;
150
157
  },
151
158
  get children() {
152
- var _el$0 = _$getNextElement(_tmpl$3);
153
- _$addEventListener(_el$0, "click", props.close, true);
159
+ var _el$10 = _$getNextElement(_tmpl$4);
160
+ _$addEventListener(_el$10, "click", props.close, true);
161
+ _$className(_el$10, `k2b-dialog__close${layer}`);
154
162
  _$effect(_p$ => {
155
- var _v$ = props.closeLabel ?? messages().closeDialog,
156
- _v$2 = props.closeDisabled;
157
- _v$ !== _p$.e && _$setAttribute(_el$0, "aria-label", _p$.e = _v$);
158
- _v$2 !== _p$.t && _$setProperty(_el$0, "disabled", _p$.t = _v$2);
163
+ var _v$3 = props.closeLabel ?? messages().closeDialog,
164
+ _v$4 = props.closeDisabled;
165
+ _v$3 !== _p$.e && _$setAttribute(_el$10, "aria-label", _p$.e = _v$3);
166
+ _v$4 !== _p$.t && _$setProperty(_el$10, "disabled", _p$.t = _v$4);
159
167
  return _p$;
160
168
  }, {
161
169
  e: undefined,
162
170
  t: undefined
163
171
  });
164
172
  _$runHydrationEvents();
165
- return _el$0;
173
+ return _el$10;
166
174
  }
167
- }), _el$14, _co$5);
175
+ }), _el$16, _co$5);
168
176
  _$effect(_p$ => {
169
- var _v$3 = usePanelDialogSurface(),
170
- _v$4 = Boolean(props.subtitle);
171
- _v$3 !== _p$.e && _$setAttribute(_el$, "data-surface", _p$.e = _v$3);
172
- _v$4 !== _p$.t && _$setAttribute(_el$, "data-has-subtitle", _p$.t = _v$4);
177
+ var _v$5 = usePanelDialogSurface(),
178
+ _v$6 = Boolean(props.subtitle);
179
+ _v$5 !== _p$.e && _$setAttribute(_el$, "data-surface", _p$.e = _v$5);
180
+ _v$6 !== _p$.t && _$setAttribute(_el$, "data-has-subtitle", _p$.t = _v$6);
173
181
  return _p$;
174
182
  }, {
175
183
  e: undefined,
@@ -253,7 +261,7 @@ const PanelDialogSection = props => {
253
261
  return props.hideable;
254
262
  },
255
263
  get children() {
256
- var _el$21 = _$getNextElement(_tmpl$10);
264
+ var _el$21 = _$getNextElement(_tmpl$3);
257
265
  _$insert(_el$21, _$createComponent(Button, {
258
266
  ref(r$) {
259
267
  var _ref$3 = expand;
@@ -320,7 +328,7 @@ const PanelDialogSection = props => {
320
328
  return props.subtitle;
321
329
  },
322
330
  get children() {
323
- var _el$31 = _$getNextElement(_tmpl$11);
331
+ var _el$31 = _$getNextElement(_tmpl$10);
324
332
  _$insert(_el$31, () => props.subtitle);
325
333
  return _el$31;
326
334
  }
@@ -330,7 +338,7 @@ const PanelDialogSection = props => {
330
338
  return props.actions;
331
339
  },
332
340
  get children() {
333
- var _el$34 = _$getNextElement(_tmpl$2);
341
+ var _el$34 = _$getNextElement(_tmpl$11);
334
342
  _$insert(_el$34, () => props.actions);
335
343
  return _el$34;
336
344
  }
@@ -414,11 +422,27 @@ const PanelDialog = props => {
414
422
  return _$createComponent(PanelDialogToneContext.Provider, {
415
423
  value: () => props.tone,
416
424
  get children() {
417
- var _el$48 = _$getNextElement(_tmpl$16);
418
- _$setAttribute(_el$48, "data-surface", surface);
419
- _$insert(_el$48, () => props.children);
420
- _$effect(() => _$setAttribute(_el$48, "data-tone", props.tone));
421
- return _el$48;
425
+ return _$createComponent(PanelDialogMediaContext.Provider, {
426
+ get value() {
427
+ return Boolean(props.media);
428
+ },
429
+ get children() {
430
+ var _el$48 = _$getNextElement(_tmpl$16);
431
+ _$setAttribute(_el$48, "data-surface", surface);
432
+ _$insert(_el$48, () => props.children);
433
+ _$effect(_p$ => {
434
+ var _v$14 = props.tone,
435
+ _v$15 = props.media ? "" : undefined;
436
+ _v$14 !== _p$.e && _$setAttribute(_el$48, "data-tone", _p$.e = _v$14);
437
+ _v$15 !== _p$.t && _$setAttribute(_el$48, "data-media", _p$.t = _v$15);
438
+ return _p$;
439
+ }, {
440
+ e: undefined,
441
+ t: undefined
442
+ });
443
+ return _el$48;
444
+ }
445
+ });
422
446
  }
423
447
  });
424
448
  }
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["layout/PanelDialog.tsx"],"sourcesContent":["import { createContext, createEffect, createSignal, createUniqueId, type JSX, Show, useContext } from \"solid-js\";\nimport { Button } from \"../actions/Button\";\nimport { Tabs } from \"../actions/Tabs\";\nimport type { OpenDialogOptions } from \"../feedback/dialog-core\";\nimport { type DialogTone, dialogToneIcon, dialogToneLabel } from \"../feedback/dialog-tone\";\nimport { sharedPrompts } from \"../feedback/prompt-confirm\";\nimport { resolvePromptMessages } from \"../feedback/prompt-messages\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { usePanelDialogMessages } from \"./panel-dialog-messages\";\nimport { createScrollFade } from \"./scroll-fade\";\n\nexport type PanelDialogSurface = \"contained\" | \"floating\";\n\nexport type PanelDialogProps = {\n children: JSX.Element;\n surface?: PanelDialogSurface;\n /** A 2 px edge in the tone's colour inside the dialog frame; the header shows the tone's icon instead of its own. */\n tone?: DialogTone;\n};\n\nexport type PanelDialogHeaderProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n icon?: string;\n actions?: JSX.Element;\n close?: () => void;\n closeDisabled?: boolean;\n closeLabel?: string;\n};\n\nexport type PanelDialogBodyProps = {\n children: JSX.Element;\n scrollPreserveKey?: string;\n scrollFade?: boolean;\n};\n\nexport type PanelDialogFooterProps = {\n children: JSX.Element;\n};\n\nexport type PanelDialogSectionProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n icon?: string;\n actions?: JSX.Element;\n children: JSX.Element;\n} & (\n | { hideable?: false; open?: never; defaultOpen?: never; onOpenChange?: never; disabled?: never }\n | { hideable: true; open?: boolean; defaultOpen?: boolean; onOpenChange?: (open: boolean) => void; disabled?: boolean }\n);\n\nexport type PanelDialogTabOption<T extends string = string> = {\n value: T;\n label: JSX.Element;\n icon?: string;\n disabled?: boolean;\n};\n\nexport type PanelDialogTabsProps<T extends string = string> = {\n options: readonly PanelDialogTabOption<T>[];\n value: T | (() => T);\n onValueChange: (value: T) => void;\n ariaLabel?: string;\n label?: string;\n};\n\ntype PanelDialogComponent = ((props: PanelDialogProps) => JSX.Element) & {\n Header: (props: PanelDialogHeaderProps) => JSX.Element;\n Body: (props: PanelDialogBodyProps) => JSX.Element;\n Footer: (props: PanelDialogFooterProps) => JSX.Element;\n Section: (props: PanelDialogSectionProps) => JSX.Element;\n Tabs: <T extends string>(props: PanelDialogTabsProps<T>) => JSX.Element;\n};\n\nconst PanelDialogSurfaceContext = createContext<PanelDialogSurface>(\"contained\");\nconst usePanelDialogSurface = () => useContext(PanelDialogSurfaceContext);\nconst PanelDialogToneContext = createContext<() => DialogTone | undefined>(() => undefined);\n\nconst panelDialogBasePanelClass = \"k2b-dialog k2b-panel-dialog-frame\";\n\nexport const panelDialogPanelClass = `${panelDialogBasePanelClass} is-standard`;\nexport const panelDialogOptions = {\n panelClassName: panelDialogPanelClass,\n contentClassName: \"k2b-panel-dialog-viewport\",\n} satisfies OpenDialogOptions;\n\nexport const panelDialogWidePanelClass = `${panelDialogBasePanelClass} is-wide`;\nexport const panelDialogWideOptions = {\n panelClassName: panelDialogWidePanelClass,\n contentClassName: \"k2b-panel-dialog-viewport\",\n} satisfies OpenDialogOptions;\n\nexport const panelDialogFixedPanelClass = `${panelDialogBasePanelClass} is-fixed`;\nexport const panelDialogFixedOptions = {\n panelClassName: panelDialogFixedPanelClass,\n contentClassName: \"k2b-panel-dialog-viewport is-fixed\",\n} satisfies OpenDialogOptions;\n\nexport const panelDialogWorkspacePanelClass = `${panelDialogBasePanelClass} is-workspace`;\nexport const panelDialogWorkspaceOptions = {\n panelClassName: panelDialogWorkspacePanelClass,\n contentClassName: \"k2b-panel-dialog-viewport is-workspace\",\n} satisfies OpenDialogOptions;\n\nexport const confirmDiscardIfDirty = async (dirty: boolean | (() => boolean)): Promise<boolean> => {\n const hasChanges = typeof dirty === \"function\" ? dirty() : dirty;\n if (!hasChanges) return true;\n return Boolean(\n await sharedPrompts.confirm(resolvePromptMessages().discardUnsavedChanges, {\n title: resolvePromptMessages().unsavedChangesTitle,\n variant: \"danger\",\n confirmText: resolvePromptMessages().discard,\n }),\n );\n};\n\nconst PanelDialogHeader = (props: PanelDialogHeaderProps): JSX.Element => {\n const messages = useUiMessages();\n const tone = useContext(PanelDialogToneContext);\n const icon = () => {\n const value = tone();\n return value ? dialogToneIcon(value) : props.icon;\n };\n return (\n <header class=\"k2b-panel-dialog__header\" data-surface={usePanelDialogSurface()} data-has-subtitle={Boolean(props.subtitle)}>\n <Show when={icon()}>\n {(icon) => (\n <span class=\"k2b-panel-dialog__icon k2b-icon-tile\" data-tone={tone()} aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n )}\n </Show>\n <div class=\"k2b-panel-dialog__heading\">\n <Show when={tone()}>\n {(value) => (\n <span class=\"k2b-sr-only\" data-dialog-tone-label>\n {dialogToneLabel(messages(), value())}\n </span>\n )}\n </Show>\n <h2>{props.title}</h2>\n <Show when={props.subtitle}>\n <p>{props.subtitle}</p>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-panel-dialog__actions\">{props.actions}</div>\n </Show>\n <Show when={props.close}>\n <button\n type=\"button\"\n class=\"k2b-dialog__close\"\n aria-label={props.closeLabel ?? messages().closeDialog}\n disabled={props.closeDisabled}\n onClick={props.close}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n </header>\n );\n};\n\nconst PanelDialogBody = (props: PanelDialogBodyProps): JSX.Element => {\n let body: HTMLDivElement | undefined;\n createScrollFade(\n () => body,\n () => props.scrollFade !== false,\n );\n return (\n <div\n ref={body}\n class=\"k2b-panel-dialog__body\"\n data-scroll-preserve={props.scrollPreserveKey}\n data-surface={usePanelDialogSurface()}\n data-scroll-fade-mode={props.scrollFade !== false ? \"both\" : undefined}\n >\n {props.children}\n </div>\n );\n};\n\nconst PanelDialogFooter = (props: PanelDialogFooterProps): JSX.Element => (\n <footer class=\"k2b-panel-dialog__footer\" data-surface={usePanelDialogSurface()}>\n {props.children}\n </footer>\n);\n\nconst PanelDialogSection = (props: PanelDialogSectionProps): JSX.Element => {\n const id = `k2b-panel-dialog-section-${createUniqueId()}`;\n const [internalOpen, setInternalOpen] = createSignal(props.defaultOpen ?? false);\n const open = () => !props.hideable || (props.open ?? internalOpen());\n let section: HTMLElement | undefined;\n let expand: HTMLButtonElement | undefined;\n let collapse: HTMLButtonElement | undefined;\n const toggle = (next: boolean) => {\n if (props.disabled) return;\n if (props.open === undefined) setInternalOpen(next);\n props.onOpenChange?.(next);\n };\n createEffect(() => {\n if (!props.hideable) return;\n const expanded = open();\n queueMicrotask(() => {\n if (expanded !== open()) return;\n const active = section?.ownerDocument.activeElement;\n if (expanded && active === expand) collapse?.focus();\n if (!expanded && active && active !== expand && section?.contains(active)) expand?.focus();\n });\n });\n\n return (\n <section\n ref={section}\n class=\"k2b-panel-dialog__section\"\n data-surface={usePanelDialogSurface()}\n data-hideable={props.hideable || undefined}\n data-open={props.hideable ? open() : undefined}\n aria-labelledby={open() ? id : `${id}-closed`}\n >\n <Show when={props.hideable}>\n <div hidden={open()}>\n <Button\n ref={expand}\n variant=\"ghost\"\n class=\"k2b-panel-dialog__section-summary\"\n disabled={props.disabled}\n aria-expanded={false}\n aria-controls={`${id}-body`}\n onClick={() => toggle(true)}\n >\n <Show when={props.icon}>{(icon) => <i class={icon()} aria-hidden=\"true\" />}</Show>\n <span class=\"k2b-panel-dialog__section-copy\">\n <span id={`${id}-closed`} class=\"k2b-panel-dialog__section-title\">\n {props.title}\n </span>\n <Show when={props.subtitle}>\n <span class=\"k2b-panel-dialog__section-subtitle\">{props.subtitle}</span>\n </Show>\n </span>\n <i class=\"ti ti-eye\" aria-hidden=\"true\" />\n </Button>\n </div>\n </Show>\n <header hidden={!open()}>\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-panel-dialog__section-icon\">\n <i class={icon()} aria-hidden=\"true\" />\n </span>\n )}\n </Show>\n <div>\n <h3 id={id}>{props.title}</h3>\n <Show when={props.subtitle}>\n <p class=\"k2b-panel-dialog__section-subtitle\">{props.subtitle}</p>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-panel-dialog__actions\">{props.actions}</div>\n </Show>\n <Show when={props.hideable}>\n <Button\n ref={collapse}\n variant=\"ghost\"\n size=\"sm\"\n class=\"k2b-icon-button\"\n disabled={props.disabled}\n aria-labelledby={id}\n aria-expanded={true}\n aria-controls={`${id}-body`}\n onClick={() => toggle(false)}\n >\n <i class=\"ti ti-eye-off\" aria-hidden=\"true\" />\n </Button>\n </Show>\n </header>\n <div id={`${id}-body`} class=\"k2b-panel-dialog__section-body\" hidden={!open()}>\n {props.children}\n </div>\n </section>\n );\n};\n\nconst PanelDialogTabs = <T extends string>(props: PanelDialogTabsProps<T>): JSX.Element => {\n const panelDialogMessages = usePanelDialogMessages();\n return (\n <Tabs\n class=\"k2b-panel-dialog__tabs\"\n value={props.value}\n onValueChange={props.onValueChange}\n ariaLabel={props.ariaLabel ?? props.label ?? panelDialogMessages().dialogTabs}\n options={props.options}\n />\n );\n};\n\nconst PanelDialog = ((props: PanelDialogProps): JSX.Element => {\n const surface = props.surface ?? \"contained\";\n return (\n <PanelDialogSurfaceContext.Provider value={surface}>\n <PanelDialogToneContext.Provider value={() => props.tone}>\n <div class=\"k2b-panel-dialog\" data-surface={surface} data-tone={props.tone}>\n {props.children}\n </div>\n </PanelDialogToneContext.Provider>\n </PanelDialogSurfaceContext.Provider>\n );\n}) as PanelDialogComponent;\n\nPanelDialog.Header = PanelDialogHeader;\nPanelDialog.Body = PanelDialogBody;\nPanelDialog.Footer = PanelDialogFooter;\nPanelDialog.Section = PanelDialogSection;\nPanelDialog.Tabs = PanelDialogTabs;\n\nexport default PanelDialog;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["layout/PanelDialog.tsx"],"sourcesContent":["import { createContext, createEffect, createSignal, createUniqueId, type JSX, Show, useContext } from \"solid-js\";\nimport { Button } from \"../actions/Button\";\nimport { Tabs } from \"../actions/Tabs\";\nimport type { OpenDialogOptions } from \"../feedback/dialog-core\";\nimport { type DialogTone, dialogToneIcon, dialogToneLabel } from \"../feedback/dialog-tone\";\nimport { sharedPrompts } from \"../feedback/prompt-confirm\";\nimport { resolvePromptMessages } from \"../feedback/prompt-messages\";\nimport { useUiMessages } from \"../intl/messages\";\nimport { usePanelDialogMessages } from \"./panel-dialog-messages\";\nimport { createScrollFade } from \"./scroll-fade\";\n\nexport type PanelDialogSurface = \"contained\" | \"floating\";\n\nexport type PanelDialogProps = {\n children: JSX.Element;\n surface?: PanelDialogSurface;\n /** A 2 px edge in the tone's colour inside the dialog frame; the header shows the tone's icon instead of its own. */\n tone?: DialogTone;\n /**\n * The body shows a picture or a video edge to edge, and the header floats over it as glass chips: the title and\n * subtitle in one chip, the actions in a group, and the close button. For documents, text, and tables leave it off.\n */\n media?: boolean;\n};\n\nexport type PanelDialogHeaderProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n icon?: string;\n actions?: JSX.Element;\n close?: () => void;\n closeDisabled?: boolean;\n closeLabel?: string;\n};\n\nexport type PanelDialogBodyProps = {\n children: JSX.Element;\n scrollPreserveKey?: string;\n scrollFade?: boolean;\n};\n\nexport type PanelDialogFooterProps = {\n children: JSX.Element;\n};\n\nexport type PanelDialogSectionProps = {\n title: JSX.Element;\n subtitle?: JSX.Element;\n icon?: string;\n actions?: JSX.Element;\n children: JSX.Element;\n} & (\n | { hideable?: false; open?: never; defaultOpen?: never; onOpenChange?: never; disabled?: never }\n | { hideable: true; open?: boolean; defaultOpen?: boolean; onOpenChange?: (open: boolean) => void; disabled?: boolean }\n);\n\nexport type PanelDialogTabOption<T extends string = string> = {\n value: T;\n label: JSX.Element;\n icon?: string;\n disabled?: boolean;\n};\n\nexport type PanelDialogTabsProps<T extends string = string> = {\n options: readonly PanelDialogTabOption<T>[];\n value: T | (() => T);\n onValueChange: (value: T) => void;\n ariaLabel?: string;\n label?: string;\n};\n\ntype PanelDialogComponent = ((props: PanelDialogProps) => JSX.Element) & {\n Header: (props: PanelDialogHeaderProps) => JSX.Element;\n Body: (props: PanelDialogBodyProps) => JSX.Element;\n Footer: (props: PanelDialogFooterProps) => JSX.Element;\n Section: (props: PanelDialogSectionProps) => JSX.Element;\n Tabs: <T extends string>(props: PanelDialogTabsProps<T>) => JSX.Element;\n};\n\nconst PanelDialogSurfaceContext = createContext<PanelDialogSurface>(\"contained\");\nconst usePanelDialogSurface = () => useContext(PanelDialogSurfaceContext);\nconst PanelDialogToneContext = createContext<() => DialogTone | undefined>(() => undefined);\nconst PanelDialogMediaContext = createContext(false);\n\nconst panelDialogBasePanelClass = \"k2b-dialog k2b-panel-dialog-frame\";\n\nexport const panelDialogPanelClass = `${panelDialogBasePanelClass} is-standard`;\nexport const panelDialogOptions = {\n panelClassName: panelDialogPanelClass,\n contentClassName: \"k2b-panel-dialog-viewport\",\n} satisfies OpenDialogOptions;\n\nexport const panelDialogWidePanelClass = `${panelDialogBasePanelClass} is-wide`;\nexport const panelDialogWideOptions = {\n panelClassName: panelDialogWidePanelClass,\n contentClassName: \"k2b-panel-dialog-viewport\",\n} satisfies OpenDialogOptions;\n\nexport const panelDialogFixedPanelClass = `${panelDialogBasePanelClass} is-fixed`;\nexport const panelDialogFixedOptions = {\n panelClassName: panelDialogFixedPanelClass,\n contentClassName: \"k2b-panel-dialog-viewport is-fixed\",\n} satisfies OpenDialogOptions;\n\nexport const panelDialogWorkspacePanelClass = `${panelDialogBasePanelClass} is-workspace`;\nexport const panelDialogWorkspaceOptions = {\n panelClassName: panelDialogWorkspacePanelClass,\n contentClassName: \"k2b-panel-dialog-viewport is-workspace\",\n} satisfies OpenDialogOptions;\n\nexport const confirmDiscardIfDirty = async (dirty: boolean | (() => boolean)): Promise<boolean> => {\n const hasChanges = typeof dirty === \"function\" ? dirty() : dirty;\n if (!hasChanges) return true;\n return Boolean(\n await sharedPrompts.confirm(resolvePromptMessages().discardUnsavedChanges, {\n title: resolvePromptMessages().unsavedChangesTitle,\n variant: \"danger\",\n confirmText: resolvePromptMessages().discard,\n }),\n );\n};\n\nconst PanelDialogHeader = (props: PanelDialogHeaderProps): JSX.Element => {\n const messages = useUiMessages();\n const tone = useContext(PanelDialogToneContext);\n const icon = () => {\n const value = tone();\n return value ? dialogToneIcon(value) : props.icon;\n };\n // Over a picture the header's parts are glass layers of their own; the dialog owns them, so it sets the surface.\n const media = useContext(PanelDialogMediaContext);\n const layer = media ? \" k2b-overlay-surface\" : \"\";\n return (\n <header class=\"k2b-panel-dialog__header\" data-surface={usePanelDialogSurface()} data-has-subtitle={Boolean(props.subtitle)}>\n <Show when={icon() && !media}>\n <span class=\"k2b-panel-dialog__icon k2b-icon-tile\" data-tone={tone()} aria-hidden=\"true\">\n <i class={icon()} />\n </span>\n </Show>\n <div class={`k2b-panel-dialog__heading${layer}`}>\n <Show when={tone()}>\n {(value) => (\n <span class=\"k2b-sr-only\" data-dialog-tone-label>\n {dialogToneLabel(messages(), value())}\n </span>\n )}\n </Show>\n <h2 class={media ? \"k2b-truncate-fade\" : undefined}>{props.title}</h2>\n <Show when={props.subtitle}>\n <p>{props.subtitle}</p>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class={`k2b-panel-dialog__actions${layer}`}>{props.actions}</div>\n </Show>\n <Show when={props.close}>\n <button\n type=\"button\"\n class={`k2b-dialog__close${layer}`}\n aria-label={props.closeLabel ?? messages().closeDialog}\n disabled={props.closeDisabled}\n onClick={props.close}\n >\n <i class=\"ti ti-x\" aria-hidden=\"true\" />\n </button>\n </Show>\n </header>\n );\n};\n\nconst PanelDialogBody = (props: PanelDialogBodyProps): JSX.Element => {\n let body: HTMLDivElement | undefined;\n createScrollFade(\n () => body,\n () => props.scrollFade !== false,\n );\n return (\n <div\n ref={body}\n class=\"k2b-panel-dialog__body\"\n data-scroll-preserve={props.scrollPreserveKey}\n data-surface={usePanelDialogSurface()}\n data-scroll-fade-mode={props.scrollFade !== false ? \"both\" : undefined}\n >\n {props.children}\n </div>\n );\n};\n\nconst PanelDialogFooter = (props: PanelDialogFooterProps): JSX.Element => (\n <footer class=\"k2b-panel-dialog__footer\" data-surface={usePanelDialogSurface()}>\n {props.children}\n </footer>\n);\n\nconst PanelDialogSection = (props: PanelDialogSectionProps): JSX.Element => {\n const id = `k2b-panel-dialog-section-${createUniqueId()}`;\n const [internalOpen, setInternalOpen] = createSignal(props.defaultOpen ?? false);\n const open = () => !props.hideable || (props.open ?? internalOpen());\n let section: HTMLElement | undefined;\n let expand: HTMLButtonElement | undefined;\n let collapse: HTMLButtonElement | undefined;\n const toggle = (next: boolean) => {\n if (props.disabled) return;\n if (props.open === undefined) setInternalOpen(next);\n props.onOpenChange?.(next);\n };\n createEffect(() => {\n if (!props.hideable) return;\n const expanded = open();\n queueMicrotask(() => {\n if (expanded !== open()) return;\n const active = section?.ownerDocument.activeElement;\n if (expanded && active === expand) collapse?.focus();\n if (!expanded && active && active !== expand && section?.contains(active)) expand?.focus();\n });\n });\n\n return (\n <section\n ref={section}\n class=\"k2b-panel-dialog__section\"\n data-surface={usePanelDialogSurface()}\n data-hideable={props.hideable || undefined}\n data-open={props.hideable ? open() : undefined}\n aria-labelledby={open() ? id : `${id}-closed`}\n >\n <Show when={props.hideable}>\n <div hidden={open()}>\n <Button\n ref={expand}\n variant=\"ghost\"\n class=\"k2b-panel-dialog__section-summary\"\n disabled={props.disabled}\n aria-expanded={false}\n aria-controls={`${id}-body`}\n onClick={() => toggle(true)}\n >\n <Show when={props.icon}>{(icon) => <i class={icon()} aria-hidden=\"true\" />}</Show>\n <span class=\"k2b-panel-dialog__section-copy\">\n <span id={`${id}-closed`} class=\"k2b-panel-dialog__section-title\">\n {props.title}\n </span>\n <Show when={props.subtitle}>\n <span class=\"k2b-panel-dialog__section-subtitle\">{props.subtitle}</span>\n </Show>\n </span>\n <i class=\"ti ti-eye\" aria-hidden=\"true\" />\n </Button>\n </div>\n </Show>\n <header hidden={!open()}>\n <Show when={props.icon}>\n {(icon) => (\n <span class=\"k2b-panel-dialog__section-icon\">\n <i class={icon()} aria-hidden=\"true\" />\n </span>\n )}\n </Show>\n <div>\n <h3 id={id}>{props.title}</h3>\n <Show when={props.subtitle}>\n <p class=\"k2b-panel-dialog__section-subtitle\">{props.subtitle}</p>\n </Show>\n </div>\n <Show when={props.actions}>\n <div class=\"k2b-panel-dialog__actions\">{props.actions}</div>\n </Show>\n <Show when={props.hideable}>\n <Button\n ref={collapse}\n variant=\"ghost\"\n size=\"sm\"\n class=\"k2b-icon-button\"\n disabled={props.disabled}\n aria-labelledby={id}\n aria-expanded={true}\n aria-controls={`${id}-body`}\n onClick={() => toggle(false)}\n >\n <i class=\"ti ti-eye-off\" aria-hidden=\"true\" />\n </Button>\n </Show>\n </header>\n <div id={`${id}-body`} class=\"k2b-panel-dialog__section-body\" hidden={!open()}>\n {props.children}\n </div>\n </section>\n );\n};\n\nconst PanelDialogTabs = <T extends string>(props: PanelDialogTabsProps<T>): JSX.Element => {\n const panelDialogMessages = usePanelDialogMessages();\n return (\n <Tabs\n class=\"k2b-panel-dialog__tabs\"\n value={props.value}\n onValueChange={props.onValueChange}\n ariaLabel={props.ariaLabel ?? props.label ?? panelDialogMessages().dialogTabs}\n options={props.options}\n />\n );\n};\n\nconst PanelDialog = ((props: PanelDialogProps): JSX.Element => {\n const surface = props.surface ?? \"contained\";\n return (\n <PanelDialogSurfaceContext.Provider value={surface}>\n <PanelDialogToneContext.Provider value={() => props.tone}>\n <PanelDialogMediaContext.Provider value={Boolean(props.media)}>\n <div class=\"k2b-panel-dialog\" data-surface={surface} data-tone={props.tone} data-media={props.media ? \"\" : undefined}>\n {props.children}\n </div>\n </PanelDialogMediaContext.Provider>\n </PanelDialogToneContext.Provider>\n </PanelDialogSurfaceContext.Provider>\n );\n}) as PanelDialogComponent;\n\nPanelDialog.Header = PanelDialogHeader;\nPanelDialog.Body = PanelDialogBody;\nPanelDialog.Footer = PanelDialogFooter;\nPanelDialog.Section = PanelDialogSection;\nPanelDialog.Tabs = PanelDialogTabs;\n\nexport default PanelDialog;\n"],"mappings":"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","ignoreList":[]}
@@ -18,14 +18,15 @@ var _tmpl$ = /*#__PURE__*/_$template(`<div class=k2b-stat-cell__head><!$><!/><sp
18
18
  _tmpl$7 = /*#__PURE__*/_$template(`<div class=k2b-stat-cell__support>`),
19
19
  _tmpl$8 = /*#__PURE__*/_$template(`<span class="k2b-stat-cell__icon k2b-icon-tile"aria-hidden=true><i>`),
20
20
  _tmpl$9 = /*#__PURE__*/_$template(`<span>`),
21
- _tmpl$0 = /*#__PURE__*/_$template(`<span class=k2b-stat-cell__sub><!$><!/> <!$><!/>`),
22
- _tmpl$1 = /*#__PURE__*/_$template(`<span class=k2b-stat-cell__sub>`),
23
- _tmpl$10 = /*#__PURE__*/_$template(`<i aria-hidden=true>`),
24
- _tmpl$11 = /*#__PURE__*/_$template(`<span class=k2b-stat-cell__accent><i aria-hidden=true></i><!$><!/>`),
25
- _tmpl$12 = /*#__PURE__*/_$template(`<span class=k2b-stat-cell__stale><i class="ti ti-clock-exclamation"aria-hidden=true></i><!$><!/>`),
26
- _tmpl$13 = /*#__PURE__*/_$template(`<button type=button class=k2b-stat-cell__retry>`),
27
- _tmpl$14 = /*#__PURE__*/_$template(`<a class="k2b-stat-cell k2b-stat-cell--link"><i class="ti ti-external-link k2b-stat-cell__link-icon"aria-hidden=true></i><!$><!/>`),
28
- _tmpl$15 = /*#__PURE__*/_$template(`<div class=k2b-stat-cell>`);
21
+ _tmpl$0 = /*#__PURE__*/_$template(`<span role=img>—`),
22
+ _tmpl$1 = /*#__PURE__*/_$template(`<span class=k2b-stat-cell__sub><!$><!/> <!$><!/>`),
23
+ _tmpl$10 = /*#__PURE__*/_$template(`<span class=k2b-stat-cell__sub>`),
24
+ _tmpl$11 = /*#__PURE__*/_$template(`<i aria-hidden=true>`),
25
+ _tmpl$12 = /*#__PURE__*/_$template(`<span class=k2b-stat-cell__accent><i aria-hidden=true></i><!$><!/>`),
26
+ _tmpl$13 = /*#__PURE__*/_$template(`<span class=k2b-stat-cell__stale><i class="ti ti-clock-exclamation"aria-hidden=true></i><!$><!/>`),
27
+ _tmpl$14 = /*#__PURE__*/_$template(`<button type=button class=k2b-stat-cell__retry>`),
28
+ _tmpl$15 = /*#__PURE__*/_$template(`<a class="k2b-stat-cell k2b-stat-cell--link"><i class="ti ti-external-link k2b-stat-cell__link-icon"aria-hidden=true></i><!$><!/>`),
29
+ _tmpl$16 = /*#__PURE__*/_$template(`<div class=k2b-stat-cell>`);
29
30
  import { Match, Show, Switch } from "solid-js";
30
31
  import { ChartSparkline } from "../content/ChartSparkline";
31
32
  import { useLocale } from "../intl/locale";
@@ -99,10 +100,21 @@ function Body(props) {
99
100
  get fallback() {
100
101
  return [(() => {
101
102
  var _el$14 = _$getNextElement(_tmpl$9);
102
- _$insert(_el$14, (() => {
103
- var _c$ = _$memo(() => !!empty());
104
- return () => _c$() ? "–" : props.value;
105
- })());
103
+ _$insert(_el$14, _$createComponent(Show, {
104
+ get when() {
105
+ return !empty();
106
+ },
107
+ get fallback() {
108
+ return (() => {
109
+ var _el$15 = _$getNextElement(_tmpl$0);
110
+ _$effect(() => _$setAttribute(_el$15, "aria-label", t().noValue));
111
+ return _el$15;
112
+ })();
113
+ },
114
+ get children() {
115
+ return props.value;
116
+ }
117
+ }));
106
118
  _$effect(_p$ => {
107
119
  var _v$3 = `k2b-stat-cell__value ${props.valueClass ?? ""}`,
108
120
  _v$4 = size(),
@@ -176,24 +188,24 @@ function Body(props) {
176
188
  return props.compare;
177
189
  },
178
190
  children: compare => (() => {
179
- var _el$15 = _$getNextElement(_tmpl$0),
180
- _el$17 = _el$15.firstChild,
181
- [_el$18, _co$3] = _$getNextMarker(_el$17.nextSibling),
182
- _el$16 = _el$18.nextSibling,
183
- _el$19 = _el$16.nextSibling,
184
- [_el$20, _co$4] = _$getNextMarker(_el$19.nextSibling);
185
- _$insert(_el$15, () => compare().label, _el$18, _co$3);
186
- _$insert(_el$15, compareValue, _el$20, _co$4);
187
- return _el$15;
191
+ var _el$16 = _$getNextElement(_tmpl$1),
192
+ _el$18 = _el$16.firstChild,
193
+ [_el$19, _co$3] = _$getNextMarker(_el$18.nextSibling),
194
+ _el$17 = _el$19.nextSibling,
195
+ _el$20 = _el$17.nextSibling,
196
+ [_el$21, _co$4] = _$getNextMarker(_el$20.nextSibling);
197
+ _$insert(_el$16, () => compare().label, _el$19, _co$3);
198
+ _$insert(_el$16, compareValue, _el$21, _co$4);
199
+ return _el$16;
188
200
  })()
189
201
  }), _$createComponent(Show, {
190
202
  get when() {
191
203
  return props.sub;
192
204
  },
193
205
  children: sub => (() => {
194
- var _el$21 = _$getNextElement(_tmpl$1);
195
- _$insert(_el$21, sub);
196
- return _el$21;
206
+ var _el$22 = _$getNextElement(_tmpl$10);
207
+ _$insert(_el$22, sub);
208
+ return _el$22;
197
209
  })()
198
210
  }), _$createComponent(Show, {
199
211
  get when() {
@@ -205,37 +217,37 @@ function Body(props) {
205
217
  },
206
218
  get fallback() {
207
219
  return (() => {
208
- var _el$22 = _$getNextElement(_tmpl$10);
220
+ var _el$23 = _$getNextElement(_tmpl$11);
209
221
  _$effect(_p$ => {
210
222
  var _v$7 = `${value().icon} k2b-stat-cell__accent-icon`,
211
223
  _v$8 = value().tone;
212
- _v$7 !== _p$.e && _$className(_el$22, _p$.e = _v$7);
213
- _v$8 !== _p$.t && _$setAttribute(_el$22, "data-tone", _p$.t = _v$8);
224
+ _v$7 !== _p$.e && _$className(_el$23, _p$.e = _v$7);
225
+ _v$8 !== _p$.t && _$setAttribute(_el$23, "data-tone", _p$.t = _v$8);
214
226
  return _p$;
215
227
  }, {
216
228
  e: undefined,
217
229
  t: undefined
218
230
  });
219
- return _el$22;
231
+ return _el$23;
220
232
  })();
221
233
  },
222
234
  children: text => (() => {
223
- var _el$23 = _$getNextElement(_tmpl$11),
224
- _el$24 = _el$23.firstChild,
225
- _el$25 = _el$24.nextSibling,
226
- [_el$26, _co$5] = _$getNextMarker(_el$25.nextSibling);
227
- _$insert(_el$23, text, _el$26, _co$5);
235
+ var _el$24 = _$getNextElement(_tmpl$12),
236
+ _el$25 = _el$24.firstChild,
237
+ _el$26 = _el$25.nextSibling,
238
+ [_el$27, _co$5] = _$getNextMarker(_el$26.nextSibling);
239
+ _$insert(_el$24, text, _el$27, _co$5);
228
240
  _$effect(_p$ => {
229
241
  var _v$9 = value().tone,
230
242
  _v$0 = value().icon;
231
- _v$9 !== _p$.e && _$setAttribute(_el$23, "data-tone", _p$.e = _v$9);
232
- _v$0 !== _p$.t && _$className(_el$24, _p$.t = _v$0);
243
+ _v$9 !== _p$.e && _$setAttribute(_el$24, "data-tone", _p$.e = _v$9);
244
+ _v$0 !== _p$.t && _$className(_el$25, _p$.t = _v$0);
233
245
  return _p$;
234
246
  }, {
235
247
  e: undefined,
236
248
  t: undefined
237
249
  });
238
- return _el$23;
250
+ return _el$24;
239
251
  })()
240
252
  })
241
253
  }), _$createComponent(Show, {
@@ -262,22 +274,22 @@ function Body(props) {
262
274
  })];
263
275
  },
264
276
  children: stale => [(() => {
265
- var _el$27 = _$getNextElement(_tmpl$12),
266
- _el$28 = _el$27.firstChild,
267
- _el$29 = _el$28.nextSibling,
268
- [_el$30, _co$6] = _$getNextMarker(_el$29.nextSibling);
269
- _$insert(_el$27, stale, _el$30, _co$6);
270
- return _el$27;
277
+ var _el$28 = _$getNextElement(_tmpl$13),
278
+ _el$29 = _el$28.firstChild,
279
+ _el$30 = _el$29.nextSibling,
280
+ [_el$31, _co$6] = _$getNextMarker(_el$30.nextSibling);
281
+ _$insert(_el$28, stale, _el$31, _co$6);
282
+ return _el$28;
271
283
  })(), _$createComponent(Show, {
272
284
  get when() {
273
285
  return props.onRetry;
274
286
  },
275
287
  children: retry => (() => {
276
- var _el$31 = _$getNextElement(_tmpl$13);
277
- _el$31.$$click = () => retry()();
278
- _$insert(_el$31, () => t().reload);
288
+ var _el$32 = _$getNextElement(_tmpl$14);
289
+ _el$32.$$click = () => retry()();
290
+ _$insert(_el$32, () => t().reload);
279
291
  _$runHydrationEvents();
280
- return _el$31;
292
+ return _el$32;
281
293
  })()
282
294
  })]
283
295
  });
@@ -300,11 +312,11 @@ function Body(props) {
300
312
  return props.onRetry;
301
313
  },
302
314
  children: retry => (() => {
303
- var _el$32 = _$getNextElement(_tmpl$13);
304
- _el$32.$$click = () => retry()();
305
- _$insert(_el$32, () => t().retry);
315
+ var _el$33 = _$getNextElement(_tmpl$14);
316
+ _el$33.$$click = () => retry()();
317
+ _$insert(_el$33, () => t().retry);
306
318
  _$runHydrationEvents();
307
- return _el$32;
319
+ return _el$33;
308
320
  })()
309
321
  });
310
322
  }
@@ -331,20 +343,20 @@ export function StatCell(props) {
331
343
  },
332
344
  get fallback() {
333
345
  return (() => {
334
- var _el$37 = _$getNextElement(_tmpl$15);
335
- _$setAttribute(_el$37, "data-surface", surface);
336
- _$insert(_el$37, _$createComponent(Body, props));
346
+ var _el$38 = _$getNextElement(_tmpl$16);
347
+ _$setAttribute(_el$38, "data-surface", surface);
348
+ _$insert(_el$38, _$createComponent(Body, props));
337
349
  _$effect(_p$ => {
338
350
  var _v$13 = size(),
339
351
  _v$14 = props.wrap || undefined,
340
352
  _v$15 = props.deltaPlacement,
341
353
  _v$16 = props.status,
342
354
  _v$17 = props.status === "loading" || undefined;
343
- _v$13 !== _p$.e && _$setAttribute(_el$37, "data-size", _p$.e = _v$13);
344
- _v$14 !== _p$.t && _$setAttribute(_el$37, "data-wrap", _p$.t = _v$14);
345
- _v$15 !== _p$.a && _$setAttribute(_el$37, "data-delta-placement", _p$.a = _v$15);
346
- _v$16 !== _p$.o && _$setAttribute(_el$37, "data-status", _p$.o = _v$16);
347
- _v$17 !== _p$.i && _$setAttribute(_el$37, "aria-busy", _p$.i = _v$17);
355
+ _v$13 !== _p$.e && _$setAttribute(_el$38, "data-size", _p$.e = _v$13);
356
+ _v$14 !== _p$.t && _$setAttribute(_el$38, "data-wrap", _p$.t = _v$14);
357
+ _v$15 !== _p$.a && _$setAttribute(_el$38, "data-delta-placement", _p$.a = _v$15);
358
+ _v$16 !== _p$.o && _$setAttribute(_el$38, "data-status", _p$.o = _v$16);
359
+ _v$17 !== _p$.i && _$setAttribute(_el$38, "aria-busy", _p$.i = _v$17);
348
360
  return _p$;
349
361
  }, {
350
362
  e: undefined,
@@ -353,25 +365,25 @@ export function StatCell(props) {
353
365
  o: undefined,
354
366
  i: undefined
355
367
  });
356
- return _el$37;
368
+ return _el$38;
357
369
  })();
358
370
  },
359
371
  get children() {
360
- var _el$33 = _$getNextElement(_tmpl$14),
361
- _el$34 = _el$33.firstChild,
362
- _el$35 = _el$34.nextSibling,
363
- [_el$36, _co$7] = _$getNextMarker(_el$35.nextSibling);
364
- _$setAttribute(_el$33, "data-surface", surface);
365
- _$insert(_el$33, _$createComponent(Body, props), _el$36, _co$7);
372
+ var _el$34 = _$getNextElement(_tmpl$15),
373
+ _el$35 = _el$34.firstChild,
374
+ _el$36 = _el$35.nextSibling,
375
+ [_el$37, _co$7] = _$getNextMarker(_el$36.nextSibling);
376
+ _$setAttribute(_el$34, "data-surface", surface);
377
+ _$insert(_el$34, _$createComponent(Body, props), _el$37, _co$7);
366
378
  _$effect(_p$ => {
367
379
  var _v$1 = props.href,
368
380
  _v$10 = size(),
369
381
  _v$11 = props.wrap || undefined,
370
382
  _v$12 = props.deltaPlacement;
371
- _v$1 !== _p$.e && _$setAttribute(_el$33, "href", _p$.e = _v$1);
372
- _v$10 !== _p$.t && _$setAttribute(_el$33, "data-size", _p$.t = _v$10);
373
- _v$11 !== _p$.a && _$setAttribute(_el$33, "data-wrap", _p$.a = _v$11);
374
- _v$12 !== _p$.o && _$setAttribute(_el$33, "data-delta-placement", _p$.o = _v$12);
383
+ _v$1 !== _p$.e && _$setAttribute(_el$34, "href", _p$.e = _v$1);
384
+ _v$10 !== _p$.t && _$setAttribute(_el$34, "data-size", _p$.t = _v$10);
385
+ _v$11 !== _p$.a && _$setAttribute(_el$34, "data-wrap", _p$.a = _v$11);
386
+ _v$12 !== _p$.o && _$setAttribute(_el$34, "data-delta-placement", _p$.o = _v$12);
375
387
  return _p$;
376
388
  }, {
377
389
  e: undefined,
@@ -379,7 +391,7 @@ export function StatCell(props) {
379
391
  a: undefined,
380
392
  o: undefined
381
393
  });
382
- return _el$33;
394
+ return _el$34;
383
395
  }
384
396
  });
385
397
  }