@sentropic/design-system-svelte 0.34.49 → 0.34.51

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 (97) hide show
  1. package/README.md +62 -0
  2. package/dist/AnomalySwimLaneChart.svelte +10 -1
  3. package/dist/AnomalySwimLaneChart.svelte.d.ts +2 -0
  4. package/dist/AnomalySwimLaneChart.svelte.d.ts.map +1 -1
  5. package/dist/AppShell.svelte +284 -28
  6. package/dist/AppShell.svelte.d.ts +23 -3
  7. package/dist/AppShell.svelte.d.ts.map +1 -1
  8. package/dist/CalendarHeatmapChart.svelte +11 -1
  9. package/dist/CalendarHeatmapChart.svelte.d.ts +2 -0
  10. package/dist/CalendarHeatmapChart.svelte.d.ts.map +1 -1
  11. package/dist/Combobox.svelte +5 -1
  12. package/dist/Combobox.svelte.d.ts.map +1 -1
  13. package/dist/ContextPanel.svelte +86 -0
  14. package/dist/ContextPanel.svelte.d.ts +14 -0
  15. package/dist/ContextPanel.svelte.d.ts.map +1 -0
  16. package/dist/ContourChart.svelte +76 -13
  17. package/dist/ContourChart.svelte.d.ts +3 -1
  18. package/dist/ContourChart.svelte.d.ts.map +1 -1
  19. package/dist/Dashboard.svelte +155 -0
  20. package/dist/Dashboard.svelte.d.ts +21 -0
  21. package/dist/Dashboard.svelte.d.ts.map +1 -0
  22. package/dist/DashboardGrid.svelte +237 -0
  23. package/dist/DashboardGrid.svelte.d.ts +24 -0
  24. package/dist/DashboardGrid.svelte.d.ts.map +1 -0
  25. package/dist/DataTable.svelte +3 -1
  26. package/dist/DataTable.svelte.d.ts +1 -0
  27. package/dist/DataTable.svelte.d.ts.map +1 -1
  28. package/dist/DatePicker.svelte +33 -28
  29. package/dist/DatePicker.svelte.d.ts.map +1 -1
  30. package/dist/Density2DChart.svelte +10 -1
  31. package/dist/Density2DChart.svelte.d.ts +2 -0
  32. package/dist/Density2DChart.svelte.d.ts.map +1 -1
  33. package/dist/Dropdown.svelte +33 -9
  34. package/dist/Dropdown.svelte.d.ts.map +1 -1
  35. package/dist/EventFeedPanel.svelte +3 -3
  36. package/dist/EventFeedPanel.svelte.d.ts +1 -1
  37. package/dist/EventFeedPanel.svelte.d.ts.map +1 -1
  38. package/dist/FileUploader.svelte +7 -3
  39. package/dist/Footer.svelte +75 -11
  40. package/dist/Footer.svelte.d.ts +16 -6
  41. package/dist/Footer.svelte.d.ts.map +1 -1
  42. package/dist/ForceGraph.svelte +9 -3
  43. package/dist/ForceGraph.svelte.d.ts +4 -0
  44. package/dist/ForceGraph.svelte.d.ts.map +1 -1
  45. package/dist/HeatmapChart.svelte +39 -3
  46. package/dist/HeatmapChart.svelte.d.ts +4 -1
  47. package/dist/HeatmapChart.svelte.d.ts.map +1 -1
  48. package/dist/KanbanBoard.svelte +144 -0
  49. package/dist/KanbanBoard.svelte.d.ts +23 -0
  50. package/dist/KanbanBoard.svelte.d.ts.map +1 -0
  51. package/dist/ListReportPage.svelte +184 -0
  52. package/dist/ListReportPage.svelte.d.ts +46 -0
  53. package/dist/ListReportPage.svelte.d.ts.map +1 -0
  54. package/dist/MasterDetail.svelte +267 -0
  55. package/dist/MasterDetail.svelte.d.ts +35 -0
  56. package/dist/MasterDetail.svelte.d.ts.map +1 -0
  57. package/dist/NavDrawer.svelte +46 -0
  58. package/dist/NavDrawer.svelte.d.ts +17 -0
  59. package/dist/NavDrawer.svelte.d.ts.map +1 -0
  60. package/dist/NavItem.svelte +3 -5
  61. package/dist/NavItem.svelte.d.ts.map +1 -1
  62. package/dist/NavRail.svelte +147 -0
  63. package/dist/NavRail.svelte.d.ts +23 -0
  64. package/dist/NavRail.svelte.d.ts.map +1 -0
  65. package/dist/NavShell.svelte +218 -0
  66. package/dist/NavShell.svelte.d.ts +38 -0
  67. package/dist/NavShell.svelte.d.ts.map +1 -0
  68. package/dist/ObjectPage.svelte +222 -0
  69. package/dist/ObjectPage.svelte.d.ts +46 -0
  70. package/dist/ObjectPage.svelte.d.ts.map +1 -0
  71. package/dist/OrderedList.svelte +7 -12
  72. package/dist/OrderedList.svelte.d.ts.map +1 -1
  73. package/dist/PointAndFigureChart.svelte +18 -11
  74. package/dist/PointAndFigureChart.svelte.d.ts +1 -1
  75. package/dist/PointAndFigureChart.svelte.d.ts.map +1 -1
  76. package/dist/RenkoChart.svelte +40 -13
  77. package/dist/RenkoChart.svelte.d.ts +1 -1
  78. package/dist/RenkoChart.svelte.d.ts.map +1 -1
  79. package/dist/SelectableRow.svelte +16 -5
  80. package/dist/SelectableRow.svelte.d.ts +2 -0
  81. package/dist/SelectableRow.svelte.d.ts.map +1 -1
  82. package/dist/UtilityPanel.svelte +89 -0
  83. package/dist/UtilityPanel.svelte.d.ts +18 -0
  84. package/dist/UtilityPanel.svelte.d.ts.map +1 -0
  85. package/dist/VectorFieldChart.svelte +5 -5
  86. package/dist/VectorFieldChart.svelte.d.ts +1 -1
  87. package/dist/VectorFieldChart.svelte.d.ts.map +1 -1
  88. package/dist/WindBarbChart.svelte +5 -5
  89. package/dist/WindBarbChart.svelte.d.ts +1 -1
  90. package/dist/WindBarbChart.svelte.d.ts.map +1 -1
  91. package/dist/Wizard.svelte +125 -0
  92. package/dist/Wizard.svelte.d.ts +25 -0
  93. package/dist/Wizard.svelte.d.ts.map +1 -0
  94. package/dist/index.d.ts +35 -10
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +12 -0
  97. package/package.json +5 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjectPage.svelte.d.ts","sourceRoot":"","sources":["../src/lib/ObjectPage.svelte.ts"],"names":[],"mappings":"AAGE,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;KAAE,CAAC;IAC7F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACpC,WAAW,CAAC,EAAE,aAAa,EAAE,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;CAChC,CAAC;AAgGJ,QAAA,MAAM,UAAU,qDAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
