@rockrms/obsidian-framework 18.1.0 → 18.2.4

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 (51) hide show
  1. package/package.json +1 -1
  2. package/types/Controls/Internal/EmailEditor/api.d.ts +2 -0
  3. package/types/Controls/Internal/EmailEditor/borderPicker.partial.obs.d.ts +39 -0
  4. package/types/Controls/Internal/EmailEditor/borderStylePicker.partial.obs.d.ts +37 -0
  5. package/types/Controls/Internal/EmailEditor/buttonWidthPicker.partial.obs.d.ts +28 -0
  6. package/types/Controls/Internal/EmailEditor/componentPropertyPanel.partial.obs.d.ts +17 -0
  7. package/types/Controls/Internal/EmailEditor/contentToggle.partial.obs.d.ts +38 -0
  8. package/types/Controls/Internal/EmailEditor/emailDesigner.partial.obs.d.ts +17 -3
  9. package/types/Controls/Internal/EmailEditor/emailIFrame.partial.obs.d.ts +17 -3
  10. package/types/Controls/Internal/EmailEditor/fontFamilyPicker.partial.obs.d.ts +17 -0
  11. package/types/Controls/Internal/EmailEditor/hrefPicker.partial.obs.d.ts +26 -0
  12. package/types/Controls/Internal/EmailEditor/letterCasePicker.partial.obs.d.ts +76 -0
  13. package/types/Controls/Internal/EmailEditor/lineHeightPicker2.partial.obs.d.ts +75 -0
  14. package/types/Controls/Internal/EmailEditor/percentRangeSlider.partial.obs.d.ts +55 -0
  15. package/types/Controls/Internal/EmailEditor/pixelBox.partial.obs.d.ts +75 -0
  16. package/types/Controls/Internal/EmailEditor/properties/buttonWidthProperty.partial.obs.d.ts +3 -3
  17. package/types/Controls/Internal/EmailEditor/properties/colorPickerProperty.partial.obs.d.ts +3 -3
  18. package/types/Controls/Internal/EmailEditor/propertyPanels/buttonComponentPropertyPanel.partial.obs.d.ts +21 -5
  19. package/types/Controls/Internal/EmailEditor/propertyPanels/codeComponentPropertyPanel.partial.obs.d.ts +2 -3
  20. package/types/Controls/Internal/EmailEditor/propertyPanels/dividerComponentPropertyPanel.partial.obs.d.ts +9 -0
  21. package/types/Controls/Internal/EmailEditor/propertyPanels/globalPropertyPanel.partial.obs.d.ts +35 -2
  22. package/types/Controls/Internal/EmailEditor/providers.partial.d.ts +3 -21
  23. package/types/Controls/Internal/EmailEditor/shorthandBorderStylePicker.partial.obs.d.ts +37 -0
  24. package/types/Controls/Internal/EmailEditor/shorthandColorPicker.partial.obs.d.ts +82 -0
  25. package/types/Controls/Internal/EmailEditor/shorthandDropDownList.partial.obs.d.ts +91 -0
  26. package/types/Controls/Internal/EmailEditor/shorthandPixelBox.partial.obs.d.ts +82 -0
  27. package/types/Controls/Internal/EmailEditor/sidePanel.partial.obs.d.ts +31 -1
  28. package/types/Controls/Internal/EmailEditor/textAlignmentPicker.partial.obs.d.ts +76 -0
  29. package/types/Controls/Internal/EmailEditor/textFormatPicker2.partial.obs.d.ts +104 -0
  30. package/types/Controls/Internal/EmailEditor/types.partial.d.ts +507 -5
  31. package/types/Controls/Internal/EmailEditor/utils.partial.d.ts +63 -115
  32. package/types/Controls/checkBox.obs.d.ts +3 -9
  33. package/types/Controls/doughnutChart.obs.d.ts +364 -0
  34. package/types/Controls/htmlEditor.obs.d.ts +25 -0
  35. package/types/Core/Controls/chart.d.ts +6 -0
  36. package/types/Enums/Group/appliesToPlacementConfiguration.d.ts +13 -0
  37. package/types/PageState/index.d.ts +1 -0
  38. package/types/PageState/state.d.ts +0 -1
  39. package/types/SystemGuids/serviceJob.d.ts +4 -2
  40. package/types/Utility/dom.d.ts +10 -0
  41. package/types/Utility/lava.d.ts +2 -0
  42. package/types/Utility/linq.d.ts +5 -20
  43. package/types/ViewModels/Blocks/Communication/Chat/ChatConfiguration/chatConfigurationBag.d.ts +3 -0
  44. package/types/ViewModels/Blocks/Communication/Chat/ChatView/chatPersonDataBag.d.ts +3 -0
  45. package/types/ViewModels/Blocks/Core/DefinedTypeList/definedTypeListOptionsBag.d.ts +0 -2
  46. package/types/ViewModels/Blocks/Engagement/StepProgramDetail/stepStatusBag.d.ts +1 -4
  47. package/types/ViewModels/Blocks/Event/RegistrationEntry/persistSessionResponseBag.d.ts +34 -0
  48. package/types/ViewModels/Blocks/Group/GroupPlacement/personFiltersBag.d.ts +56 -0
  49. package/types/ViewModels/Blocks/Group/GroupPlacement/placementConfigurationSettingsBag.d.ts +4 -0
  50. package/types/ViewModels/Blocks/Reporting/DynamicData/gridResultsBag.d.ts +0 -8
  51. package/types/ViewModels/Rest/Controls/emailEditorGetGroupOptionsBag.d.ts +36 -0
