@lilydesignsystem/svelte-headless 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/components/AotearoaNationalHealthIndexInput/AotearoaNationalHealthIndexInput.svelte +55 -0
  3. package/dist/components/AotearoaNationalHealthIndexInput/AotearoaNationalHealthIndexInput.svelte.d.ts +10 -0
  4. package/dist/components/AotearoaNationalHealthIndexView/AotearoaNationalHealthIndexView.svelte +40 -0
  5. package/dist/components/AotearoaNationalHealthIndexView/AotearoaNationalHealthIndexView.svelte.d.ts +8 -0
  6. package/dist/components/AreaChart/AreaChart.svelte +42 -3
  7. package/dist/components/AreaChart/AreaChart.svelte.d.ts +4 -0
  8. package/dist/components/ArgentinaCodigoUnicoDeIdentificacionLaboralInput/ArgentinaCodigoUnicoDeIdentificacionLaboralInput.svelte +55 -0
  9. package/dist/components/ArgentinaCodigoUnicoDeIdentificacionLaboralInput/ArgentinaCodigoUnicoDeIdentificacionLaboralInput.svelte.d.ts +10 -0
  10. package/dist/components/ArgentinaCodigoUnicoDeIdentificacionLaboralView/ArgentinaCodigoUnicoDeIdentificacionLaboralView.svelte +40 -0
  11. package/dist/components/ArgentinaCodigoUnicoDeIdentificacionLaboralView/ArgentinaCodigoUnicoDeIdentificacionLaboralView.svelte.d.ts +8 -0
  12. package/dist/components/BarChart/BarChart.svelte +42 -3
  13. package/dist/components/BarChart/BarChart.svelte.d.ts +4 -0
  14. package/dist/components/BharatAadhaarInput/BharatAadhaarInput.svelte +55 -0
  15. package/dist/components/BharatAadhaarInput/BharatAadhaarInput.svelte.d.ts +10 -0
  16. package/dist/components/BharatAadhaarView/BharatAadhaarView.svelte +40 -0
  17. package/dist/components/BharatAadhaarView/BharatAadhaarView.svelte.d.ts +8 -0
  18. package/dist/components/BrasilCartaoNacionalDeSaudeInput/BrasilCartaoNacionalDeSaudeInput.svelte +55 -0
  19. package/dist/components/BrasilCartaoNacionalDeSaudeInput/BrasilCartaoNacionalDeSaudeInput.svelte.d.ts +10 -0
  20. package/dist/components/BrasilCartaoNacionalDeSaudeView/BrasilCartaoNacionalDeSaudeView.svelte +40 -0
  21. package/dist/components/BrasilCartaoNacionalDeSaudeView/BrasilCartaoNacionalDeSaudeView.svelte.d.ts +8 -0
  22. package/dist/components/CalendarDayTable/CalendarDayTable.svelte +71 -0
  23. package/dist/components/CalendarDayTable/CalendarDayTable.svelte.d.ts +13 -0
  24. package/dist/components/CalendarMonthTable/CalendarMonthTable.svelte +71 -0
  25. package/dist/components/CalendarMonthTable/CalendarMonthTable.svelte.d.ts +13 -0
  26. package/dist/components/CalendarWeekTable/CalendarWeekTable.svelte +71 -0
  27. package/dist/components/CalendarWeekTable/CalendarWeekTable.svelte.d.ts +13 -0
  28. package/dist/components/CalendarYearTable/CalendarYearTable.svelte +71 -0
  29. package/dist/components/CalendarYearTable/CalendarYearTable.svelte.d.ts +13 -0
  30. package/dist/components/CanadaSocialInsuranceNumberInput/CanadaSocialInsuranceNumberInput.svelte +55 -0
  31. package/dist/components/CanadaSocialInsuranceNumberInput/CanadaSocialInsuranceNumberInput.svelte.d.ts +10 -0
  32. package/dist/components/CanadaSocialInsuranceNumberView/CanadaSocialInsuranceNumberView.svelte +40 -0
  33. package/dist/components/CanadaSocialInsuranceNumberView/CanadaSocialInsuranceNumberView.svelte.d.ts +8 -0
  34. package/dist/components/CandlestickChart/CandlestickChart.svelte +63 -0
  35. package/dist/components/CandlestickChart/CandlestickChart.svelte.d.ts +13 -0
  36. package/dist/components/ChatComposer/ChatComposer.svelte +110 -0
  37. package/dist/components/ChatComposer/ChatComposer.svelte.d.ts +25 -0
  38. package/dist/components/ChileRolUnicoNacionalInput/ChileRolUnicoNacionalInput.svelte +55 -0
  39. package/dist/components/ChileRolUnicoNacionalInput/ChileRolUnicoNacionalInput.svelte.d.ts +10 -0
  40. package/dist/components/ChileRolUnicoNacionalView/ChileRolUnicoNacionalView.svelte +40 -0
  41. package/dist/components/ChileRolUnicoNacionalView/ChileRolUnicoNacionalView.svelte.d.ts +8 -0
  42. package/dist/components/ChoroplethChart/ChoroplethChart.svelte +63 -0
  43. package/dist/components/ChoroplethChart/ChoroplethChart.svelte.d.ts +13 -0
  44. package/dist/components/ColumnChart/ColumnChart.svelte +42 -3
  45. package/dist/components/ColumnChart/ColumnChart.svelte.d.ts +4 -0
  46. package/dist/components/ComposedChart/ComposedChart.svelte +63 -0
  47. package/dist/components/ComposedChart/ComposedChart.svelte.d.ts +13 -0
  48. package/dist/components/EmptyState/EmptyState.svelte +47 -0
  49. package/dist/components/EmptyState/EmptyState.svelte.d.ts +11 -0
  50. package/dist/components/FileTree/FileTree.svelte +210 -0
  51. package/dist/components/FileTree/FileTree.svelte.d.ts +11 -0
  52. package/dist/components/FunnelChart/FunnelChart.svelte +63 -0
  53. package/dist/components/FunnelChart/FunnelChart.svelte.d.ts +13 -0
  54. package/dist/components/GanttTable/GanttTable.svelte +5 -5
  55. package/dist/components/GanttTableTD/GanttTableTD.svelte +2 -2
  56. package/dist/components/GanttTableTH/GanttTableTH.svelte +3 -3
  57. package/dist/components/GanttTableTbody/GanttTableTbody.svelte +5 -5
  58. package/dist/components/GanttTableTbody/GanttTableTbody.svelte.d.ts +1 -1
  59. package/dist/components/GanttTableTfoot/GanttTableTfoot.svelte +5 -5
  60. package/dist/components/GanttTableTfoot/GanttTableTfoot.svelte.d.ts +1 -1
  61. package/dist/components/GanttTableThead/GanttTableThead.svelte +4 -4
  62. package/dist/components/GanttTableThead/GanttTableThead.svelte.d.ts +1 -1
  63. package/dist/components/GanttTableTr/GanttTableTr.svelte +8 -8
  64. package/dist/components/GaugeChart/GaugeChart.svelte +63 -0
  65. package/dist/components/GaugeChart/GaugeChart.svelte.d.ts +13 -0
  66. package/dist/components/HangukJuminDeungnokBeonhoInput/HangukJuminDeungnokBeonhoInput.svelte +55 -0
  67. package/dist/components/HangukJuminDeungnokBeonhoInput/HangukJuminDeungnokBeonhoInput.svelte.d.ts +10 -0
  68. package/dist/components/HangukJuminDeungnokBeonhoView/HangukJuminDeungnokBeonhoView.svelte +40 -0
  69. package/dist/components/HangukJuminDeungnokBeonhoView/HangukJuminDeungnokBeonhoView.svelte.d.ts +8 -0
  70. package/dist/components/HeatmapChart/HeatmapChart.svelte +63 -0
  71. package/dist/components/HeatmapChart/HeatmapChart.svelte.d.ts +13 -0
  72. package/dist/components/IndonesiaNomorIndukKependudukanInput/IndonesiaNomorIndukKependudukanInput.svelte +55 -0
  73. package/dist/components/IndonesiaNomorIndukKependudukanInput/IndonesiaNomorIndukKependudukanInput.svelte.d.ts +10 -0
  74. package/dist/components/IndonesiaNomorIndukKependudukanView/IndonesiaNomorIndukKependudukanView.svelte +40 -0
  75. package/dist/components/IndonesiaNomorIndukKependudukanView/IndonesiaNomorIndukKependudukanView.svelte.d.ts +8 -0
  76. package/dist/components/KbdShortcut/KbdShortcut.svelte +49 -0
  77. package/dist/components/KbdShortcut/KbdShortcut.svelte.d.ts +12 -0
  78. package/dist/components/LineChart/LineChart.svelte +42 -3
  79. package/dist/components/LineChart/LineChart.svelte.d.ts +4 -0
  80. package/dist/components/LuxembourgMatriculeInput/LuxembourgMatriculeInput.svelte +55 -0
  81. package/dist/components/LuxembourgMatriculeInput/LuxembourgMatriculeInput.svelte.d.ts +10 -0
  82. package/dist/components/LuxembourgMatriculeView/LuxembourgMatriculeView.svelte +40 -0
  83. package/dist/components/LuxembourgMatriculeView/LuxembourgMatriculeView.svelte.d.ts +8 -0
  84. package/dist/components/MagyarorszagTajSzamInput/MagyarorszagTajSzamInput.svelte +55 -0
  85. package/dist/components/MagyarorszagTajSzamInput/MagyarorszagTajSzamInput.svelte.d.ts +10 -0
  86. package/dist/components/MagyarorszagTajSzamView/MagyarorszagTajSzamView.svelte +40 -0
  87. package/dist/components/MagyarorszagTajSzamView/MagyarorszagTajSzamView.svelte.d.ts +8 -0
  88. package/dist/components/Mark/Mark.svelte +27 -0
  89. package/dist/components/Mark/Mark.svelte.d.ts +9 -0
  90. package/dist/components/MexicoClaveUnicaDeRegistroDePoblacionInput/MexicoClaveUnicaDeRegistroDePoblacionInput.svelte +55 -0
  91. package/dist/components/MexicoClaveUnicaDeRegistroDePoblacionInput/MexicoClaveUnicaDeRegistroDePoblacionInput.svelte.d.ts +10 -0
  92. package/dist/components/MexicoClaveUnicaDeRegistroDePoblacionView/MexicoClaveUnicaDeRegistroDePoblacionView.svelte +40 -0
  93. package/dist/components/MexicoClaveUnicaDeRegistroDePoblacionView/MexicoClaveUnicaDeRegistroDePoblacionView.svelte.d.ts +8 -0
  94. package/dist/components/MisrAlRaqmAlQawmiInput/MisrAlRaqmAlQawmiInput.svelte +55 -0
  95. package/dist/components/MisrAlRaqmAlQawmiInput/MisrAlRaqmAlQawmiInput.svelte.d.ts +10 -0
  96. package/dist/components/MisrAlRaqmAlQawmiView/MisrAlRaqmAlQawmiView.svelte +40 -0
  97. package/dist/components/MisrAlRaqmAlQawmiView/MisrAlRaqmAlQawmiView.svelte.d.ts +8 -0
  98. package/dist/components/MultiSelect/MultiSelect.svelte +70 -0
  99. package/dist/components/MultiSelect/MultiSelect.svelte.d.ts +19 -0
  100. package/dist/components/MultiSelectWithExtras/MultiSelectWithExtras.svelte +80 -0
  101. package/dist/components/MultiSelectWithExtras/MultiSelectWithExtras.svelte.d.ts +23 -0
  102. package/dist/components/NihonKojinBangoInput/NihonKojinBangoInput.svelte +55 -0
  103. package/dist/components/NihonKojinBangoInput/NihonKojinBangoInput.svelte.d.ts +10 -0
  104. package/dist/components/NihonKojinBangoView/NihonKojinBangoView.svelte +40 -0
  105. package/dist/components/NihonKojinBangoView/NihonKojinBangoView.svelte.d.ts +8 -0
  106. package/dist/components/OneTimePasswordInput/OneTimePasswordInput.svelte +85 -0
  107. package/dist/components/OneTimePasswordInput/OneTimePasswordInput.svelte.d.ts +22 -0
  108. package/dist/components/OsterreichSozialversicherungsnummerInput/OsterreichSozialversicherungsnummerInput.svelte +55 -0
  109. package/dist/components/OsterreichSozialversicherungsnummerInput/OsterreichSozialversicherungsnummerInput.svelte.d.ts +10 -0
  110. package/dist/components/OsterreichSozialversicherungsnummerView/OsterreichSozialversicherungsnummerView.svelte +40 -0
  111. package/dist/components/OsterreichSozialversicherungsnummerView/OsterreichSozialversicherungsnummerView.svelte.d.ts +8 -0
  112. package/dist/components/PieChart/PieChart.svelte +63 -0
  113. package/dist/components/PieChart/PieChart.svelte.d.ts +13 -0
  114. package/dist/components/PilipinasPhilhealthIdentificationNumberInput/PilipinasPhilhealthIdentificationNumberInput.svelte +55 -0
  115. package/dist/components/PilipinasPhilhealthIdentificationNumberInput/PilipinasPhilhealthIdentificationNumberInput.svelte.d.ts +10 -0
  116. package/dist/components/PilipinasPhilhealthIdentificationNumberView/PilipinasPhilhealthIdentificationNumberView.svelte +40 -0
  117. package/dist/components/PilipinasPhilhealthIdentificationNumberView/PilipinasPhilhealthIdentificationNumberView.svelte.d.ts +8 -0
  118. package/dist/components/PrathetThaiLekPrajamTuaPrachachonInput/PrathetThaiLekPrajamTuaPrachachonInput.svelte +55 -0
  119. package/dist/components/PrathetThaiLekPrajamTuaPrachachonInput/PrathetThaiLekPrajamTuaPrachachonInput.svelte.d.ts +10 -0
  120. package/dist/components/PrathetThaiLekPrajamTuaPrachachonView/PrathetThaiLekPrajamTuaPrachachonView.svelte +40 -0
  121. package/dist/components/PrathetThaiLekPrajamTuaPrachachonView/PrathetThaiLekPrajamTuaPrachachonView.svelte.d.ts +8 -0
  122. package/dist/components/RadarChart/RadarChart.svelte +63 -0
  123. package/dist/components/RadarChart/RadarChart.svelte.d.ts +13 -0
  124. package/dist/components/RingChart/RingChart.svelte +63 -0
  125. package/dist/components/RingChart/RingChart.svelte.d.ts +13 -0
  126. package/dist/components/RossiyaSnilsInput/RossiyaSnilsInput.svelte +55 -0
  127. package/dist/components/RossiyaSnilsInput/RossiyaSnilsInput.svelte.d.ts +10 -0
  128. package/dist/components/RossiyaSnilsView/RossiyaSnilsView.svelte +40 -0
  129. package/dist/components/RossiyaSnilsView/RossiyaSnilsView.svelte.d.ts +8 -0
  130. package/dist/components/SankeyChart/SankeyChart.svelte +63 -0
  131. package/dist/components/SankeyChart/SankeyChart.svelte.d.ts +13 -0
  132. package/dist/components/ScatterChart/ScatterChart.svelte +42 -3
  133. package/dist/components/ScatterChart/ScatterChart.svelte.d.ts +4 -0
  134. package/dist/components/SchweizAhvNummerInput/SchweizAhvNummerInput.svelte +55 -0
  135. package/dist/components/SchweizAhvNummerInput/SchweizAhvNummerInput.svelte.d.ts +10 -0
  136. package/dist/components/SchweizAhvNummerView/SchweizAhvNummerView.svelte +40 -0
  137. package/dist/components/SchweizAhvNummerView/SchweizAhvNummerView.svelte.d.ts +8 -0
  138. package/dist/components/ShowMore/ShowMore.svelte +64 -0
  139. package/dist/components/ShowMore/ShowMore.svelte.d.ts +15 -0
  140. package/dist/components/SingaporeNationalRegistrationIdentityCardInput/SingaporeNationalRegistrationIdentityCardInput.svelte +55 -0
  141. package/dist/components/SingaporeNationalRegistrationIdentityCardInput/SingaporeNationalRegistrationIdentityCardInput.svelte.d.ts +10 -0
  142. package/dist/components/SingaporeNationalRegistrationIdentityCardView/SingaporeNationalRegistrationIdentityCardView.svelte +40 -0
  143. package/dist/components/SingaporeNationalRegistrationIdentityCardView/SingaporeNationalRegistrationIdentityCardView.svelte.d.ts +8 -0
  144. package/dist/components/SouthAfricaIdentityNumberInput/SouthAfricaIdentityNumberInput.svelte +55 -0
  145. package/dist/components/SouthAfricaIdentityNumberInput/SouthAfricaIdentityNumberInput.svelte.d.ts +10 -0
  146. package/dist/components/SouthAfricaIdentityNumberView/SouthAfricaIdentityNumberView.svelte +40 -0
  147. package/dist/components/SouthAfricaIdentityNumberView/SouthAfricaIdentityNumberView.svelte.d.ts +8 -0
  148. package/dist/components/StreamingText/StreamingText.svelte +48 -0
  149. package/dist/components/StreamingText/StreamingText.svelte.d.ts +13 -0
  150. package/dist/components/SunburstChart/SunburstChart.svelte +63 -0
  151. package/dist/components/SunburstChart/SunburstChart.svelte.d.ts +13 -0
  152. package/dist/components/Thinking/Thinking.svelte +58 -0
  153. package/dist/components/Thinking/Thinking.svelte.d.ts +15 -0
  154. package/dist/components/ToolCall/ToolCall.svelte +54 -0
  155. package/dist/components/ToolCall/ToolCall.svelte.d.ts +15 -0
  156. package/dist/components/ToolCallError/ToolCallError.svelte +27 -0
  157. package/dist/components/ToolCallError/ToolCallError.svelte.d.ts +9 -0
  158. package/dist/components/ToolCallInput/ToolCallInput.svelte +30 -0
  159. package/dist/components/ToolCallInput/ToolCallInput.svelte.d.ts +11 -0
  160. package/dist/components/ToolCallName/ToolCallName.svelte +27 -0
  161. package/dist/components/ToolCallName/ToolCallName.svelte.d.ts +9 -0
  162. package/dist/components/ToolCallOutput/ToolCallOutput.svelte +30 -0
  163. package/dist/components/ToolCallOutput/ToolCallOutput.svelte.d.ts +11 -0
  164. package/dist/components/ToolCallStatus/ToolCallStatus.svelte +29 -0
  165. package/dist/components/ToolCallStatus/ToolCallStatus.svelte.d.ts +11 -0
  166. package/dist/components/TurkiyeTcKimlikNumarasiInput/TurkiyeTcKimlikNumarasiInput.svelte +55 -0
  167. package/dist/components/TurkiyeTcKimlikNumarasiInput/TurkiyeTcKimlikNumarasiInput.svelte.d.ts +10 -0
  168. package/dist/components/TurkiyeTcKimlikNumarasiView/TurkiyeTcKimlikNumarasiView.svelte +40 -0
  169. package/dist/components/TurkiyeTcKimlikNumarasiView/TurkiyeTcKimlikNumarasiView.svelte.d.ts +8 -0
  170. package/dist/components/UkrayinaReyestratsiyniyNomerOblikovoyiKartkyPlatnykaPodatkivInput/UkrayinaReyestratsiyniyNomerOblikovoyiKartkyPlatnykaPodatkivInput.svelte +55 -0
  171. package/dist/components/UkrayinaReyestratsiyniyNomerOblikovoyiKartkyPlatnykaPodatkivInput/UkrayinaReyestratsiyniyNomerOblikovoyiKartkyPlatnykaPodatkivInput.svelte.d.ts +10 -0
  172. package/dist/components/UkrayinaReyestratsiyniyNomerOblikovoyiKartkyPlatnykaPodatkivView/UkrayinaReyestratsiyniyNomerOblikovoyiKartkyPlatnykaPodatkivView.svelte +40 -0
  173. package/dist/components/UkrayinaReyestratsiyniyNomerOblikovoyiKartkyPlatnykaPodatkivView/UkrayinaReyestratsiyniyNomerOblikovoyiKartkyPlatnykaPodatkivView.svelte.d.ts +8 -0
  174. package/dist/components/YisraelTeudatZehutInput/YisraelTeudatZehutInput.svelte +55 -0
  175. package/dist/components/YisraelTeudatZehutInput/YisraelTeudatZehutInput.svelte.d.ts +10 -0
  176. package/dist/components/YisraelTeudatZehutView/YisraelTeudatZehutView.svelte +40 -0
  177. package/dist/components/YisraelTeudatZehutView/YisraelTeudatZehutView.svelte.d.ts +8 -0
  178. package/dist/components/ZhongguoJuminShenfenzhengHaomaInput/ZhongguoJuminShenfenzhengHaomaInput.svelte +55 -0
  179. package/dist/components/ZhongguoJuminShenfenzhengHaomaInput/ZhongguoJuminShenfenzhengHaomaInput.svelte.d.ts +10 -0
  180. package/dist/components/ZhongguoJuminShenfenzhengHaomaView/ZhongguoJuminShenfenzhengHaomaView.svelte +40 -0
  181. package/dist/components/ZhongguoJuminShenfenzhengHaomaView/ZhongguoJuminShenfenzhengHaomaView.svelte.d.ts +8 -0
  182. package/dist/index.d.ts +80 -0
  183. package/dist/index.js +80 -0
  184. package/index.md +1 -1
  185. package/package.json +9 -9