@@ -41,8 +41,8 @@
41
41
  }
42
42
  </script>
43
43
 
44
- <ol {...rest} class={classes()}>
45
- {#each items as raw, index (index)}
44
+ {#snippet renderItems(list: OrderedListInput[])}
45
+ {#each list as raw, index (index)}
46
46
  {@const item = normalize(raw)}
47
47
  <li class="st-orderedList__item">
48
48
  {#if isSnippet(item.content)}
@@ -52,20 +52,15 @@
52
52
  {/if}
53
53
  {#if item.children && item.children.length > 0}
54
54
  <ol class="st-orderedList st-orderedList--nested">
55
- {#each item.children as childRaw, childIndex (childIndex)}
56
- {@const child = normalize(childRaw)}
57
- <li class="st-orderedList__item">
58
- {#if isSnippet(child.content)}
59
- {@render child.content()}
60
- {:else}
61
- {child.content}
62
- {/if}
63
- </li>
64
- {/each}
55
+ {@render renderItems(item.children)}
65
56
  </ol>
66
57
  {/if}
67
58
  </li>
68
59
  {/each}
60
+ {/snippet}
61
+
62
+ <ol {...rest} class={classes()}>
63
+ {@render renderItems(items)}
69
64
  </ol>
70
65
 
71
66
  <style>
@@ -1 +1 @@
1
- {"version":3,"file":"OrderedList.svelte.d.ts","sourceRoot":"","sources":["../src/lib/OrderedList.svelte.ts"],"names":[],"mappings":"AAGE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,eAAe,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGpD,KAAK,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC,GAAG;IACxE,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA4DJ,QAAA,MAAM,WAAW,sDAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"OrderedList.svelte.d.ts","sourceRoot":"","sources":["../src/lib/OrderedList.svelte.ts"],"names":[],"mappings":"AAGE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,eAAe,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGpD,KAAK,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC,GAAG;IACxE,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAuDJ,QAAA,MAAM,WAAW,sDAAwC,CAAC;AAC1D,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAClD,eAAe,WAAW,CAAC"}
@@ -30,12 +30,8 @@
30
30
  /** Prix de clôture : pilote la formation des colonnes. */
31
31
  close: number;
32
32
  };
33
- </script>
34
-
35
- <script lang="ts">
36
- import ChartDataList from "./ChartDataList.svelte";
37
33
 
38
- type PointAndFigureChartProps = {
34
+ export type PointAndFigureChartProps = {
39
35
  data: PointAndFigureChartDatum[];
40
36
  boxSize?: number;
41
37
  reversal?: number;
@@ -45,6 +41,10 @@
45
41
  size?: number;
46
42
  class?: string;
47
43
  };
44
+ </script>
45
+
46
+ <script lang="ts">
47
+ import ChartDataList from "./ChartDataList.svelte";
48
48
 
49
49
  let {
50
50
  data = [],
@@ -126,16 +126,23 @@
126
126
  // Indice de case (entier) d'un prix : quantifié sur la grille de `box`.
127
127
  const boxIndex = (price: number) => Math.floor((price - baseMin) / box + 1e-9);
128
128
 
129
+ const firstBoxIndex = boxIndex(closes[0]);
129
130
  let mark: PointAndFigureChartMark | null = null;
130
- let low = 0;
131
- let high = 0;
131
+ let low = firstBoxIndex;
132
+ let high = firstBoxIndex;
132
133
 
133
- for (let i = 0; i < closes.length; i++) {
134
+ for (let i = 1; i < closes.length; i++) {
134
135
  const idx = boxIndex(closes[i]);
135
136
  if (mark === null) {
136
- mark = "x";
137
- low = idx;
138
- high = idx;
137
+ if (idx >= firstBoxIndex + 1) {
138
+ mark = "x";
139
+ low = firstBoxIndex;
140
+ high = idx;
141
+ } else if (idx <= firstBoxIndex - 1) {
142
+ mark = "o";
143
+ low = idx;
144
+ high = firstBoxIndex;
145
+ }
139
146
  continue;
140
147
  }
141
148
  if (mark === "x") {
@@ -28,7 +28,7 @@ export type PointAndFigureChartDatum = {
28
28
  /** Prix de clôture : pilote la formation des colonnes. */
29
29
  close: number;
30
30
  };
31
- type PointAndFigureChartProps = {
31
+ export type PointAndFigureChartProps = {
32
32
  data: PointAndFigureChartDatum[];
33
33
  boxSize?: number;
34
34
  reversal?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"PointAndFigureChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/PointAndFigureChart.svelte.ts"],"names":[],"mappings":"AAGE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,uBAAuB,GAAG,GAAG,GAAG,GAAG,CAAC;AAEhD,MAAM,MAAM,wBAAwB,GAAG;IACrC,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAMF,KAAK,wBAAwB,GAAG;IAC9B,IAAI,EAAE,wBAAwB,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA6QJ,QAAA,MAAM,mBAAmB,8DAAwC,CAAC;AAClE,KAAK,mBAAmB,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAClE,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"PointAndFigureChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/PointAndFigureChart.svelte.ts"],"names":[],"mappings":"AAGE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,uBAAuB,GAAG,GAAG,GAAG,GAAG,CAAC;AAEhD,MAAM,MAAM,wBAAwB,GAAG;IACrC,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,wBAAwB,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAuRJ,QAAA,MAAM,mBAAmB,8DAAwC,CAAC;AAClE,KAAK,mBAAmB,GAAG,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAClE,eAAe,mBAAmB,CAAC"}
@@ -30,12 +30,8 @@
30
30
  /** Prix de clôture : pilote la formation des briques. */
31
31
  close: number;
32
32
  };
33
- </script>
34
-
35
- <script lang="ts">
36
- import ChartDataList from "./ChartDataList.svelte";
37
33
 
38
- type RenkoChartProps = {
34
+ export type RenkoChartProps = {
39
35
  data: RenkoChartDatum[];
40
36
  boxSize?: number;
41
37
  label?: string;
@@ -44,6 +40,10 @@
44
40
  size?: number;
45
41
  class?: string;
46
42
  };
43
+ </script>
44
+
45
+ <script lang="ts">
46
+ import ChartDataList from "./ChartDataList.svelte";
47
47
 
48
48
  let {
49
49
  data = [],
@@ -107,31 +107,58 @@
107
107
 
108
108
  // Construit les briques Renko. Chaque brique couvre [bottom, top] (hauteur
109
109
  // boxSize) ; on en émet une à chaque franchissement de `box`. L'inversion
110
- // exige 2×box (la première brique d'un nouveau sens repart d'un cran décalé).
110
+ // exige 2×box : la première brique du nouveau sens repart un cran au-delà de
111
+ // la dernière brique du sens précédent.
111
112
  const bricks = $derived.by(() => {
112
113
  const box = effectiveBox;
113
114
  const out: { bottom: number; top: number; direction: RenkoChartDirection }[] = [];
114
115
  if (validData.length === 0 || box <= 0) return out;
115
116
 
116
- // Niveau de référence : la base de la dernière brique posée.
117
+ // Niveau de référence : extrémité de la dernière brique posée.
117
118
  let base = validData[0].close;
118
119
  let direction: RenkoChartDirection | null = null;
119
120
 
120
121
  for (let i = 1; i < validData.length; i++) {
121
122
  const price = validData[i].close;
122
- // Briques haussières tant que le prix monte d'au moins un `box`.
123
- while (price >= base + box) {
124
- out.push({ bottom: base, top: base + box, direction: "up" });
125
- base += box;
126
- direction = "up";
123
+
124
+ if (direction !== "down") {
125
+ // Briques haussières tant que le prix monte d'au moins un `box`.
126
+ while (price >= base + box) {
127
+ out.push({ bottom: base, top: base + box, direction: "up" });
128
+ base += box;
129
+ direction = "up";
130
+ }
131
+ }
132
+
133
+ if (direction === "up") {
134
+ // Inversion haussière -> baissière : il faut franchir 2×box.
135
+ if (price <= base - 2 * box) {
136
+ base -= box;
137
+ do {
138
+ out.push({ bottom: base - box, top: base, direction: "down" });
139
+ base -= box;
140
+ direction = "down";
141
+ } while (price <= base - box);
142
+ }
143
+ continue;
127
144
  }
145
+
128
146
  // Briques baissières tant que le prix descend d'au moins un `box`.
129
147
  while (price <= base - box) {
130
148
  out.push({ bottom: base - box, top: base, direction: "down" });
131
149
  base -= box;
132
150
  direction = "down";
133
151
  }
134
- void direction;
152
+
153
+ if (direction === "down" && price >= base + 2 * box) {
154
+ // Inversion baissière -> haussière : il faut franchir 2×box.
155
+ base += box;
156
+ do {
157
+ out.push({ bottom: base, top: base + box, direction: "up" });
158
+ base += box;
159
+ direction = "up";
160
+ } while (price >= base + box);
161
+ }
135
162
  }
136
163
  return out;
137
164
  });
@@ -28,7 +28,7 @@ export type RenkoChartDatum = {
28
28
  /** Prix de clôture : pilote la formation des briques. */
29
29
  close: number;
30
30
  };
31
- type RenkoChartProps = {
31
+ export type RenkoChartProps = {
32
32
  data: RenkoChartDatum[];
33
33
  boxSize?: number;
34
34
  label?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"RenkoChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/RenkoChart.svelte.ts"],"names":[],"mappings":"AAGE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,MAAM,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG;IAC5B,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAMF,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAkNJ,QAAA,MAAM,UAAU,qDAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"RenkoChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/RenkoChart.svelte.ts"],"names":[],"mappings":"AAGE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,MAAM,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG;IAC5B,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,eAAe,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAgPJ,QAAA,MAAM,UAAU,qDAAwC,CAAC;AACzD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAChD,eAAe,UAAU,CAAC"}
@@ -43,6 +43,8 @@
43
43
  disabled?: boolean;
44
44
  /** Stable value, surfaced as `data-value` and used by the list for `value`. */
45
45
  value?: string;
46
+ /** Native link target. When set on a standalone row, the row renders as an anchor. */
47
+ href?: string;
46
48
  /**
47
49
  * ARIA role for the standalone row. Defaults to "button" for standalone use —
48
50
  * "option" is only valid inside a listbox and would be invalid without one.
@@ -82,6 +84,7 @@
82
84
  onselect,
83
85
  disabled = false,
84
86
  value,
87
+ href,
85
88
  role = "button",
86
89
  accentBar = false,
87
90
  leading,
@@ -122,7 +125,8 @@
122
125
  const isSelected = $derived(list && el ? list.isSelected(el) : selected);
123
126
 
124
127
  // Effective role: a managed row is always an "option" inside the listbox.
125
- const effectiveRole = $derived(list ? list.itemRole : role);
128
+ const effectiveRole = $derived(list ? list.itemRole : href ? undefined : role);
129
+ const rowTag = $derived(href ? "a" : "div");
126
130
 
127
131
  // Roving tabindex: in a list, exactly one enabled row is the tab stop (0), the
128
132
  // rest are -1. Standalone enabled rows are always tabbable (0). Disabled = -1.
@@ -143,8 +147,12 @@
143
147
  .join(" ")
144
148
  );
145
149
 
146
- function activate() {
147
- if (disabled) return;
150
+ function activate(event?: MouseEvent) {
151
+ if (disabled) {
152
+ event?.preventDefault();
153
+ event?.stopPropagation();
154
+ return;
155
+ }
148
156
  if (list && el) {
149
157
  list.activate(el);
150
158
  return;
@@ -155,6 +163,7 @@
155
163
 
156
164
  function handleKeydown(e: KeyboardEvent) {
157
165
  if (disabled) return;
166
+ if (href && !list) return;
158
167
  if (e.key === "Enter" || e.key === " ") {
159
168
  e.preventDefault();
160
169
  activate();
@@ -186,9 +195,11 @@
186
195
  tabindex is correct; the role is dynamic, which the static a11y check cannot
187
196
  verify, hence the targeted ignore. -->
188
197
  <!-- svelte-ignore a11y_no_noninteractive_tabindex -->
189
- <div
198
+ <svelte:element
199
+ this={rowTag}
190
200
  bind:this={el}
191
201
  class={classes}
202
+ href={href && !disabled ? href : undefined}
192
203
  role={effectiveRole}
193
204
  aria-selected={effectiveRole === "option" ? isSelected : undefined}
194
205
  aria-pressed={effectiveRole === "button" ? isSelected : undefined}
@@ -216,7 +227,7 @@
216
227
  {#if trailing}
217
228
  <span class="st-selectableRow__trailing">{@render trailing()}</span>
218
229
  {/if}
219
- </div>
230
+ </svelte:element>
220
231
 
221
232
  <style>
222
233
  /* Compact, full-width selectable list/rail row. By DEFAULT the selected state
@@ -39,6 +39,8 @@ export type SelectableRowProps = {
39
39
  disabled?: boolean;
40
40
  /** Stable value, surfaced as `data-value` and used by the list for `value`. */
41
41
  value?: string;
42
+ /** Native link target. When set on a standalone row, the row renders as an anchor. */
43
+ href?: string;
42
44
  /**
43
45
  * ARIA role for the standalone row. Defaults to "button" for standalone use —
44
46
  * "option" is only valid inside a listbox and would be invalid without one.
@@ -1 +1 @@
1
- {"version":3,"file":"SelectableRow.svelte.d.ts","sourceRoot":"","sources":["../src/lib/SelectableRow.svelte.ts"],"names":[],"mappings":"AAGE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,eAA+B,CAAC;AAEhE,MAAM,MAAM,qBAAqB,GAAG;IAClC,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,wIAAwI;IACxI,QAAQ,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,MAAM,IAAI,CAAC;IACzF,uDAAuD;IACvD,UAAU,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC;IACzC,iFAAiF;IACjF,SAAS,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC;IACxC,6EAA6E;IAC7E,QAAQ,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC;IACpC,wDAAwD;IACxD,QAAQ,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC;IACpC,gDAAgD;IAChD,QAAQ,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA2IJ,QAAA,MAAM,aAAa,gEAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"SelectableRow.svelte.d.ts","sourceRoot":"","sources":["../src/lib/SelectableRow.svelte.ts"],"names":[],"mappings":"AAGE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,eAA+B,CAAC;AAEhE,MAAM,MAAM,qBAAqB,GAAG;IAClC,gEAAgE;IAChE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,wDAAwD;IACxD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,wIAAwI;IACxI,QAAQ,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,MAAM,IAAI,CAAC;IACzF,uDAAuD;IACvD,UAAU,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC;IACzC,iFAAiF;IACjF,SAAS,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC;IACxC,6EAA6E;IAC7E,QAAQ,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC;IACpC,wDAAwD;IACxD,QAAQ,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC;IACpC,gDAAgD;IAChD,QAAQ,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAkJJ,QAAA,MAAM,aAAa,gEAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
@@ -0,0 +1,89 @@
1
+ <script lang="ts" module>
2
+ import type { Snippet } from "svelte";
3
+
4
+ export type UtilityPanelMode = "reserve" | "overlay" | "floating";
5
+ export type UtilityPanelSide = "left" | "right" | "bottom";
6
+
7
+ export interface UtilityPanelProps {
8
+ mode?: UtilityPanelMode;
9
+ side?: UtilityPanelSide;
10
+ title?: string;
11
+ label?: string;
12
+ collapsed?: boolean;
13
+ header?: Snippet;
14
+ footer?: Snippet;
15
+ children?: Snippet;
16
+ class?: string;
17
+ }
18
+ </script>
19
+
20
+ <script lang="ts">
21
+ let {
22
+ mode = "reserve",
23
+ side = "right",
24
+ title,
25
+ label,
26
+ collapsed = false,
27
+ header,
28
+ footer,
29
+ children,
30
+ class: className
31
+ }: UtilityPanelProps = $props();
32
+
33
+ const classes = $derived(["st-utilityPanel", `st-utilityPanel--${mode}`, `st-utilityPanel--${side}`, collapsed && "st-utilityPanel--collapsed", className].filter(Boolean).join(" "));
34
+ </script>
35
+
36
+ <aside class={classes} aria-label={label ?? title ?? "Utility panel"} data-mode={mode} data-side={side}>
37
+ {#if header || title}
38
+ <header class="st-utilityPanel__header">
39
+ {#if header}{@render header()}{:else}<h2 class="st-utilityPanel__title">{title}</h2>{/if}
40
+ </header>
41
+ {/if}
42
+ {#if !collapsed}
43
+ <div class="st-utilityPanel__body">{@render children?.()}</div>
44
+ {#if footer}<footer class="st-utilityPanel__footer">{@render footer()}</footer>{/if}
45
+ {/if}
46
+ </aside>
47
+
48
+ <style>
49
+ .st-utilityPanel {
50
+ background: var(--st-component-utilityPanel-surface, var(--st-semantic-surface-raised));
51
+ color: var(--st-semantic-text-primary);
52
+ display: grid;
53
+ grid-template-rows: auto 1fr auto;
54
+ block-size: 100%;
55
+ min-block-size: 0;
56
+ }
57
+
58
+ .st-utilityPanel--floating,
59
+ .st-utilityPanel--overlay {
60
+ box-shadow: var(--st-component-utilityPanel-shadow, 0 18px 45px rgb(15 23 42 / 0.18));
61
+ }
62
+
63
+ .st-utilityPanel__header,
64
+ .st-utilityPanel__footer {
65
+ border-color: var(--st-component-utilityPanel-border, var(--st-semantic-border-subtle));
66
+ padding: var(--st-spacing-4, 1rem);
67
+ }
68
+
69
+ .st-utilityPanel__header {
70
+ border-block-end-style: solid;
71
+ border-block-end-width: 1px;
72
+ }
73
+
74
+ .st-utilityPanel__footer {
75
+ border-block-start-style: solid;
76
+ border-block-start-width: 1px;
77
+ }
78
+
79
+ .st-utilityPanel__title {
80
+ font-size: 1rem;
81
+ line-height: 1.3;
82
+ margin: 0;
83
+ }
84
+
85
+ .st-utilityPanel__body {
86
+ min-block-size: 0;
87
+ overflow: auto;
88
+ }
89
+ </style>
@@ -0,0 +1,18 @@
1
+ import type { Snippet } from "svelte";
2
+ export type UtilityPanelMode = "reserve" | "overlay" | "floating";
3
+ export type UtilityPanelSide = "left" | "right" | "bottom";
4
+ export interface UtilityPanelProps {
5
+ mode?: UtilityPanelMode;
6
+ side?: UtilityPanelSide;
7
+ title?: string;
8
+ label?: string;
9
+ collapsed?: boolean;
10
+ header?: Snippet;
11
+ footer?: Snippet;
12
+ children?: Snippet;
13
+ class?: string;
14
+ }
15
+ declare const UtilityPanel: import("svelte").Component<UtilityPanelProps, {}, "">;
16
+ type UtilityPanel = ReturnType<typeof UtilityPanel>;
17
+ export default UtilityPanel;
18
+ //# sourceMappingURL=UtilityPanel.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UtilityPanel.svelte.d.ts","sourceRoot":"","sources":["../src/lib/UtilityPanel.svelte.ts"],"names":[],"mappings":"AAGE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAClE,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAoCH,QAAA,MAAM,YAAY,uDAAwC,CAAC;AAC3D,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AACpD,eAAe,YAAY,CAAC"}
@@ -33,12 +33,8 @@
33
33
  /** Direction en DEGRÉS (0° = +X, sens trigonométrique). */
34
34
  direction: number;
35
35
  };
36
- </script>
37
-
38
- <script lang="ts">
39
- import ChartDataList from "./ChartDataList.svelte";
40
36
 
41
- type VectorFieldChartProps = {
37
+ export type VectorFieldChartProps = {
42
38
  data: VectorFieldChartDatum[];
43
39
  label?: string;
44
40
  width?: number;
@@ -46,6 +42,10 @@
46
42
  size?: number;
47
43
  class?: string;
48
44
  };
45
+ </script>
46
+
47
+ <script lang="ts">
48
+ import ChartDataList from "./ChartDataList.svelte";
49
49
 
50
50
  let {
51
51
  data = [],
@@ -29,7 +29,7 @@ export type VectorFieldChartDatum = {
29
29
  /** Direction en DEGRÉS (0° = +X, sens trigonométrique). */
30
30
  direction: number;
31
31
  };
32
- type VectorFieldChartProps = {
32
+ export type VectorFieldChartProps = {
33
33
  data: VectorFieldChartDatum[];
34
34
  label?: string;
35
35
  width?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"VectorFieldChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/VectorFieldChart.svelte.ts"],"names":[],"mappings":"AAGE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,oBAAoB,GAC5B,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GACrD,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AAE1D,MAAM,MAAM,qBAAqB,GAAG;IAClC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAMF,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,qBAAqB,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAiMJ,QAAA,MAAM,gBAAgB,2DAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"VectorFieldChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/VectorFieldChart.svelte.ts"],"names":[],"mappings":"AAGE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,oBAAoB,GAC5B,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GACrD,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AAE1D,MAAM,MAAM,qBAAqB,GAAG;IAClC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,qBAAqB,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAoMJ,QAAA,MAAM,gBAAgB,2DAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
@@ -35,12 +35,8 @@
35
35
  /** Direction (d'où vient le vent) en DEGRÉS (0° = Nord). */
36
36
  direction: number;
37
37
  };
38
- </script>
39
-
40
- <script lang="ts">
41
- import ChartDataList from "./ChartDataList.svelte";
42
38
 
43
- type WindBarbChartProps = {
39
+ export type WindBarbChartProps = {
44
40
  data: WindBarbChartDatum[];
45
41
  label?: string;
46
42
  width?: number;
@@ -48,6 +44,10 @@
48
44
  size?: number;
49
45
  class?: string;
50
46
  };
47
+ </script>
48
+
49
+ <script lang="ts">
50
+ import ChartDataList from "./ChartDataList.svelte";
51
51
 
52
52
  let {
53
53
  data = [],
@@ -31,7 +31,7 @@ export type WindBarbChartDatum = {
31
31
  /** Direction (d'où vient le vent) en DEGRÉS (0° = Nord). */
32
32
  direction: number;
33
33
  };
34
- type WindBarbChartProps = {
34
+ export type WindBarbChartProps = {
35
35
  data: WindBarbChartDatum[];
36
36
  label?: string;
37
37
  width?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"WindBarbChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/WindBarbChart.svelte.ts"],"names":[],"mappings":"AAGE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,iBAAiB,GACzB,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GACrD,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AAE1D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAMF,KAAK,kBAAkB,GAAG;IACxB,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA0NJ,QAAA,MAAM,aAAa,wDAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"WindBarbChart.svelte.d.ts","sourceRoot":"","sources":["../src/lib/WindBarbChart.svelte.ts"],"names":[],"mappings":"AAGE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,iBAAiB,GACzB,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,GACrD,WAAW,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;AAE1D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,kBAAkB,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA6NJ,QAAA,MAAM,aAAa,wDAAwC,CAAC;AAC5D,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,eAAe,aAAa,CAAC"}
@@ -0,0 +1,125 @@
1
+ <script lang="ts" module>
2
+ import type { Snippet } from "svelte";
3
+
4
+ export interface WizardStep {
5
+ label: string;
6
+ description?: string;
7
+ }
8
+
9
+ export type WizardProps = {
10
+ stepperLabel?: string;
11
+ steps: WizardStep[];
12
+ currentStep?: number;
13
+ stepTitle: string;
14
+ cancelLabel?: string;
15
+ backLabel?: string;
16
+ nextLabel?: string;
17
+ finishLabel?: string;
18
+ isLast?: boolean;
19
+ children?: Snippet;
20
+ oncancel?: () => void;
21
+ onback?: () => void;
22
+ onnext?: () => void;
23
+ onfinish?: () => void;
24
+ };
25
+ </script>
26
+
27
+ <script lang="ts">
28
+ import Stepper from "./Stepper.svelte";
29
+ import Button from "./Button.svelte";
30
+
31
+ let {
32
+ stepperLabel = "Étapes",
33
+ steps,
34
+ currentStep = 0,
35
+ stepTitle,
36
+ cancelLabel = "Annuler",
37
+ backLabel = "Retour",
38
+ nextLabel = "Suivant",
39
+ finishLabel = "Terminer",
40
+ isLast = false,
41
+ children,
42
+ oncancel,
43
+ onback,
44
+ onnext,
45
+ onfinish,
46
+ }: WizardProps = $props();
47
+ </script>
48
+
49
+ <div class="st-wz">
50
+ <div class="st-wz__stepper">
51
+ <Stepper {steps} current={currentStep} label={stepperLabel} />
52
+ </div>
53
+ <div class="st-wz__body">
54
+ <h3 class="st-wz__stepTitle">{stepTitle}</h3>
55
+ {#if children}
56
+ <div class="st-wz__content">
57
+ {@render children()}
58
+ </div>
59
+ {/if}
60
+ </div>
61
+ <div class="st-wz__footer">
62
+ <div class="st-wz__footerLeft">
63
+ <Button variant="ghost" onclick={oncancel}>{cancelLabel}</Button>
64
+ </div>
65
+ <div class="st-wz__footerRight">
66
+ {#if currentStep > 0}
67
+ <Button variant="secondary" onclick={onback}>{backLabel}</Button>
68
+ {/if}
69
+ {#if isLast}
70
+ <Button variant="primary" onclick={onfinish}>{finishLabel}</Button>
71
+ {:else}
72
+ <Button variant="primary" onclick={onnext}>{nextLabel}</Button>
73
+ {/if}
74
+ </div>
75
+ </div>
76
+ </div>
77
+
78
+ <style>
79
+ .st-wz {
80
+ display: grid;
81
+ grid-template-rows: auto 1fr auto;
82
+ min-block-size: 100vh;
83
+ background: var(--st-semantic-surface-default);
84
+ color: var(--st-semantic-text-primary);
85
+ }
86
+ .st-wz__stepper {
87
+ padding: var(--st-spacing-6, 1.5rem);
88
+ border-block-end: 1px solid var(--st-semantic-border-subtle);
89
+ background: var(--st-semantic-surface-raised);
90
+ }
91
+ .st-wz__body {
92
+ display: flex;
93
+ flex-direction: column;
94
+ gap: var(--st-spacing-4, 1rem);
95
+ padding: var(--st-spacing-8, 2rem) var(--st-spacing-6, 1.5rem);
96
+ overflow-y: auto;
97
+ }
98
+ .st-wz__stepTitle {
99
+ font-size: 1.25rem;
100
+ font-weight: 700;
101
+ margin: 0;
102
+ color: var(--st-semantic-text-primary);
103
+ }
104
+ .st-wz__content {
105
+ display: flex;
106
+ flex-direction: column;
107
+ gap: var(--st-spacing-4, 1rem);
108
+ }
109
+ .st-wz__footer {
110
+ display: flex;
111
+ align-items: center;
112
+ justify-content: space-between;
113
+ padding: var(--st-spacing-4, 1rem) var(--st-spacing-6, 1.5rem);
114
+ border-block-start: 1px solid var(--st-semantic-border-subtle);
115
+ background: var(--st-semantic-surface-raised);
116
+ }
117
+ .st-wz__footerLeft {
118
+ display: flex;
119
+ gap: var(--st-spacing-2, 0.5rem);
120
+ }
121
+ .st-wz__footerRight {
122
+ display: flex;
123
+ gap: var(--st-spacing-2, 0.5rem);
124
+ }
125
+ </style>
@@ -0,0 +1,25 @@
1
+ import type { Snippet } from "svelte";
2
+ export interface WizardStep {
3
+ label: string;
4
+ description?: string;
5
+ }
6
+ export type WizardProps = {
7
+ stepperLabel?: string;
8
+ steps: WizardStep[];
9
+ currentStep?: number;
10
+ stepTitle: string;
11
+ cancelLabel?: string;
12
+ backLabel?: string;
13
+ nextLabel?: string;
14
+ finishLabel?: string;
15
+ isLast?: boolean;
16
+ children?: Snippet;
17
+ oncancel?: () => void;
18
+ onback?: () => void;
19
+ onnext?: () => void;
20
+ onfinish?: () => void;
21
+ };
22
+ declare const Wizard: import("svelte").Component<WizardProps, {}, "">;
23
+ type Wizard = ReturnType<typeof Wizard>;
24
+ export default Wizard;
25
+ //# sourceMappingURL=Wizard.svelte.d.ts.map