@@ -1,11 +1,8 @@
1
1
  import { InjectionKey, Ref } from "vue";
2
- import { AccordionManager, BorderStyle, CssStyleDeclarationKebabKey, ComponentMigrationHelper, ComponentTypeName, ContentAreaElements, DomWatcher, EditorComponentTypeName, HorizontalAlignment, StyleSheetElements, ValueConverter, ComponentStructure } from "./types.partial";
2
+ import { AccordionManager, CssStyleDeclarationKebabKey, ComponentMigrationHelper, ComponentTypeName, ContentAreaElements, DomWatcher, EditorComponentTypeName, HorizontalAlignment, StyleSheetElements, ValueConverter, ComponentStructure, TableElements, ButtonWidthModel, BorderStyle, ButtonComponentAdapter, DividerComponentAdapter, DividerGlobalAdapter, RsvpComponentAdapter, ButtonGlobalAdapter, ImageComponentAdapter, BodyGlobalAdapter, CodeComponentAdapter, TitleComponentAdapter, TextComponentAdapter, VideoComponentAdapter } from "./types.partial";
3
3
  import { Enumerable } from "@Obsidian/Utility/linq";
4
4
  export declare const AccordionGroupInjectionKey: InjectionKey<AccordionManager>;
5
5
  export declare const EmptyDropzoneSvgPixelWidth = 103;
6
- export declare const DefaultBodyWidth = 600;
7
- export declare const DefaultBodyAlignment = "center";
8
- export declare const DefaultBodyColor = "#ffffff";
9
6
  export declare const DefaultEmailBackgroundColor = "#e7e7e7";
10
7
  export declare const RockStylesCssClass: "rock-styles";
11
8
  /**
@@ -71,25 +68,6 @@ export declare const GlobalCssClasses: {
71
68
  };
72
69
  export declare const GlobalStylesCssSelectors: {
73
70
  readonly backgroundColor: ".email-wrapper";
74
- readonly bodyWidth: string;
75
- readonly bodyColor: string;
76
- readonly bodyPadding: string;
77
- readonly bodyAlignment: string;
78
- readonly bodyBorderStyling: string;
79
- readonly bodyMargin: string;
80
- readonly buttonBackgroundColor: ".component-button .button-link";
81
- readonly buttonTextStyling: ".component-button .button-link";
82
- readonly buttonCornerRadius: string;
83
- readonly buttonPadding: ".component-button .button-link";
84
- readonly buttonMargin: string;
85
- readonly buttonBorderStyling: string;
86
- readonly buttonWidthValuesShell: ".component-button .button-shell, .component-rsvp .rsvp-button-shell";
87
- readonly buttonWidthValuesButton: ".component-button .button-link, .component-rsvp .rsvp-accept-link, .component-rsvp .rsvp-decline-link";
88
- readonly dividerMargin: string;
89
- readonly dividerWidth: string;
90
- readonly dividerStyle: string;
91
- readonly dividerThickness: string;
92
- readonly dividerColor: string;
93
71
  };
94
72
  export declare const numberToStringConverter: ValueConverter<number | null | undefined, string | null>;
95
73
  export declare const stringConverter: ValueConverter<string | null | undefined, string | null>;
@@ -110,12 +88,7 @@ export declare function createComponentElementPlaceholder(document: Document): H
110
88
  * @param cellInnerHtml Inner HTML string to place inside the `<td>` cell.
111
89
  * @returns A table element with `.email-content` structure.
112
90
  */
