@openreachtech/furo-vue 1.3.1 → 1.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 (68) hide show
  1. package/LICENSE +197 -5
  2. package/README.ja.md +1 -1
  3. package/README.md +1 -1
  4. package/lib/assets/css/furo/0035.variables-semantic-dimension.css +4 -1
  5. package/lib/components/atoms/FuroButton/FuroButton.vue +9 -2
  6. package/lib/components/atoms/FuroButton/FuroButtonContext.js +1 -1
  7. package/lib/components/atoms/FuroCheckbox/FuroCheckboxContext.js +3 -3
  8. package/lib/components/atoms/FuroFileField/FuroFileFieldContext.js +1 -1
  9. package/lib/components/atoms/FuroRadio/FuroRadio.vue +1 -1
  10. package/lib/components/atoms/FuroRadio/FuroRadioContext.js +2 -2
  11. package/lib/components/atoms/FuroSwitch/FuroSwitch.vue +1 -1
  12. package/lib/components/atoms/FuroSwitch/FuroSwitchContext.js +2 -2
  13. package/lib/components/atoms/FuroTextarea/FuroTextareaContext.js +3 -3
  14. package/lib/components/atoms/FuroToggle/FuroToggle.vue +1 -1
  15. package/lib/components/atoms/FuroToggle/FuroToggleContext.js +2 -2
  16. package/lib/components/molecules/FuroAccordion/FuroAccordion.vue +1 -1
  17. package/lib/components/molecules/FuroAccordion/FuroAccordionContext.js +2 -2
  18. package/lib/components/molecules/FuroAttachment/FuroAttachmentContext.js +2 -2
  19. package/lib/components/molecules/FuroAutocompleteField/FuroAutocompleteField.vue +9 -0
  20. package/lib/components/molecules/FuroAutocompleteField/FuroAutocompleteFieldContext.js +34 -7
  21. package/lib/components/molecules/FuroBreadcrumb/FuroBreadcrumb.vue +1 -1
  22. package/lib/components/molecules/FuroCollapsible/FuroCollapsible.vue +1 -1
  23. package/lib/components/molecules/FuroCollapsible/FuroCollapsibleContext.js +2 -2
  24. package/lib/components/molecules/FuroDatePicker/FuroDatePicker.vue +6 -6
  25. package/lib/components/molecules/FuroDatePicker/FuroDatePickerContext.js +3 -3
  26. package/lib/components/molecules/FuroDateTimePicker/FuroDateTimePickerContext.js +3 -3
  27. package/lib/components/molecules/FuroDropdownMenu/FuroDropdownMenu.vue +1 -1
  28. package/lib/components/molecules/FuroDropdownMenu/FuroDropdownMenuContext.js +3 -3
  29. package/lib/components/molecules/FuroEditableField/FuroEditableField.vue +2 -0
  30. package/lib/components/molecules/FuroEditableField/FuroEditableFieldContext.js +2 -2
  31. package/lib/components/molecules/FuroPagination/FuroPagination.vue +2 -2
  32. package/lib/components/molecules/FuroPagination/FuroPaginationContext.js +2 -2
  33. package/lib/components/molecules/FuroPopover/FuroPopover.vue +3 -2
  34. package/lib/components/molecules/FuroPopover/FuroPopoverContext.js +1 -1
  35. package/lib/components/molecules/FuroSelect/FuroSelectContext.js +3 -3
  36. package/lib/components/molecules/FuroSkeleton/FuroSkeleton.vue +17 -7
  37. package/lib/components/molecules/FuroSkeleton/FuroSkeletonContext.js +2 -2
  38. package/lib/components/molecules/FuroSplitter/FuroSplitter.vue +1 -1
  39. package/lib/components/molecules/FuroSplitter/FuroSplitterContext.js +2 -2
  40. package/lib/components/molecules/FuroTimeField/FuroTimeField.vue +1 -1
  41. package/lib/components/molecules/FuroTimeField/FuroTimeFieldContext.js +3 -3
  42. package/lib/components/molecules/FuroToggleGroup/FuroToggleGroup.vue +2 -2
  43. package/lib/components/molecules/FuroToggleGroup/FuroToggleGroupContext.js +2 -2
  44. package/lib/components/molecules/FuroTooltip/FuroTooltip.vue +1 -1
  45. package/lib/components/molecules/FuroTooltip/FuroTooltipContext.js +1 -1
  46. package/lib/components/organisms/FuroAlertDialog/FuroAlertDialog.vue +2 -1
  47. package/lib/components/organisms/FuroAlertDialog/FuroAlertDialogContext.js +17 -4
  48. package/lib/components/organisms/FuroDialog/FuroDialog.vue +3 -2
  49. package/lib/components/organisms/FuroDialog/FuroDialogContext.js +15 -2
  50. package/lib/components/organisms/FuroDrawer/FuroDrawer.vue +2 -2
  51. package/lib/components/organisms/FuroDrawer/FuroDrawerContext.js +4 -4
  52. package/lib/components/organisms/FuroEditor/FuroEditor.vue +1 -1
  53. package/lib/components/organisms/FuroSidebar/FuroSidebar.vue +2 -2
  54. package/lib/components/organisms/FuroStepper/FuroStepper.vue +1 -1
  55. package/lib/components/organisms/FuroStepper/FuroStepperContext.js +2 -2
  56. package/lib/components/organisms/FuroTable/FuroTable.vue +6 -5
  57. package/lib/components/organisms/FuroTable/FuroTableContext.js +6 -6
  58. package/lib/components/organisms/FuroTabs/FuroTabs.vue +3 -3
  59. package/lib/components/organisms/FuroTabs/FuroTabsContext.js +2 -2
  60. package/lib/components/organisms/FuroToast/FuroToast.vue +2 -2
  61. package/lib/components/organisms/FuroToast/FuroToastContext.js +2 -2
  62. package/package.json +13 -12
  63. package/public/furo-vue/components.json +11 -4
  64. package/types/generated/components/molecules/FuroAutocompleteField/FuroAutocompleteField.vue.d.ts +3 -0
  65. package/types/generated/components/molecules/FuroAutocompleteField/FuroAutocompleteFieldContext.d.ts +18 -0
  66. package/types/generated/components/molecules/FuroSkeleton/FuroSkeletonContext.d.ts +2 -2
  67. package/types/generated/components/organisms/FuroAlertDialog/FuroAlertDialogContext.d.ts +6 -0
  68. package/types/generated/components/organisms/FuroDialog/FuroDialogContext.d.ts +6 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "library": "@openreachtech/furo-vue",
