@getdom/studio 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +52 -0
- package/package.json +1 -1
- package/src/pages/_layout/componentCatalog.generated.js +114 -12
- package/src/pages/forms/_shared/DomOptionStatus.vue +18 -0
- package/src/pages/forms/_shared/useOptionMenu.js +18 -2
- package/src/pages/forms/_shared/useOptionPaging.js +42 -0
- package/src/pages/forms/_shared/useSelectedOptions.js +25 -0
- package/src/pages/forms/autocomplete/DomAutocomplete.vue +36 -8
- package/src/pages/forms/combobox/DomCombobox.vue +44 -7
- package/src/pages/forms/font-picker/DomFontPicker.vue +416 -0
- package/src/pages/forms/font-picker/FontPreview.vue +39 -0
- package/src/pages/forms/font-picker/fontPicker.js +102 -0
- package/src/pages/forms/font-picker/googleFonts.js +1951 -0
- package/src/pages/forms/select/DomSelect.vue +118 -29
- package/src/pages/forms/tag-combobox/DomTagCombobox.vue +67 -15
- package/src/pages/lib/headless/autocomplete.js +5 -0
- package/src/pages/lib/headless/combobox.js +129 -25
- package/src/pages/lib/headless/dropdown.js +3 -2
- package/src/pages/lib/headless/listbox.d.ts +1 -0
- package/src/pages/lib/headless/listbox.js +41 -5
- package/src/pages/lib/vue/index.d.ts +133 -3
- package/src/pages/lib/vue/index.js +1 -0
|
@@ -248,6 +248,14 @@ export interface IconSelectorItem {
|
|
|
248
248
|
component?: DomVueComponent;
|
|
249
249
|
[key: string]: unknown;
|
|
250
250
|
}
|
|
251
|
+
export interface FontPickerItem {
|
|
252
|
+
family: string;
|
|
253
|
+
value?: string;
|
|
254
|
+
label?: string;
|
|
255
|
+
category?: 'sans-serif' | 'serif' | 'display' | 'handwriting' | 'monospace' | string;
|
|
256
|
+
keywords?: string | Array<string>;
|
|
257
|
+
[key: string]: unknown;
|
|
258
|
+
}
|
|
251
259
|
/** A contained menu page, route link, or application-owned action. */
|
|
252
260
|
export interface MenuStackItem {
|
|
253
261
|
id: string;
|
|
@@ -3331,7 +3339,7 @@ export interface DomAgentConversationProps {
|
|
|
3331
3339
|
*/
|
|
3332
3340
|
toolComponents?: AgentChatToolComponentMap;
|
|
3333
3341
|
/**
|
|
3334
|
-
* CSS max-width applied to message
|
|
3342
|
+
* CSS max-width applied to the centered message column and composer.
|
|
3335
3343
|
*/
|
|
3336
3344
|
maxMessageWidth?: string;
|
|
3337
3345
|
}
|
|
@@ -4285,7 +4293,7 @@ export interface DomSelectProps {
|
|
|
4285
4293
|
/**
|
|
4286
4294
|
* Selected option value.
|
|
4287
4295
|
*/
|
|
4288
|
-
modelValue?: string | number
|
|
4296
|
+
modelValue?: string | number | Array<string | number>;
|
|
4289
4297
|
/**
|
|
4290
4298
|
* Optional ID override. By default parent forms derive the input ID from the field path using underscores.
|
|
4291
4299
|
*/
|
|
@@ -4374,6 +4382,21 @@ export interface DomSelectProps {
|
|
|
4374
4382
|
* Placeholder shown inside the panel search input.
|
|
4375
4383
|
*/
|
|
4376
4384
|
searchPlaceholder?: string;
|
|
4385
|
+
/**
|
|
4386
|
+
* Toggle multiple values without closing the panel. Use an array v-model.
|
|
4387
|
+
*/
|
|
4388
|
+
multiple?: boolean | string;
|
|
4389
|
+
/**
|
|
4390
|
+
* Disable local filtering for server-ranked options.
|
|
4391
|
+
*/
|
|
4392
|
+
filterOptions?: boolean | string;
|
|
4393
|
+
loading?: boolean | string;
|
|
4394
|
+
hasMore?: boolean | string;
|
|
4395
|
+
/**
|
|
4396
|
+
* Resolved records for initial values outside the currently loaded server page.
|
|
4397
|
+
*/
|
|
4398
|
+
selectedOptions?: Array<DomOption>;
|
|
4399
|
+
clearable?: boolean | string;
|
|
4377
4400
|
}
|
|
4378
4401
|
export declare const DomSelect: DomComponent<DomSelectProps>;
|
|
4379
4402
|
|
|
@@ -4458,6 +4481,9 @@ export interface DomComboboxProps {
|
|
|
4458
4481
|
* Show an inline spinner while async options are being fetched.
|
|
4459
4482
|
*/
|
|
4460
4483
|
loading?: boolean | string;
|
|
4484
|
+
filterOptions?: boolean | string;
|
|
4485
|
+
hasMore?: boolean | string;
|
|
4486
|
+
selectedOptions?: Array<DomOption>;
|
|
4461
4487
|
}
|
|
4462
4488
|
export declare const DomCombobox: DomComponent<DomComboboxProps>;
|
|
4463
4489
|
|
|
@@ -4538,6 +4564,8 @@ export interface DomAutocompleteProps {
|
|
|
4538
4564
|
* Show an inline spinner while async suggestions are being fetched.
|
|
4539
4565
|
*/
|
|
4540
4566
|
loading?: boolean | string;
|
|
4567
|
+
filterOptions?: boolean | string;
|
|
4568
|
+
hasMore?: boolean | string;
|
|
4541
4569
|
}
|
|
4542
4570
|
export declare const DomAutocomplete: DomComponent<DomAutocompleteProps>;
|
|
4543
4571
|
|
|
@@ -4545,7 +4573,7 @@ export interface DomTagComboboxProps {
|
|
|
4545
4573
|
/**
|
|
4546
4574
|
* Selected tag values.
|
|
4547
4575
|
*/
|
|
4548
|
-
modelValue?: Array<string>;
|
|
4576
|
+
modelValue?: Array<string | number>;
|
|
4549
4577
|
/**
|
|
4550
4578
|
* Optional ID override. By default parent forms derive the input ID from the field path using underscores.
|
|
4551
4579
|
*/
|
|
@@ -4634,6 +4662,8 @@ export interface DomTagComboboxProps {
|
|
|
4634
4662
|
* Show a clear-all button when tags are selected.
|
|
4635
4663
|
*/
|
|
4636
4664
|
clearable?: boolean | string;
|
|
4665
|
+
hasMore?: boolean | string;
|
|
4666
|
+
selectedOptions?: Array<DomOption>;
|
|
4637
4667
|
}
|
|
4638
4668
|
export declare const DomTagCombobox: DomComponent<DomTagComboboxProps>;
|
|
4639
4669
|
|
|
@@ -4733,6 +4763,106 @@ export interface DomIconSelectorProps {
|
|
|
4733
4763
|
}
|
|
4734
4764
|
export declare const DomIconSelector: DomComponent<DomIconSelectorProps>;
|
|
4735
4765
|
|
|
4766
|
+
export interface DomFontPickerProps {
|
|
4767
|
+
/**
|
|
4768
|
+
* Selected font family or application-defined font value.
|
|
4769
|
+
*/
|
|
4770
|
+
modelValue?: string;
|
|
4771
|
+
/**
|
|
4772
|
+
* Optional ID override. By default parent forms derive the input ID from the field path using underscores.
|
|
4773
|
+
*/
|
|
4774
|
+
id?: string;
|
|
4775
|
+
/**
|
|
4776
|
+
* Local field name. Parent forms derive the full field path and native HTML name from the form hierarchy.
|
|
4777
|
+
*/
|
|
4778
|
+
name?: string;
|
|
4779
|
+
/**
|
|
4780
|
+
* Visible field label.
|
|
4781
|
+
*/
|
|
4782
|
+
label?: string;
|
|
4783
|
+
/**
|
|
4784
|
+
* Optional helper copy below the field.
|
|
4785
|
+
*/
|
|
4786
|
+
description?: string;
|
|
4787
|
+
/**
|
|
4788
|
+
* Placeholder shown when the control is empty.
|
|
4789
|
+
*/
|
|
4790
|
+
placeholder?: string;
|
|
4791
|
+
/**
|
|
4792
|
+
* Mark the field as required.
|
|
4793
|
+
*/
|
|
4794
|
+
required?: boolean;
|
|
4795
|
+
/**
|
|
4796
|
+
* Disable field interaction.
|
|
4797
|
+
*/
|
|
4798
|
+
disabled?: boolean;
|
|
4799
|
+
/**
|
|
4800
|
+
* Show the value but prevent editing.
|
|
4801
|
+
*/
|
|
4802
|
+
readOnly?: boolean;
|
|
4803
|
+
/**
|
|
4804
|
+
* Mark the field invalid.
|
|
4805
|
+
*/
|
|
4806
|
+
invalid?: boolean;
|
|
4807
|
+
/**
|
|
4808
|
+
* Validation errors for this field.
|
|
4809
|
+
*/
|
|
4810
|
+
errors?: Array<unknown> | Record<string, unknown> | string;
|
|
4811
|
+
/**
|
|
4812
|
+
* Show or hide the field.
|
|
4813
|
+
*/
|
|
4814
|
+
visible?: boolean;
|
|
4815
|
+
/**
|
|
4816
|
+
* Validators attached to this field. Use functions in Vue code, or serializable records such as { name: "minLength", props: { min: 2 } } in generated schemas.
|
|
4817
|
+
*/
|
|
4818
|
+
validators?: Array<unknown>;
|
|
4819
|
+
/**
|
|
4820
|
+
* Run validators when the field loses focus.
|
|
4821
|
+
*/
|
|
4822
|
+
validateOnBlur?: boolean;
|
|
4823
|
+
/**
|
|
4824
|
+
* Render default field chrome, or hide chrome while keeping form state wiring.
|
|
4825
|
+
*/
|
|
4826
|
+
chrome?: "field" | "none" | false;
|
|
4827
|
+
/**
|
|
4828
|
+
* Lightweight family metadata. Font files are never bundled in this array.
|
|
4829
|
+
*/
|
|
4830
|
+
fonts?: Array<FontPickerItem | string>;
|
|
4831
|
+
/**
|
|
4832
|
+
* Optionally restrict results to one Google Fonts category.
|
|
4833
|
+
*/
|
|
4834
|
+
category?: "" | "sans-serif" | "serif" | "display" | "handwriting" | "monospace";
|
|
4835
|
+
/**
|
|
4836
|
+
* Number of metadata rows appended near the end. Preview fonts load only near the viewport.
|
|
4837
|
+
*/
|
|
4838
|
+
pageSize?: number;
|
|
4839
|
+
/**
|
|
4840
|
+
* Optional shared sample. Empty uses each family name as its own preview.
|
|
4841
|
+
*/
|
|
4842
|
+
previewText?: string;
|
|
4843
|
+
/**
|
|
4844
|
+
* Load the mounted selected label and visible previews from Google Fonts.
|
|
4845
|
+
*/
|
|
4846
|
+
loadFonts?: boolean;
|
|
4847
|
+
/**
|
|
4848
|
+
* Google Fonts CSS v2 endpoint or an application-controlled compatible proxy.
|
|
4849
|
+
*/
|
|
4850
|
+
stylesheetUrl?: string;
|
|
4851
|
+
/**
|
|
4852
|
+
* Show a clear button after a font is selected.
|
|
4853
|
+
*/
|
|
4854
|
+
clearable?: boolean;
|
|
4855
|
+
/**
|
|
4856
|
+
* Preferred side before collision handling.
|
|
4857
|
+
*/
|
|
4858
|
+
placement?: "bottom" | "top" | "right" | "left";
|
|
4859
|
+
/**
|
|
4860
|
+
* viewport keeps the list inside the browser; anchor keeps it attached while scrolling.
|
|
4861
|
+
*/
|
|
4862
|
+
floatingMode?: "viewport" | "anchor";
|
|
4863
|
+
}
|
|
4864
|
+
export declare const DomFontPicker: DomComponent<DomFontPickerProps>;
|
|
4865
|
+
|
|
4736
4866
|
export interface DomClassToggleInputProps {
|
|
4737
4867
|
/**
|
|
4738
4868
|
* Enabled class names as a space-separated string.
|
|
@@ -130,6 +130,7 @@ export { default as DomCombobox } from '../../forms/combobox/DomCombobox.vue';
|
|
|
130
130
|
export { default as DomAutocomplete } from '../../forms/autocomplete/DomAutocomplete.vue';
|
|
131
131
|
export { default as DomTagCombobox } from '../../forms/tag-combobox/DomTagCombobox.vue';
|
|
132
132
|
export { default as DomIconSelector } from '../../forms/icon-selector/DomIconSelector.vue';
|
|
133
|
+
export { default as DomFontPicker } from '../../forms/font-picker/DomFontPicker.vue';
|
|
133
134
|
export { default as DomClassToggleInput } from '../../forms/class-toggle-input/DomClassToggleInput.vue';
|
|
134
135
|
export { default as DomField } from '../../forms/field/DomField.vue';
|
|
135
136
|
export { default as DomGridFieldLayout } from '../../forms/field/layouts/DomGridFieldLayout.vue';
|