113
- export declare function createTable<T extends Element>(cellInnerHtml?: string | Enumerable<T> | T[] | undefined): {
114
- table: HTMLTableElement;
115
- tbody: HTMLTableSectionElement;
116
- tr: HTMLTableRowElement;
117
- td: HTMLTableCellElement;
118
- };
91
+ export declare function createTable<T extends Element>(cellInnerHtml?: string | Enumerable<T> | T[] | undefined): TableElements;
119
92
  /**
120
93
  * Creates a standard component structure with margin, border, and padding wrappers.
121
94
  * @param componentCssClass - The CSS class for the component.
@@ -162,7 +135,7 @@ export declare function createCssRuleset(selector: string, declarations: Record<
162
135
  * @example
163
136
  * const container = document.getElementById("content");
164
137
  * const elements = findDescendantContentAreaElements(container);
165
- * console.log(elements.outerTable); // Logs the first outer table found
138
+ * console.debug(elements.outerTable); // Logs the first outer table found
166
139
  */
167
140
  export declare function findDescendantContentAreaElements(element: HTMLElement): Partial<ContentAreaElements>;
168
141
  export declare function addContentAreaElementsIfMissing(element: HTMLElement, { outerTableCssClass, innerTableCssClass }?: {
@@ -240,88 +213,22 @@ export declare function getComponentVersionNumber(componentElement: Element): st
240
213
  export declare function setComponentVersionNumber(componentElement: Element, version: string): void;
241
214
  export declare function isComponentVersionNumber(str: string): boolean;
242
215
  /**
243
- * Compares two component version strings using a **semantic-like** versioning system.
244
- *
245
- * Version format: `v<major>[.<minor>][-<phase>.<phaseVersion>]`
246
- * - `v2` (Major-only version, treated as `v2.0`)
247
- * - `v2.0` (Stable version)
248
- * - `v2.1` (Minor update)
249
- * - `v2.0-alpha.1` (Pre-release: alpha phase, version 1)
250
- * - `v2.0-beta.2` (Pre-release: beta phase, version 2)
251
- *
252
- * **Comparison Rules:**
253
- * 1. **Major version (`vX` vs `vY`)**: Higher major versions are greater.
254
- * 2. **Minor version (`vX.Y` vs `vX.Z`)**: If major versions are equal, higher minor versions are greater.
255
- * 3. **Stable vs. Pre-release (`vX.Y` vs `vX.Y-beta.Z`)**: Stable versions are always greater than pre-releases.
256
- * 4. **Phase Sorting (`alpha < beta < rc`)**: Pre-release phases are sorted lexicographically.
257
- * 5. **Phase Version (`alpha.1 < alpha.2`)**: If the phase is the same, numerical phase version is compared.
216
+ * Compares two component version strings using a semantic like versioning system.
258
217
  *
259
- * **Examples:**
260
- * ```typescript
261
- * compareVersions("v2", "v2.1"); // -1 (v2.0 < v2.1)
262
- * compareVersions("v2.0-alpha.1", "v2.0"); // -1 (alpha < stable)
263
- * compareVersions("v2.0-beta.2", "v2.0-beta.10"); // -1 (beta.2 < beta.10)
264
- * compareVersions("v2.0", "v3"); // -1 (v2 < v3)
265
- * compareVersions("v10", "v2.1"); // 1 (v10 > v2.1)
266
- * compareVersions("v2.0-beta.2", "v2.0-alpha.1"); // 1 (beta > alpha)
267
- * compareVersions("v2.0-beta.2", "v2.0-beta.2"); // 0 (equal)
268
- * ```
218
+ * Version format: `v<major>[.<minor>][.<patch>][-<phase>[.<phaseVersion>]]`
219
+ * - `v2` (Major only, treated as `v2.0.0`)
220
+ * - `v2.0` (Treated as `v2.0.0`)
221
+ * - `v2.1.3` (Patch included)
222
+ * - `v2.0-foo` (Pre release: phase "foo", no phase version)
223
+ * - `v2.0-foo.1` (Pre release: phase "foo", version 1)
269
224
  *
270
- * @param {string} v1 - First version string (e.g., "v2.0-beta.1", "v2")
271
- * @param {string} v2 - Second version string (e.g., "v2.0", "v2.1", "v3")
272
- * @returns {number} Returns:
273
- * - `-1` if `v1 < v2`
274
- * - `1` if `v1 > v2`
275
- * - `0` if they are equal
225
+ * Comparison rules:
226
+ * 1) Major, then minor, then patch (higher means newer)
227
+ * 2) If major minor patch match, a version with no phase is newer than a version with a phase (phase indicates pre-release and stable beats pre-release)
228
+ * 3) If both have a phase, phase is compared alphabetically (case insensitive)
229
+ * 4) If phases match, phaseVersion compares numerically. Missing phaseVersion is treated as 0
276
230
  */
277
231
  export declare function compareComponentVersions(v1: string, v2: string): number;
278
- export declare function getVideoComponentHelper(): ComponentMigrationHelper & {
279
- getElements(componentElement: Element): ComponentStructure | null;
280
- createComponentElement(): HTMLElement;
281
- };
282
- type TitleComponentStructure = ComponentStructure & {
283
- readonly headingEl: HTMLHeadElement | null;
284
- readonly borderEl: HTMLElement;
285
- readonly marginEl: HTMLElement;
286
- readonly paddingEl: HTMLElement;
287
- };
288
- export type SupportedHeadingLevel = "h1" | "h2" | "h3";
289
- export declare const SupportedHeadingLevels: SupportedHeadingLevel[];
290
- export declare function getTitleComponentHelper(): ComponentMigrationHelper & {
291
- getElements(componentElement: Element): TitleComponentStructure | null;
292
- createComponentElement(): HTMLElement;
293
- setCssClasses(componentElements: TitleComponentStructure): void;
294
- };
295
- type TextComponentStructure = ComponentStructure & {
296
- readonly contentWrapper: HTMLHeadElement | null;
297
- readonly borderEl: HTMLElement;
298
- readonly marginEl: HTMLElement;
299
- readonly paddingEl: HTMLElement;
300
- };
301
- export declare function getTextComponentHelper(): ComponentMigrationHelper & {
302
- getElements(componentElement: Element): TextComponentStructure | null;
303
- createComponentElement(): HTMLElement;
304
- };
305
- export declare function getButtonComponentHelper(): ComponentMigrationHelper & {
306
- getElements(componentElement: Element): ComponentStructure & {
307
- readonly linkButton: HTMLAnchorElement | null;
308
- } | null;
309
- createComponentElement(): HTMLElement;
310
- };
311
- export declare function getCodeComponentHelper(): ComponentMigrationHelper & {
312
- getElements(componentElement: Element): ComponentStructure & {
313
- readonly contentWrapper: HTMLElement | null;
314
- } | null;
315
- createComponentElement(): HTMLElement;
316
- };
317
- export declare function getDividerComponentHelper(): ComponentMigrationHelper & {
318
- getElements(componentElement: Element): ComponentStructure | null;
319
- createComponentElement(): HTMLElement;
320
- };
321
- export declare function getRsvpComponentHelper(): ComponentMigrationHelper & {
322
- getElements(componentElement: Element): ComponentStructure | null;
323
- createComponentElement(): HTMLElement;
324
- };
325
232
  type RowComponentStructure = ComponentStructure & {
326
233
  readonly dropzone: HTMLElement | null;
327
234
  };
@@ -336,18 +243,14 @@ export declare function getSectionComponentHelper(): ComponentMigrationHelper &
336
243
  } | null;
337
244
  createComponentElement(componentTypeName: SectionComponentTypeName): HTMLElement;
338
245
  };