3
- "version": "1.3.1",
3
+ "version": "1.4.0",
4
4
  "generatedFrom": "app/docs/component-registry.js",
5
5
  "layers": [
6
6
  "foundation",
@@ -1097,7 +1097,13 @@
1097
1097
  "name": "parcel",
1098
1098
  "type": "FuroAutocompleteFieldParcel | null",
1099
1099
  "default": "null",
1100
- "description": "Furo behavior. The only public prop; HTML / form attributes pass through to the root."
1100
+ "description": "Furo behavior. HTML attributes such as class and style pass through to the root wrapper."
1101
+ },
1102
+ {
1103
+ "name": "inputParcel",
1104
+ "type": "FuroAutocompleteFieldInputParcel | null",
1105
+ "default": "null",
1106
+ "description": "Attributes bound onto the inner combobox input (id, name, aria-label, aria-labelledby, aria-describedby, required). Use it to give the combobox an accessible name and to target it from a label."
1101
1107
  }
1102
1108
  ],
1103
1109
  "parcel": [
@@ -1322,6 +1328,7 @@
1322
1328
  "Debounced search-keyword emit (default 300ms) using TimerClerk, fired only while the popover is open.",
1323
1329
  "Loading, invalid, disabled, and multiple states drive the trigger UI and visible list.",
1324
1330
  "Creatable rows surface a create option when the trimmed keyword has no exact match; the parent owns appending it.",
1331
+ "inputParcel binds id, name and aria-* onto the inner combobox input, so a label or an aria attribute can name the real control.",
1325
1332
  "Rich slot surface for trigger, group, option, indicator, separator, empty, loading, and create-option states."
1326
1333
  ]