@@ -0,0 +1,110 @@
1
+ <script lang="ts">
2
+ // ChatComposer component
3
+ //
4
+ // A headless chat input form: a <textarea> that grows with its content (rows from the number of lines, clamped between minRows and maxRows) and ONE button that is "send" normally and turns into "stop" while `busy`. Enter sends; Shift+Enter inserts a line break; Enter while an IME composition is in progress does nothing. The send button is disabled, never hidden, when the text is empty or the form is disabled. The component never clears the text (the consumer does, in its send handler), never animates, and carries no strings: the textarea name, the send word and the stop word are required props. Models, attachments and menus are consumer composition (put them in the default slot, rendered before the textarea).
5
+ //
6
+ // Props:
7
+ // class — string, optional. CSS class name.
8
+ // label — string, required. Accessible name of the textarea.
9
+ // sendLabel — string, required. Visible/accessible word for the send button.
10
+ // stopLabel — string, required. Visible/accessible word for the stop button.
11
+ // value — string, default "". Bindable.
12
+ // placeholder, name — optional, passed to the textarea.
13
+ // minRows — number, default 1. maxRows — number, default 8.
14
+ // busy — boolean, default false. A reply is in progress: the button becomes "stop".
15
+ // disabled — boolean, default false.
16
+ // onSend(value) — called on Enter or submit when there is text and not busy/disabled.
17
+ // onStop() — called when the stop button is pressed.
18
+ // children — Snippet, optional. Rendered inside the form, before the textarea.
19
+ // ...restProps — additional HTML attributes spread onto the root <form>.
20
+ //
21
+ // Keyboard: Enter sends; Shift+Enter inserts a line break; Enter during IME composition is ignored.
22
+ //
23
+ // Claude rules:
24
+ // - Headless: no CSS, no inline styles, no animation, no hardcoded strings
25
+ import type { Snippet } from "svelte";
26
+
27
+ let {
28
+ class: className = "",
29
+ label,
30
+ sendLabel,
31
+ stopLabel,
32
+ value = $bindable(""),
33
+ placeholder = undefined,
34
+ name = undefined,
35
+ minRows = 1,
36
+ maxRows = 8,
37
+ busy = false,
38
+ disabled = false,
39
+ onSend,
40
+ onStop,
41
+ children,
42
+ ...restProps
43
+ }: {
44
+ /** Accessible name of the textarea. */
45
+ label: string;
46
+ /** Word for the send button. */
47
+ sendLabel: string;
48
+ /** Word for the stop button. */
49
+ stopLabel: string;
50
+ /** The text. Bindable. */
51
+ value?: string;
52
+ placeholder?: string;
53
+ name?: string;
54
+ minRows?: number;
55
+ maxRows?: number;
56
+ /** A reply is in progress. */
57
+ busy?: boolean;
58
+ disabled?: boolean;
59
+ onSend?: (value: string) => void;
60
+ onStop?: () => void;
61
+ children?: Snippet;
62
+ [key: string]: unknown;
63
+ } = $props();
64
+
65
+ const empty = $derived(value.trim() === "");
66
+ const rows = $derived(Math.min(maxRows, Math.max(minRows, value.split("\n").length)));
67
+
68
+ function trySend(): void {
69
+ if (disabled || busy || empty) return;
70
+ onSend?.(value);
71
+ }
72
+
73
+ function onKeydown(event: KeyboardEvent): void {
74
+ if (event.key !== "Enter") return;
75
+ if (event.shiftKey || event.ctrlKey || event.altKey || event.metaKey) return;
76
+ // IME: Enter that confirms a composition must not send.
77
+ if (event.isComposing || event.keyCode === 229) return;
78
+ event.preventDefault();
79
+ trySend();
80
+ }
81
+
82
+ function onSubmit(event: SubmitEvent): void {
83
+ event.preventDefault();
84
+ trySend();
85
+ }
86
+ </script>
87
+
88
+ <!-- ChatComposer.svelte -->
89
+ <form class={`chat-composer ${className}`} onsubmit={onSubmit} {...restProps}>
90
+ {@render children?.()}
91
+ <textarea
92
+ class="chat-composer-input"
93
+ aria-label={label}
94
+ bind:value
95
+ {rows}
96
+ {placeholder}
97
+ {name}
98
+ {disabled}
99
+ onkeydown={onKeydown}
100
+ ></textarea>
101
+ <button
102
+ class="chat-composer-button"
103
+ type={busy ? "button" : "submit"}
104
+ data-state={busy ? "stop" : "send"}
105
+ disabled={disabled || (!busy && empty)}
106
+ onclick={busy ? () => onStop?.() : undefined}
107
+ >
108
+ <span class="chat-composer-button-label">{busy ? stopLabel : sendLabel}</span>
109
+ </button>
110
+ </form>
@@ -0,0 +1,25 @@
1
+ import type { Snippet } from "svelte";
2
+ type $$ComponentProps = {
3
+ /** Accessible name of the textarea. */
4
+ label: string;
5
+ /** Word for the send button. */
6
+ sendLabel: string;
7
+ /** Word for the stop button. */
8
+ stopLabel: string;
9
+ /** The text. Bindable. */
10
+ value?: string;
11
+ placeholder?: string;
12
+ name?: string;
13
+ minRows?: number;
14
+ maxRows?: number;
15
+ /** A reply is in progress. */
16
+ busy?: boolean;
17
+ disabled?: boolean;
18
+ onSend?: (value: string) => void;
19
+ onStop?: () => void;
20
+ children?: Snippet;
21
+ [key: string]: unknown;
22
+ };
23
+ declare const ChatComposer: import("svelte").Component<$$ComponentProps, {}, "value">;
24
+ type ChatComposer = ReturnType<typeof ChatComposer>;
25
+ export default ChatComposer;
@@ -0,0 +1,55 @@
1
+ <script lang="ts">
2
+ // ChileRolUnicoNacionalInput component
3
+ //
4
+ // A headless input for entering Chile's Rol Único Nacional (RUN).
5
+ // Format: Seven or eight digits plus a trailing check character. The check character is computed with a Modulus-11 algorithm: each body digit, read right to left, is multiplied by a repeating weight sequence 2,3,4,5,6,7; the products are summed; the check value is 11 minus the sum's Modulus-11 remainder, where a result of 11 maps to 0 and a result of 10 maps to the letter K.
6
+ //
7
+ // Props:
8
+ // className — string, optional. CSS class name.
9
+ // label — string, required. Accessible label for screen readers via aria-label.
10
+ // value — string, default "". Bindable input value; supports bind:value.
11
+ // required — boolean, default false. Whether the input is required for form submission.
12
+ // disabled — boolean, default false. Whether the input is disabled.
13
+ // ...restProps — additional HTML attributes spread onto the <input>.
14
+ //
15
+ // Syntax:
16
+ // <ChileRolUnicoNacionalInput label="Rol Único Nacional (RUN)" bind:value />
17
+ //
18
+ // Accessibility:
19
+ // - aria-label provides the accessible name for screen readers
20
+ // - autocomplete="off" protects sensitive identifiers
21
+ // - required and disabled states are conveyed to assistive technology
22
+ //
23
+ // Internationalization:
24
+ // - The label prop externalizes user-facing text for translation
25
+ //
26
+ // References:
27
+ // - https://en.wikipedia.org/wiki/RUT
28
+
29
+ let {
30
+ class: className = "",
31
+ label,
32
+ value = $bindable(""),
33
+ required = false,
34
+ disabled = false,
35
+ ...restProps
36
+ }: {
37
+ label: string;
38
+ value?: string;
39
+ required?: boolean;
40
+ disabled?: boolean;
41
+ [key: string]: unknown;
42
+ } = $props();
43
+ </script>
44
+
45
+ <!-- ChileRolUnicoNacionalInput.svelte -->
46
+ <input
47
+ class={`chile-rol-unico-nacional-input ${className}`}
48
+ type="text"
49
+ aria-label={label}
50
+ autocomplete="off"
51
+ bind:value
52
+ {required}
53
+ {disabled}
54
+ {...restProps}
55
+ />
@@ -0,0 +1,10 @@
1
+ type $$ComponentProps = {
2
+ label: string;
3
+ value?: string;
4
+ required?: boolean;
5
+ disabled?: boolean;
6
+ [key: string]: unknown;
7
+ };
8
+ declare const ChileRolUnicoNacionalInput: import("svelte").Component<$$ComponentProps, {}, "value">;
9
+ type ChileRolUnicoNacionalInput = ReturnType<typeof ChileRolUnicoNacionalInput>;
10
+ export default ChileRolUnicoNacionalInput;
@@ -0,0 +1,40 @@
1
+ <script lang="ts">
2
+ // ChileRolUnicoNacionalView component
3
+ //
4
+ // A headless display component for showing Chile's
5
+ // Rol Único Nacional (RUN) in a read-only format.
6
+ // Format: Seven or eight digits plus a trailing check character. The check character is computed with a Modulus-11 algorithm: each body digit, read right to left, is multiplied by a repeating weight sequence 2,3,4,5,6,7; the products are summed; the check value is 11 minus the sum's Modulus-11 remainder, where a result of 11 maps to 0 and a result of 10 maps to the letter K.
7
+ //
8
+ // Props:
9
+ // className — string, optional. CSS class name.
10
+ // label — string, required. Accessible label for screen readers via aria-label.
11
+ // value — string, default "". The identifier string to display.
12
+ // ...restProps — additional HTML attributes spread onto the <span>.
13
+ //
14
+ // Syntax:
15
+ // <ChileRolUnicoNacionalView label="Rol Único Nacional (RUN)" value={value} />
16
+ //
17
+ // Accessibility:
18
+ // - aria-label provides the accessible name so screen readers announce the purpose
19
+ //
20
+ // References:
21
+ // - https://en.wikipedia.org/wiki/RUT
22
+
23
+ let {
24
+ class: className = "",
25
+ label,
26
+ value = "",
27
+ ...restProps
28
+ }: {
29
+ label: string;
30
+ value?: string;
31
+ [key: string]: unknown;
32
+ } = $props();
33
+ </script>
34
+
35
+ <!-- ChileRolUnicoNacionalView.svelte -->
36
+ <span
37
+ class={`chile-rol-unico-nacional-view ${className}`}
38
+ aria-label={label}
39
+ {...restProps}>{value}</span
40
+ >
@@ -0,0 +1,8 @@
1
+ type $$ComponentProps = {
2
+ label: string;
3
+ value?: string;
4
+ [key: string]: unknown;
5
+ };
6
+ declare const ChileRolUnicoNacionalView: import("svelte").Component<$$ComponentProps, {}, "">;
7
+ type ChileRolUnicoNacionalView = ReturnType<typeof ChileRolUnicoNacionalView>;
8
+ export default ChileRolUnicoNacionalView;
@@ -0,0 +1,63 @@
1
+ <script lang="ts">
2
+ // ChoroplethChart component
3
+ //
4
+ // A headless chart container for a map chart that shades regions by the value of a measure. The consumer supplies the inline
5
+ // svg as `children`; the component draws nothing. The graphic is a
6
+ // role="img" wrapper named by `label`. The optional `dataTable` snippet
7
+ // renders the accessible table alternative as a SIBLING of that image
8
+ // wrapper, never inside it: a role="img" element makes its descendants
9
+ // presentational, so a table placed inside would be invisible to
10
+ // assistive technology.
11
+ //
12
+ // Props:
13
+ // class — string, optional. Consumer class appended after the base class.
14
+ // label — string, optional. Accessible name of the chart image.
15
+ // children — Snippet. The consumer-supplied inline svg.
16
+ // dataTable — Snippet, optional. The accessible table alternative.
17
+ // ...restProps — spread onto the root <figure>.
18
+ //
19
+ // Markup:
20
+ // <figure class="choropleth-chart">
21
+ // <div class="choropleth-chart-graphic" role="img" aria-label>…svg…</div>
22
+ // <div class="choropleth-chart-data-table">…table…</div> (only when provided)
23
+ // </figure>
24
+ //
25
+ // Keyboard: none on the graphic; the data table follows native table behaviour.
26
+ //
27
+ // Claude rules:
28
+ // - Headless: no CSS, no inline styles; no drawing.
29
+ // - No hardcoded user-facing strings.
30
+
31
+ import type { Snippet } from "svelte";
32
+
33
+ let {
34
+ class: className = "",
35
+ label = undefined,
36
+ children,
37
+ dataTable,
38
+ ...restProps
39
+ }: {
40
+ /** Accessible name for the chart. */
41
+ label?: string;
42
+ /** The consumer-supplied inline svg. */
43
+ children: Snippet;
44
+ /** Optional accessible data table alternative. */
45
+ dataTable?: Snippet;
46
+ [key: string]: unknown;
47
+ } = $props();
48
+ </script>
49
+
50
+ <!-- ChoroplethChart.svelte -->
51
+ <figure
52
+ class={`choropleth-chart ${className}`}
53
+ {...restProps}
54
+ >
55
+ <div class="choropleth-chart-graphic" role="img" aria-label={label}>
56
+ {@render children?.()}
57
+ </div>
58
+ {#if dataTable}
59
+ <div class="choropleth-chart-data-table">
60
+ {@render dataTable()}
61
+ </div>
62
+ {/if}
63
+ </figure>
@@ -0,0 +1,13 @@
1
+ import type { Snippet } from "svelte";
2
+ type $$ComponentProps = {
3
+ /** Accessible name for the chart. */
4
+ label?: string;
5
+ /** The consumer-supplied inline svg. */
6
+ children: Snippet;
7
+ /** Optional accessible data table alternative. */
8
+ dataTable?: Snippet;
9
+ [key: string]: unknown;
10
+ };
11
+ declare const ChoroplethChart: import("svelte").Component<$$ComponentProps, {}, "">;
12
+ type ChoroplethChart = ReturnType<typeof ChoroplethChart>;
13
+ export default ChoroplethChart;
@@ -1,14 +1,48 @@
1
1
  <script lang="ts">
2
+ // ColumnChart component
3
+ //
4
+ // A headless chart container for a vertical column chart visualization for displaying data. The consumer supplies the inline
5
+ // svg as `children`; the component draws nothing. The graphic is a
6
+ // role="img" wrapper named by `label`. The optional `dataTable` snippet
7
+ // renders the accessible table alternative as a SIBLING of that image
8
+ // wrapper, never inside it: a role="img" element makes its descendants
9
+ // presentational, so a table placed inside would be invisible to
10
+ // assistive technology.
11
+ //
12
+ // Props:
13
+ // class — string, optional. Consumer class appended after the base class.
14
+ // label — string, optional. Accessible name of the chart image.
15
+ // children — Snippet. The consumer-supplied inline svg.
16
+ // dataTable — Snippet, optional. The accessible table alternative.
17
+ // ...restProps — spread onto the root <figure>.
18
+ //
19
+ // Markup:
20
+ // <figure class="column-chart">
21
+ // <div class="column-chart-graphic" role="img" aria-label>…svg…</div>
22
+ // <div class="column-chart-data-table">…table…</div> (only when provided)
23
+ // </figure>
24
+ //
25
+ // Keyboard: none on the graphic; the data table follows native table behaviour.
26
+ //
27
+ // Claude rules:
28
+ // - Headless: no CSS, no inline styles; no drawing.
29
+ // - No hardcoded user-facing strings.
30
+
2
31
  import type { Snippet } from "svelte";
3
32
 
4
33
  let {
5
34
  class: className = "",
6
35
  label = undefined,
7
36
  children,
37
+ dataTable,
8
38
  ...restProps
9
39
  }: {
40
+ /** Accessible name for the chart. */
10
41
  label?: string;
42
+ /** The consumer-supplied inline svg. */
11
43
  children: Snippet;
44
+ /** Optional accessible data table alternative. */
45
+ dataTable?: Snippet;
12
46
  [key: string]: unknown;
13
47
  } = $props();
14
48
  </script>
@@ -16,9 +50,14 @@
16
50
  <!-- ColumnChart.svelte -->
17
51
  <figure
18
52
  class={`column-chart ${className}`}
19
- role="img"
20
- aria-label={label}
21
53
  {...restProps}
22
54
  >
23
- {@render children?.()}
55
+ <div class="column-chart-graphic" role="img" aria-label={label}>
56
+ {@render children?.()}
57
+ </div>
58
+ {#if dataTable}
59
+ <div class="column-chart-data-table">
60
+ {@render dataTable()}
61
+ </div>
62
+ {/if}
24
63
  </figure>
@@ -1,7 +1,11 @@
1
1
  import type { Snippet } from "svelte";
2
2
  type $$ComponentProps = {
3
+ /** Accessible name for the chart. */
3
4
  label?: string;
5
+ /** The consumer-supplied inline svg. */
4
6
  children: Snippet;
7
+ /** Optional accessible data table alternative. */
8
+ dataTable?: Snippet;
5
9
  [key: string]: unknown;
6
10
  };
7
11
  declare const ColumnChart: import("svelte").Component<$$ComponentProps, {}, "">;
@@ -0,0 +1,63 @@
1
+ <script lang="ts">
2
+ // ComposedChart component
3
+ //
4
+ // A headless chart container for a chart that combines several chart types, such as bars and a line, on shared axes. The consumer supplies the inline
5
+ // svg as `children`; the component draws nothing. The graphic is a
6
+ // role="img" wrapper named by `label`. The optional `dataTable` snippet
7
+ // renders the accessible table alternative as a SIBLING of that image
8
+ // wrapper, never inside it: a role="img" element makes its descendants
9
+ // presentational, so a table placed inside would be invisible to
10
+ // assistive technology.
11
+ //
12
+ // Props:
13
+ // class — string, optional. Consumer class appended after the base class.
14
+ // label — string, optional. Accessible name of the chart image.
15
+ // children — Snippet. The consumer-supplied inline svg.
16
+ // dataTable — Snippet, optional. The accessible table alternative.
17
+ // ...restProps — spread onto the root <figure>.
18
+ //
19
+ // Markup:
20
+ // <figure class="composed-chart">
21
+ // <div class="composed-chart-graphic" role="img" aria-label>…svg…</div>
22
+ // <div class="composed-chart-data-table">…table…</div> (only when provided)
23
+ // </figure>
24
+ //
25
+ // Keyboard: none on the graphic; the data table follows native table behaviour.
26
+ //
27
+ // Claude rules:
28
+ // - Headless: no CSS, no inline styles; no drawing.
29
+ // - No hardcoded user-facing strings.
30
+
31
+ import type { Snippet } from "svelte";
32
+
33
+ let {
34
+ class: className = "",
35
+ label = undefined,
36
+ children,
37
+ dataTable,
38
+ ...restProps
39
+ }: {
40
+ /** Accessible name for the chart. */
41
+ label?: string;
42
+ /** The consumer-supplied inline svg. */
43
+ children: Snippet;
44
+ /** Optional accessible data table alternative. */
45
+ dataTable?: Snippet;
46
+ [key: string]: unknown;
47
+ } = $props();
48
+ </script>
49
+
50
+ <!-- ComposedChart.svelte -->
51
+ <figure
52
+ class={`composed-chart ${className}`}
53
+ {...restProps}
54
+ >
55
+ <div class="composed-chart-graphic" role="img" aria-label={label}>
56
+ {@render children?.()}
57
+ </div>
58
+ {#if dataTable}
59
+ <div class="composed-chart-data-table">
60
+ {@render dataTable()}
61
+ </div>
62
+ {/if}
63
+ </figure>
@@ -0,0 +1,13 @@
1
+ import type { Snippet } from "svelte";
2
+ type $$ComponentProps = {
3
+ /** Accessible name for the chart. */
4
+ label?: string;
5
+ /** The consumer-supplied inline svg. */
6
+ children: Snippet;
7
+ /** Optional accessible data table alternative. */
8
+ dataTable?: Snippet;
9
+ [key: string]: unknown;
10
+ };
11
+ declare const ComposedChart: import("svelte").Component<$$ComponentProps, {}, "">;
12
+ type ComposedChart = ReturnType<typeof ComposedChart>;
13
+ export default ComposedChart;
@@ -0,0 +1,47 @@
1
+ <script lang="ts">
2
+ // EmptyState component
3
+ //
4
+ // A headless container for the "nothing here yet" state of a list, table,
5
+ // search or inbox. The consumer supplies the heading, explanation and action
6
+ // as children; there is no icon and no default text.
7
+ //
8
+ // Props:
9
+ // className — string, optional. CSS class name.
10
+ // label — string, optional. When given, the root becomes role="group" with this aria-label.
11
+ // children — Snippet. Heading, text, action.
12
+ // ...restProps — additional HTML attributes spread onto the root <div>.
13
+ //
14
+ // Keyboard:
15
+ // - None; any action inside is a native control
16
+ //
17
+ // Accessibility:
18
+ // - role="group" + aria-label only when label is supplied; otherwise a plain <div>
19
+ // - Not a live region: use InfoState (role="status") for announced states
20
+ //
21
+ // Claude rules:
22
+ // - Headless: no CSS, no icon, no hardcoded strings
23
+ import type { Snippet } from "svelte";
24
+
25
+ let {
26
+ class: className = "",
27
+ label = undefined,
28
+ children,
29
+ ...restProps
30
+ }: {
31
+ /** Optional accessible name; adds role="group". */
32
+ label?: string;
33
+ /** Heading, text and action supplied by the consumer. */
34
+ children?: Snippet;
35
+ [key: string]: unknown;
36
+ } = $props();
37
+ </script>
38
+
39
+ <!-- EmptyState.svelte -->
40
+ <div
41
+ class={`empty-state ${className}`}
42
+ role={label ? "group" : undefined}
43
+ aria-label={label}
44
+ {...restProps}
45
+ >
46
+ {@render children?.()}
47
+ </div>
@@ -0,0 +1,11 @@
1
+ import type { Snippet } from "svelte";
2
+ type $$ComponentProps = {
3
+ /** Optional accessible name; adds role="group". */
4
+ label?: string;
5
+ /** Heading, text and action supplied by the consumer. */
6
+ children?: Snippet;
7
+ [key: string]: unknown;
8
+ };
9
+ declare const EmptyState: import("svelte").Component<$$ComponentProps, {}, "">;
10
+ type EmptyState = ReturnType<typeof EmptyState>;
11
+ export default EmptyState;