339
- export declare function getImageComponentHelper(): ComponentMigrationHelper & {
340
- getElements(componentElement: Element): ComponentStructure | null;
341
- createComponentElement(): HTMLElement;
342
- };
343
246
  export declare function getComponentHelper(componentTypeName: ComponentTypeName): (ComponentMigrationHelper & {
344
- getElements(componentElement: Element): ComponentStructure | null;
345
- createComponentElement(): HTMLElement;
346
- }) | (ComponentMigrationHelper & {
347
247
  getElements(componentElement: Element): (ComponentStructure & {
348
248
  readonly rowWrapper: HTMLTableElement | null;
349
249
  }) | null;
350
250
  createComponentElement(componentTypeName: SectionComponentTypeName): HTMLElement;
251
+ }) | (ComponentMigrationHelper & {
252
+ getElements(componentElement: Element): RowComponentStructure | null;
253
+ createComponentElement(): HTMLElement;
351
254
  }) | null;
352
255
  export declare const FontFamilies: {
353
256
  readonly Arial: "Arial, Helvetica, sans-serif";
@@ -378,4 +281,49 @@ export declare const LineHeights: {
378
281
  readonly title: "Very Loose";
379
282
  };
380
283
  };
284
+ /**
285
+ * Value provider used by ButtonWidthProperty controls for both local
286
+ * and global scopes. It abstracts get and set of the logical width model.
287
+ */
288
+ export type ButtonWidthValueProvider = {
289
+ /**
290
+ * Reads the current button width model from either local or global scope.
291
+ */
292
+ get: () => ButtonWidthModel;
293
+ /**
294
+ * Writes a new button width model to either local or global scope.
295
+ */
296
+ set: (value: ButtonWidthModel) => void;
297
+ };
298
+ /**
299
+ * If the specified element is within a rock content editable component,
300
+ * adds event listeners for rock content editable events.
301
+ *
302
+ * Remember to also call `removeRockContentEditableEventListener` when done.
303
+ *
304
+ * @param element
305
+ * @param eventHandler
306
+ */
307
+ export declare function addRockContentEditableEventListener(element: HTMLElement, eventHandler: (event: Event) => void): void;
308
+ /**
309
+ * If the specified element is within a rock content editable component,
310
+ * removes event listeners for rock content editable events.
311
+ *
312
+ * Remember to call this when done with `addRockContentEditableEventListener`.
313
+ *
314
+ * @param element
315
+ * @param eventHandler
316
+ */
317
+ export declare function removeRockContentEditableEventListener(element: HTMLElement, eventHandler: (event: Event) => void): void;
318
+ export declare const bodyGlobalAdapter: BodyGlobalAdapter;
319
+ export declare const buttonGlobalAdapter: ButtonGlobalAdapter;
320
+ export declare const dividerGlobalAdapter: DividerGlobalAdapter;
321
+ export declare const titleComponentAdapter: TitleComponentAdapter;
322
+ export declare const textComponentAdapter: TextComponentAdapter;
323
+ export declare const imageComponentAdapter: ImageComponentAdapter;
324
+ export declare const buttonComponentAdapter: ButtonComponentAdapter;
325
+ export declare const videoComponentAdapter: VideoComponentAdapter;
326
+ export declare const dividerComponentAdapter: DividerComponentAdapter;
327
+ export declare const rsvpComponentAdapter: RsvpComponentAdapter;
328
+ export declare const codeComponentAdapter: CodeComponentAdapter;
381
329
  export {};