1327
1334
  },
@@ -2775,7 +2782,7 @@
2775
2782
  "name": "animated",
2776
2783
  "type": "boolean",
2777
2784
  "default": "true",
2778
- "description": "When true, the placeholder pulses. Reduced-motion users always see a static placeholder."
2785
+ "description": "When true, the placeholder shimmers. Reduced-motion users always see a static placeholder."
2779
2786
  }
2780
2787
  ],
2781
2788
  "events": [],
@@ -2784,7 +2791,7 @@
2784
2791
  "Presentational loading placeholder shown while real content is fetching.",
2785
2792
  "Three shape variants — text (default), circle, and rectangle — mapped without JS branching.",
2786
2793
  "Optional width and height overrides accept any CSS length via custom properties.",
2787
- "Pulse animation signals the loading state and pauses for reduced-motion users.",
2794
+ "Shimmer animation signals the loading state and pauses for reduced-motion users.",
2788
2795
  "Carries no value, emits nothing, and is hidden from assistive tech."
2789
2796
  ]
2790
2797
  },
@@ -189,6 +189,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
189
189
  onTransitionrun?: (payload: TransitionEvent) => void;
190
190
  onTransitionstart?: (payload: TransitionEvent) => void;
191
191
  parcel?: import("./FuroAutocompleteFieldContext.js").FuroAutocompleteFieldParcel | null;