@@ -8,10 +8,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
8
8
  type: PropType<string>;
9
9
  required: true;
10
10
  };
11
- rules: {
12
- type: PropType<string>;
13
- default: string;
14
- };
11
+ rules: import("@Obsidian/ValidationRules").RulesPropType;
15
12
  text: {
16
13
  type: PropType<string>;
17
14
  default: string;
@@ -27,10 +24,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
27
24
  type: PropType<string>;
28
25
  required: true;
29
26
  };
30
- rules: {
31
- type: PropType<string>;
32
- default: string;
33
- };
27
+ rules: import("@Obsidian/ValidationRules").RulesPropType;
34
28
  text: {
35
29
  type: PropType<string>;
36
30
  default: string;
@@ -39,7 +33,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
39
33
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
40
34
  }, {
41
35
  text: string;
42
- rules: string;
36
+ rules: import("@Obsidian/ValidationRules").ValidationRule | import("@Obsidian/ValidationRules").ValidationRule[];
43
37
  }, {}>, {
44
38
  textAppend?(_: {}): any;
45
39
  inputGroupAppend?(_: {}): any;
@@ -0,0 +1,364 @@
1
+ import { PropType } from "vue";
2
+ import { LabelDateFormat, LegendAlign, LegendPosition, LineStyle, DoughnutSeries, TooltipCallback } from "@Obsidian/Core/Controls/chart";
3
+ declare const _default: import("vue").DefineComponent<{
4
+ /**
5
+ * The category axis label.
6
+ */
7
+ categoryLabel: {
8
+ type: PropType<string | undefined>;
9
+ };
10
+ /**
11
+ * The maximum number of ticks to show on the category axis.
12
+ */
13
+ categoryMaxTickCount: {
14
+ type: PropType<number | undefined>;
15
+ };
16
+ /**
17
+ * Whether to show the category axis grid lines. Hidden by default.
18
+ */
19
+ categoryShowGridLines: {
20
+ type: PropType<boolean | undefined>;
21
+ };
22
+ /**
23
+ * The CSS style string to set the height of the doughnut chart component.
24
+ * - Accepts any valid CSS height value (e.g., "400px", "50vh") or undefined.
25
+ * - Value defaults to "100%" if undefined.
26
+ */
27
+ height: {
28
+ type: PropType<string | undefined>;
29
+ default: string;
30
+ };
31
+ /**
32
+ * Whether the legend is hidden.
33
+ */
34
+ hideLegend: {
35
+ type: PropType<boolean | undefined>;
36
+ };
37
+ /**
38
+ * The format to use for the date labels.
39
+ *
40
+ * When set, `labels` is treated as an array of ISO date strings.
41
+ */
42
+ labelDateFormat: {
43
+ type: PropType<LabelDateFormat | undefined>;
44
+ };
45
+ /**
46
+ * When supplying date strings, they MUST be in ISO format and you MUST set `labelDateFormat`.
47
+ */
48
+ labels: {
49
+ type: PropType<string[]>;
50
+ required: true;
51
+ };
52
+ /**
53
+ * The alignment of the legend in the chart.
54
+ */
55
+ legendAlign: {
56
+ type: PropType<LegendAlign | null | undefined>;
57
+ };
58
+ /**
59
+ * The position of the legend in the chart.
60
+ */
61
+ legendPosition: {
62
+ type: PropType<LegendPosition | undefined>;
63
+ };
64
+ /**
65
+ * Whether the chart has linear connections between data points.
66
+ *
67
+ * The per series property, `props.data[n].isLinear`, overrides this setting.
68
+ */
69
+ linear: {
70
+ type: PropType<boolean | undefined>;
71
+ };
72
+ /**
73
+ * The line style to use for the chart.
74
+ *
75
+ * The per series property, `props.data[n].lineStyle`, overrides this setting.
76
+ */
77
+ lineStyle: {
78
+ type: PropType<LineStyle | undefined>;
79
+ };
80
+ /**
81
+ * The series data to display in the chart.
82
+ */
83
+ series: {
84
+ type: PropType<DoughnutSeries[]>;
85
+ required: true;
86
+ };
87
+ /**
88
+ * Whether the chart has stacked lines.
89
+ */
90
+ stack: {
91
+ type: PropType<boolean | undefined>;
92
+ };
93
+ /**
94
+ * The title of the chart.
95
+ */
96
+ title: {
97
+ type: PropType<string | undefined>;
98
+ };
99
+ /**
100
+ * The tooltip formatter function.
101
+ */
102
+ tooltip: {
103
+ type: PropType<TooltipCallback | undefined>;
104
+ };
105
+ /**
106
+ * The tooltip title formatter function.
107
+ */
108
+ tooltipTitle: {
109
+ type: PropType<TooltipCallback | undefined>;
110
+ };
111
+ /**
112
+ * The type of data represented in the chart.
113
+ *
114
+ * For "percent", the data MUST be in decimal form (e.g., 0.1 for 10%).
115
+ */
116
+ type: {
117
+ type: PropType<"number" | "percent">;
118
+ default: string;
119
+ };
120
+ /**
121
+ * Whether the chart has unfilled areas.
122
+ *
123
+ * The per series property, `props.data[n].isUnfilled`, overrides this setting.
124
+ */
125
+ unfilled: {
126
+ type: PropType<boolean | undefined>;
127
+ };
128
+ /**
129
+ * Whether to hide the value axis grid lines. Shown by default.
130
+ */
131
+ valueHideGridLines: {
132
+ type: PropType<boolean | undefined>;
133
+ };
134
+ /**
135
+ * The value axis label.
136
+ */
137
+ valueLabel: {
138
+ type: PropType<string | undefined>;
139
+ };
140
+ /**
141
+ * The maximum number of ticks to show on the value axis.
142
+ */
143
+ valueMaxTickCount: {
144
+ type: PropType<number | undefined>;
145
+ };
146
+ /**
147
+ * The minimum value to display in the value axis if there is nothing lower.
148
+ *
149
+ * This is useful for controlling the starting point of the value axis.
150
+ * The actual minimum value will be used if there is a lower value present.
151
+ */
152
+ valueSuggestedMin: {
153
+ type: PropType<number | undefined>;
154
+ };
155
+ /**
156
+ * The maximum value to display in the value axis if there is nothing higher.
157
+ *
158
+ * This is useful for controlling the ending point of the value axis.
159
+ * The actual maximum value will be used if there is a higher value present.
160
+ */
161
+ valueSuggestedMax: {
162
+ type: PropType<number | undefined>;
163
+ };
164
+ /**
165
+ * The number of ticks to show on the value axis.
166
+ *
167
+ * This overrides `valueMaxTickCount`.
168
+ */
169
+ valueTickCount: {
170
+ type: PropType<number | undefined>;
171
+ };
172
+ /**
173
+ * The CSS style string to set the width of the doughnut chart component.
174
+ * - Accepts any valid CSS width value (e.g., "600px", "100%") or undefined.
175
+ * - Value defaults to "100%" if undefined.
176
+ */
177
+ width: {
178
+ type: PropType<string | undefined>;
179
+ default: string;
180
+ };
181
+ }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
182
+ /**
183
+ * The category axis label.
184
+ */
185
+ categoryLabel: {
186
+ type: PropType<string | undefined>;
187
+ };
188
+ /**
189
+ * The maximum number of ticks to show on the category axis.
190
+ */
191
+ categoryMaxTickCount: {
192
+ type: PropType<number | undefined>;
193
+ };
194
+ /**
195
+ * Whether to show the category axis grid lines. Hidden by default.
196
+ */
197
+ categoryShowGridLines: {
198
+ type: PropType<boolean | undefined>;
199
+ };
200
+ /**
201
+ * The CSS style string to set the height of the doughnut chart component.
202
+ * - Accepts any valid CSS height value (e.g., "400px", "50vh") or undefined.
203
+ * - Value defaults to "100%" if undefined.
204
+ */
205
+ height: {
206
+ type: PropType<string | undefined>;
207
+ default: string;
208
+ };
209
+ /**
210
+ * Whether the legend is hidden.
211
+ */
212
+ hideLegend: {
213
+ type: PropType<boolean | undefined>;
214
+ };
215
+ /**
216
+ * The format to use for the date labels.
217
+ *
218
+ * When set, `labels` is treated as an array of ISO date strings.
219
+ */
220
+ labelDateFormat: {
221
+ type: PropType<LabelDateFormat | undefined>;
222
+ };
223
+ /**
224
+ * When supplying date strings, they MUST be in ISO format and you MUST set `labelDateFormat`.
225
+ */
226
+ labels: {
227
+ type: PropType<string[]>;
228
+ required: true;
229
+ };
230
+ /**
231
+ * The alignment of the legend in the chart.
232
+ */
233
+ legendAlign: {
234
+ type: PropType<LegendAlign | null | undefined>;
235
+ };
236
+ /**
237
+ * The position of the legend in the chart.
238
+ */
239
+ legendPosition: {
240
+ type: PropType<LegendPosition | undefined>;
241
+ };
242
+ /**
243
+ * Whether the chart has linear connections between data points.
244
+ *
245
+ * The per series property, `props.data[n].isLinear`, overrides this setting.
246
+ */
247
+ linear: {
248
+ type: PropType<boolean | undefined>;
249
+ };
250
+ /**
251
+ * The line style to use for the chart.
252
+ *
253
+ * The per series property, `props.data[n].lineStyle`, overrides this setting.
254
+ */
255
+ lineStyle: {
256
+ type: PropType<LineStyle | undefined>;
257
+ };
258
+ /**
259
+ * The series data to display in the chart.
260
+ */
261
+ series: {
262
+ type: PropType<DoughnutSeries[]>;
263
+ required: true;
264
+ };
265
+ /**
266
+ * Whether the chart has stacked lines.
267
+ */
268
+ stack: {
269
+ type: PropType<boolean | undefined>;
270
+ };
271
+ /**
272
+ * The title of the chart.
273
+ */
274
+ title: {
275
+ type: PropType<string | undefined>;
276
+ };
277
+ /**
278
+ * The tooltip formatter function.
279
+ */
280
+ tooltip: {
281
+ type: PropType<TooltipCallback | undefined>;
282
+ };
283
+ /**
284
+ * The tooltip title formatter function.
285
+ */
286
+ tooltipTitle: {
287
+ type: PropType<TooltipCallback | undefined>;
288
+ };
289
+ /**
290
+ * The type of data represented in the chart.
291
+ *
292
+ * For "percent", the data MUST be in decimal form (e.g., 0.1 for 10%).
293
+ */
294
+ type: {
295
+ type: PropType<"number" | "percent">;
296
+ default: string;
297
+ };
298
+ /**
299
+ * Whether the chart has unfilled areas.
300
+ *
301
+ * The per series property, `props.data[n].isUnfilled`, overrides this setting.
302
+ */
303
+ unfilled: {
304
+ type: PropType<boolean | undefined>;
305
+ };
306
+ /**
307
+ * Whether to hide the value axis grid lines. Shown by default.
308
+ */
309
+ valueHideGridLines: {
310
+ type: PropType<boolean | undefined>;
311
+ };
312
+ /**
313
+ * The value axis label.
314
+ */
315
+ valueLabel: {
316
+ type: PropType<string | undefined>;
317
+ };
318
+ /**
319
+ * The maximum number of ticks to show on the value axis.
320
+ */
321
+ valueMaxTickCount: {
322
+ type: PropType<number | undefined>;
323
+ };
324
+ /**
325
+ * The minimum value to display in the value axis if there is nothing lower.
326
+ *
327
+ * This is useful for controlling the starting point of the value axis.
328
+ * The actual minimum value will be used if there is a lower value present.
329
+ */
330
+ valueSuggestedMin: {
331
+ type: PropType<number | undefined>;
332
+ };
333
+ /**
334
+ * The maximum value to display in the value axis if there is nothing higher.
335
+ *
336
+ * This is useful for controlling the ending point of the value axis.
337
+ * The actual maximum value will be used if there is a higher value present.
338
+ */
339
+ valueSuggestedMax: {
340
+ type: PropType<number | undefined>;
341
+ };
342
+ /**
343
+ * The number of ticks to show on the value axis.
344
+ *
345
+ * This overrides `valueMaxTickCount`.
346
+ */
347
+ valueTickCount: {
348
+ type: PropType<number | undefined>;
349
+ };
350
+ /**
351
+ * The CSS style string to set the width of the doughnut chart component.
352
+ * - Accepts any valid CSS width value (e.g., "600px", "100%") or undefined.
353
+ * - Value defaults to "100%" if undefined.
354
+ */
355
+ width: {
356
+ type: PropType<string | undefined>;
357
+ default: string;
358
+ };
359
+ }>>, {
360
+ type: "number" | "percent";
361
+ width: string | undefined;
362
+ height: string | undefined;
363
+ }, {}>;
364
+ export default _default;
@@ -1,4 +1,5 @@
1
1
  import { PropType } from "vue";