192
+ inputParcel?: import("./FuroAutocompleteFieldContext.js").FuroAutocompleteFieldInputParcel | null;
192
193
  }, {
193
194
  context: FuroAutocompleteFieldContext;
194
195
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
@@ -390,6 +391,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
390
391
  onTransitionrun?: (payload: TransitionEvent) => void;
391
392
  onTransitionstart?: (payload: TransitionEvent) => void;
392
393
  parcel?: import("./FuroAutocompleteFieldContext.js").FuroAutocompleteFieldParcel | null;
394
+ inputParcel?: import("./FuroAutocompleteFieldContext.js").FuroAutocompleteFieldInputParcel | null;
393
395
  }> & Readonly<{
394
396
  "onChange-value"?: (payload: import("./AutocompleteEmitPayload.js").default) => any;
395
397
  "onUpdate:value"?: (value: import("./AutocompleteEmitPayload.js").FuroAutocompleteOption) => any;
@@ -402,6 +404,7 @@ declare const __VLS_export: import("vue").DefineComponent<{
402
404
  "onUpdate:open"?: (isOpen: boolean) => any;
403
405
  }>, {
404
406
  parcel: import("./FuroAutocompleteFieldContext.js").FuroAutocompleteFieldParcel;
407
+ inputParcel: import("./FuroAutocompleteFieldContext.js").FuroAutocompleteFieldInputParcel;
405
408
  }, FuroAutocompleteFieldSlots, {
406
409
  ComboboxRoot: <T extends import("reka-ui").AcceptableValue = import("reka-ui").AcceptableValue>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: {
407
410
  attrs: any;
@@ -131,6 +131,12 @@ export default class FuroAutocompleteFieldContext extends BaseFuroContext<null,
131
131
  * @returns {import('vue').Ref<boolean>}
132
132
  */
133
133
  get internalOpenPopoverRef(): import("vue").Ref<boolean>;
134
+ /**
135
+ * get: attributes bound onto the inner combobox input.
136
+ *
137
+ * @returns {Props['inputParcel']}
138
+ */
139
+ get inputParcel(): Props["inputParcel"];
134
140
  /**
135
141
  * Get loading.
136
142
  *
@@ -609,6 +615,12 @@ export default class FuroAutocompleteFieldContext extends BaseFuroContext<null,
609
615
  * @returns {string}
610
616
  */
611
617
  extractPlaceholderText(): string;
618
+ /**
619
+ * Extract the attributes bound onto the inner combobox input.
620
+ *
621
+ * @returns {Props['inputParcel']}
622
+ */
623
+ extractInputAttributes(): Props["inputParcel"];
612
624
  }
613
625
  export type FuroAutocompleteFieldContextParams = import("../../../contexts/BaseFuroContext.js").BaseFuroContextParams & {
614
626
  props: Props;
@@ -629,7 +641,13 @@ export type EmitEventName = keyof typeof FuroAutocompleteFieldContext.EMIT_EVENT
629
641
  export type FuroAcceptableValue = string | number | bigint | Record<string, unknown> | null;
630
642
  export type Props = import("vue").HTMLAttributes & {
631
643
  parcel?: FuroAutocompleteFieldParcel | null;
644
+ inputParcel?: FuroAutocompleteFieldInputParcel | null;
632
645
  };
646
+ /**
647
+ * Attributes for the inner `<input role="combobox">` (`id`, `name`, `aria-*`, `required`, …).
648
+ * The component keeps `placeholder`, the display text and the search keyword for itself.
649
+ */
650
+ export type FuroAutocompleteFieldInputParcel = Omit<import("vue").InputHTMLAttributes, "placeholder" | "value">;
633
651
  /**
634
652
  * Closed-set Furo behavior for `<FuroAutocompleteField>`.
635
653
  * JSON-serializable only. Not an open passthrough to the internal combobox library.
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Presentational loading placeholder shown while real content is fetching.
5
5
  * Carries no value and emits nothing — shape comes from the variant, size from
6
- * optional width / height, and a pulse animation signals the loading state.
6
+ * optional width / height, and a shimmer animation signals the loading state.
7
7
  *
8
8
  * @extends {BaseFuroContext<null, Props, null>}
9
9
  */
@@ -43,7 +43,7 @@ export default class FuroSkeletonContext extends BaseFuroContext<null, Props, nu
43
43
  "--furo-skeleton-height": string | null;
44
44
  };
45
45
  /**
46
- * Whether the pulse animation runs. Reduced-motion users still get a static
46
+ * Whether the shimmer animation runs. Reduced-motion users still get a static
47
47
  * placeholder via the CSS media query.
48
48
  *
49
49
  * @returns {boolean} true when animated; defaults to true.
@@ -126,6 +126,12 @@ export default class FuroAlertDialogContext extends BaseFuroContext<null, Props,
126
126
  * @returns {Record<string, boolean>}
127
127
  */
128
128
  extractContentClassNames(): Record<string, boolean>;
129
+ /**
130
+ * Extract attributes forwarded to the content element.
131
+ *
132
+ * @returns {Record<string, undefined>} `aria-describedby` cleared when no description renders.
133
+ */
134
+ extractContentAttributes(): Record<string, undefined>;
129
135
  /**
130
136
  * CSS selector (scoped to dialog content) for the element to focus on open.
131
137
  *
@@ -124,6 +124,12 @@ export default class FuroDialogContext extends BaseFuroContext<null, Props, "UPD
124
124
  * @returns {Record<string, boolean>}
125
125
  */
126
126
  extractContentClassNames(): Record<string, boolean>;
127
+ /**
128
+ * Extract attributes forwarded to the content element.
129
+ *
130
+ * @returns {Record<string, undefined>} `aria-describedby` cleared when no description renders.
131
+ */
132
+ extractContentAttributes(): Record<string, undefined>;
127
133
  /**
128
134
  * CSS selector (scoped to dialog content) for the element to focus on open.
129
135
  *