2
+ import { PromiseCompletionSource } from "@Obsidian/Utility/promiseUtils";
2
3
  import { ListItemBag } from "@Obsidian/ViewModels/Utility/listItemBag";
3
4
  type ToolbarConfig = "light" | "full" | "light-compact";
4
5
  declare const _default: import("vue").DefineComponent<{
@@ -134,6 +135,18 @@ declare const _default: import("vue").DefineComponent<{
134
135
  autocommitDelayMs: {
135
136
  type: PropType<number | null | undefined>;
136
137
  };
138
+ /**
139
+ * A request to get the current content from the editor.
140
+ *
141
+ * Useful for scenarios where the latest content is needed on-demand,
142
+ * such as before form submission.
143
+ *
144
+ * This is necessary on iOS Safari if the editor is still focused when the form is submitted,
145
+ * as the editor may not have triggered a change event yet in that case.
146
+ */
147
+ getContentRequest: {
148
+ type: PropType<PromiseCompletionSource<string> | null | undefined>;
149
+ };
137
150
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
138
151
  "update:modelValue": (value: string) => void;
139
152
  "update:isInCodeEditorMode": (value: boolean) => void;
@@ -270,6 +283,18 @@ declare const _default: import("vue").DefineComponent<{
270
283
  autocommitDelayMs: {
271
284
  type: PropType<number | null | undefined>;
272
285
  };
286
+ /**
287
+ * A request to get the current content from the editor.
288
+ *
289
+ * Useful for scenarios where the latest content is needed on-demand,
290
+ * such as before form submission.
291
+ *
292
+ * This is necessary on iOS Safari if the editor is still focused when the form is submitted,
293
+ * as the editor may not have triggered a change event yet in that case.
294
+ */
295
+ getContentRequest: {
296
+ type: PropType<PromiseCompletionSource<string> | null | undefined>;
297
+ };
273
298
  }>> & {
274
299
  "onUpdate:modelValue"?: ((value: string) => any) | undefined;
275
300
  "onUpdate:isInCodeEditorMode"?: ((value: boolean) => any) | undefined;
@@ -108,6 +108,12 @@ export type PieSeries = {
108
108
  data: number[];
109
109
  colors?: string[] | undefined;
110
110
  };
111
+ /** Represents a doughnut chart series where each data + color combination is a slice of the doughnut. */
112
+ export type DoughnutSeries = {
113
+ label: string;
114
+ data: number[];
115
+ colors?: string[] | undefined;
116
+ };
111
117
  export declare class XYPointEnumerable extends Enumerable<XYPoint> {
112
118
  /**
113
119
  * Creates an XYPointEnumerable from a regular iterable (e.g., Array, Set).