@openreachtech/furo-vue 1.3.1

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 (310) hide show
  1. package/LICENSE +9 -0
  2. package/README.ja.md +334 -0
  3. package/README.md +333 -0
  4. package/index.js +11 -0
  5. package/lib/assets/css/furo/0010.variables-palette-color-scale.css +298 -0
  6. package/lib/assets/css/furo/0020.variables-z-index.css +10 -0
  7. package/lib/assets/css/furo/0030.variables-semantic-color.css +178 -0
  8. package/lib/assets/css/furo/0035.variables-semantic-dimension.css +104 -0
  9. package/lib/assets/css/furo/0040.variables-component-furo.css +28 -0
  10. package/lib/assets/css/furo/0050.furo-editor-content.css +22 -0
  11. package/lib/assets/css/furo.css +15 -0
  12. package/lib/components/atoms/FuroAvatar/FuroAvatar.vue +135 -0
  13. package/lib/components/atoms/FuroAvatar/FuroAvatarContext.js +147 -0
  14. package/lib/components/atoms/FuroBadge/FuroBadge.vue +240 -0
  15. package/lib/components/atoms/FuroBadge/FuroBadgeContext.js +298 -0
  16. package/lib/components/atoms/FuroButton/ButtonEmitPayload.js +44 -0
  17. package/lib/components/atoms/FuroButton/FuroButton.vue +301 -0
  18. package/lib/components/atoms/FuroButton/FuroButtonContext.js +328 -0
  19. package/lib/components/atoms/FuroCheckbox/CheckboxEmitPayload.js +106 -0
  20. package/lib/components/atoms/FuroCheckbox/FuroCheckbox.vue +173 -0
  21. package/lib/components/atoms/FuroCheckbox/FuroCheckboxContext.js +682 -0
  22. package/lib/components/atoms/FuroEmailField/EmailFieldEmitPayload.js +74 -0
  23. package/lib/components/atoms/FuroEmailField/FuroEmailField.vue +119 -0
  24. package/lib/components/atoms/FuroEmailField/FuroEmailFieldContext.js +311 -0
  25. package/lib/components/atoms/FuroFileField/FileFieldEmitPayload.js +80 -0
  26. package/lib/components/atoms/FuroFileField/FuroFileField.vue +128 -0
  27. package/lib/components/atoms/FuroFileField/FuroFileFieldContext.js +195 -0
  28. package/lib/components/atoms/FuroIcon/FuroIcon.vue +74 -0
  29. package/lib/components/atoms/FuroIcon/FuroIconContext.js +293 -0
  30. package/lib/components/atoms/FuroIcon/FuroIconRegistry.js +617 -0
  31. package/lib/components/atoms/FuroIcon/FuroIconifyRendererContext.js +101 -0
  32. package/lib/components/atoms/FuroIcon/furoIconData.js +164 -0
  33. package/lib/components/atoms/FuroIcon/iconRenderers.js +62 -0
  34. package/lib/components/atoms/FuroIcon/icons.js +7 -0
  35. package/lib/components/atoms/FuroNumberField/FuroNumberField.vue +213 -0
  36. package/lib/components/atoms/FuroNumberField/FuroNumberFieldContext.js +442 -0
  37. package/lib/components/atoms/FuroNumberField/NumberFieldEmitPayload.js +162 -0
  38. package/lib/components/atoms/FuroPasswordField/FuroPasswordField.vue +119 -0
  39. package/lib/components/atoms/FuroPasswordField/FuroPasswordFieldContext.js +311 -0
  40. package/lib/components/atoms/FuroPasswordField/PasswordFieldEmitPayload.js +74 -0
  41. package/lib/components/atoms/FuroRadio/FuroRadio.vue +193 -0
  42. package/lib/components/atoms/FuroRadio/FuroRadioContext.js +557 -0
  43. package/lib/components/atoms/FuroRadio/RadioEmitPayload.js +72 -0
  44. package/lib/components/atoms/FuroSwitch/FuroSwitch.vue +165 -0
  45. package/lib/components/atoms/FuroSwitch/FuroSwitchContext.js +440 -0
  46. package/lib/components/atoms/FuroSwitch/SwitchEmitPayload.js +86 -0
  47. package/lib/components/atoms/FuroTextField/FuroTextField.vue +119 -0
  48. package/lib/components/atoms/FuroTextField/FuroTextFieldContext.js +311 -0
  49. package/lib/components/atoms/FuroTextField/TextFieldEmitPayload.js +83 -0
  50. package/lib/components/atoms/FuroTextarea/FuroTextarea.vue +121 -0
  51. package/lib/components/atoms/FuroTextarea/FuroTextareaContext.js +322 -0
  52. package/lib/components/atoms/FuroTextarea/TextareaEmitPayload.js +83 -0
  53. package/lib/components/atoms/FuroToggle/FuroToggle.vue +172 -0
  54. package/lib/components/atoms/FuroToggle/FuroToggleContext.js +410 -0
  55. package/lib/components/atoms/FuroToggle/ToggleEmitPayload.js +86 -0
  56. package/lib/components/molecules/FuroAccordion/AccordionEmitPayload.js +80 -0
  57. package/lib/components/molecules/FuroAccordion/FuroAccordion.vue +219 -0
  58. package/lib/components/molecules/FuroAccordion/FuroAccordionContext.js +547 -0
  59. package/lib/components/molecules/FuroAttachment/FuroAttachment.vue +376 -0
  60. package/lib/components/molecules/FuroAttachment/FuroAttachmentContext.js +628 -0
  61. package/lib/components/molecules/FuroAutocompleteField/AutocompleteEmitPayload.js +225 -0
  62. package/lib/components/molecules/FuroAutocompleteField/FuroAutocompleteField.vue +669 -0
  63. package/lib/components/molecules/FuroAutocompleteField/FuroAutocompleteFieldContext.js +1525 -0
  64. package/lib/components/molecules/FuroAvatarGroup/FuroAvatarGroup.vue +126 -0
  65. package/lib/components/molecules/FuroAvatarGroup/FuroAvatarGroupContext.js +245 -0
  66. package/lib/components/molecules/FuroBreadcrumb/FuroBreadcrumb.vue +219 -0
  67. package/lib/components/molecules/FuroBreadcrumb/FuroBreadcrumbContext.js +257 -0
  68. package/lib/components/molecules/FuroCollapsible/CollapsibleEmitPayload.js +69 -0
  69. package/lib/components/molecules/FuroCollapsible/FuroCollapsible.vue +177 -0
  70. package/lib/components/molecules/FuroCollapsible/FuroCollapsibleContext.js +389 -0
  71. package/lib/components/molecules/FuroControlBlock/FuroControlBlock.vue +149 -0
  72. package/lib/components/molecules/FuroControlBlock/FuroControlBlockContext.js +81 -0
  73. package/lib/components/molecules/FuroDatePicker/DatePickerEmitPayload.js +74 -0
  74. package/lib/components/molecules/FuroDatePicker/FuroDatePicker.vue +661 -0
  75. package/lib/components/molecules/FuroDatePicker/FuroDatePickerContext.js +1038 -0
  76. package/lib/components/molecules/FuroDateTimePicker/DateTimePickerEmitPayload.js +96 -0
  77. package/lib/components/molecules/FuroDateTimePicker/FuroDateTimePicker.vue +153 -0
  78. package/lib/components/molecules/FuroDateTimePicker/FuroDateTimePickerContext.js +840 -0
  79. package/lib/components/molecules/FuroDropdownMenu/DropdownMenuOptionSelectEmitPayload.js +100 -0
  80. package/lib/components/molecules/FuroDropdownMenu/FuroDropdownMenu.vue +348 -0
  81. package/lib/components/molecules/FuroDropdownMenu/FuroDropdownMenuContext.js +714 -0
  82. package/lib/components/molecules/FuroDropdownMenu/FuroDropdownMenuOptionRows.vue +222 -0
  83. package/lib/components/molecules/FuroEditableField/EditableEmitPayload.js +89 -0
  84. package/lib/components/molecules/FuroEditableField/FuroEditableField.vue +314 -0
  85. package/lib/components/molecules/FuroEditableField/FuroEditableFieldContext.js +1018 -0
  86. package/lib/components/molecules/FuroEditableField/processors/EditorCollisionProcessor.js +236 -0
  87. package/lib/components/molecules/FuroEditableField/processors/ObjectProcessor.js +101 -0
  88. package/lib/components/molecules/FuroEmptyState/FuroEmptyState.vue +124 -0
  89. package/lib/components/molecules/FuroEmptyState/FuroEmptyStateContext.js +42 -0
  90. package/lib/components/molecules/FuroErrorState/FuroErrorState.vue +125 -0
  91. package/lib/components/molecules/FuroErrorState/FuroErrorStateContext.js +42 -0
  92. package/lib/components/molecules/FuroPagination/FuroPagination.vue +246 -0
  93. package/lib/components/molecules/FuroPagination/FuroPaginationContext.js +489 -0
  94. package/lib/components/molecules/FuroPopover/FuroPopover.vue +171 -0
  95. package/lib/components/molecules/FuroPopover/FuroPopoverContext.js +279 -0
  96. package/lib/components/molecules/FuroScrollArea/FuroScrollArea.vue +181 -0
  97. package/lib/components/molecules/FuroScrollArea/FuroScrollAreaContext.js +149 -0
  98. package/lib/components/molecules/FuroSearchField/FuroSearchField.vue +155 -0
  99. package/lib/components/molecules/FuroSearchField/FuroSearchFieldContext.js +231 -0
  100. package/lib/components/molecules/FuroSectionHeader/FuroSectionHeader.vue +140 -0
  101. package/lib/components/molecules/FuroSectionHeader/FuroSectionHeaderContext.js +204 -0
  102. package/lib/components/molecules/FuroSelect/FuroSelect.vue +474 -0
  103. package/lib/components/molecules/FuroSelect/FuroSelectContext.js +743 -0
  104. package/lib/components/molecules/FuroSelect/SelectEmitPayload.js +181 -0
  105. package/lib/components/molecules/FuroSeparator/FuroSeparator.vue +88 -0
  106. package/lib/components/molecules/FuroSeparator/FuroSeparatorContext.js +40 -0
  107. package/lib/components/molecules/FuroSkeleton/FuroSkeleton.vue +101 -0
  108. package/lib/components/molecules/FuroSkeleton/FuroSkeletonContext.js +82 -0
  109. package/lib/components/molecules/FuroSplitter/FuroSplitter.vue +237 -0
  110. package/lib/components/molecules/FuroSplitter/FuroSplitterContext.js +429 -0
  111. package/lib/components/molecules/FuroSplitter/SplitterEmitPayload.js +69 -0
  112. package/lib/components/molecules/FuroTimeField/FuroTimeField.vue +251 -0
  113. package/lib/components/molecules/FuroTimeField/FuroTimeFieldContext.js +1138 -0
  114. package/lib/components/molecules/FuroTimeField/TimeFieldEmitPayload.js +74 -0
  115. package/lib/components/molecules/FuroToggleGroup/FuroToggleGroup.vue +211 -0
  116. package/lib/components/molecules/FuroToggleGroup/FuroToggleGroupContext.js +551 -0
  117. package/lib/components/molecules/FuroToggleGroup/ToggleGroupEmitPayload.js +80 -0
  118. package/lib/components/molecules/FuroToolBar/FuroToolBar.vue +91 -0
  119. package/lib/components/molecules/FuroToolBar/FuroToolBarContext.js +75 -0
  120. package/lib/components/molecules/FuroTooltip/FuroTooltip.vue +183 -0
  121. package/lib/components/molecules/FuroTooltip/FuroTooltipContext.js +290 -0
  122. package/lib/components/organisms/FuroAlertDialog/FuroAlertDialog.vue +324 -0
  123. package/lib/components/organisms/FuroAlertDialog/FuroAlertDialogContext.js +608 -0
  124. package/lib/components/organisms/FuroDialog/FuroDialog.vue +362 -0
  125. package/lib/components/organisms/FuroDialog/FuroDialogContext.js +535 -0
  126. package/lib/components/organisms/FuroDrawer/FuroDrawer.vue +618 -0
  127. package/lib/components/organisms/FuroDrawer/FuroDrawerContext.js +676 -0
  128. package/lib/components/organisms/FuroEditor/FuroEditor.vue +613 -0
  129. package/lib/components/organisms/FuroEditor/FuroEditorCommandContext.js +420 -0
  130. package/lib/components/organisms/FuroEditor/FuroEditorContext.js +2048 -0
  131. package/lib/components/organisms/FuroEditor/FuroEditorMentionMenu.vue +120 -0
  132. package/lib/components/organisms/FuroEditor/FuroEditorMentionMenuContext.js +261 -0
  133. package/lib/components/organisms/FuroEditor/PreserveNewlinesPasteExtension.js +267 -0
  134. package/lib/components/organisms/FuroEditor/build-editor-extensions.js +97 -0
  135. package/lib/components/organisms/FuroEditor/mention-suggestion.js +320 -0
  136. package/lib/components/organisms/FuroEditor/paste-link-segments.js +124 -0
  137. package/lib/components/organisms/FuroSidebar/FuroSidebar.vue +473 -0
  138. package/lib/components/organisms/FuroSidebar/FuroSidebarContext.js +1014 -0
  139. package/lib/components/organisms/FuroStepper/FuroStepper.vue +345 -0
  140. package/lib/components/organisms/FuroStepper/FuroStepperContext.js +481 -0
  141. package/lib/components/organisms/FuroTable/FuroTable.vue +707 -0
  142. package/lib/components/organisms/FuroTable/FuroTableContext.js +1965 -0
  143. package/lib/components/organisms/FuroTable/FuroTableRowItemContext.js +111 -0
  144. package/lib/components/organisms/FuroTabs/FuroTabs.vue +403 -0
  145. package/lib/components/organisms/FuroTabs/FuroTabsContext.js +846 -0
  146. package/lib/components/organisms/FuroToast/FuroToast.vue +624 -0
  147. package/lib/components/organisms/FuroToast/FuroToastContext.js +1089 -0
  148. package/lib/components/organisms/FuroToast/FuroToaster.vue +44 -0
  149. package/lib/components/organisms/FuroToast/FuroToasterContext.js +113 -0
  150. package/lib/components/organisms/FuroToast/ToastQueue.js +325 -0
  151. package/lib/components/organisms/FuroToast/toast.js +64 -0
  152. package/lib/contexts/BaseFuroContext.js +318 -0
  153. package/lib/contexts/BaseFuroContextAccessor.js +47 -0
  154. package/lib/emit-payload/BaseEmitPayload.js +91 -0
  155. package/lib/index.components.js +61 -0
  156. package/lib/index.core.js +18 -0
  157. package/lib/tools/TimerClerk.js +75 -0
  158. package/nuxt/index.js +109 -0
  159. package/nuxt/runtime/furo-icon-renderer.js +24 -0
  160. package/package.json +137 -0
  161. package/public/furo-vue/components.json +4619 -0
  162. package/public/furo-vue/llms.txt +66 -0
  163. package/types/furo-nuxt.d.ts +48 -0
  164. package/types/generated/components/atoms/FuroAvatar/FuroAvatar.vue.d.ts +74 -0
  165. package/types/generated/components/atoms/FuroAvatar/FuroAvatarContext.d.ts +82 -0
  166. package/types/generated/components/atoms/FuroBadge/FuroBadge.vue.d.ts +12 -0
  167. package/types/generated/components/atoms/FuroBadge/FuroBadgeContext.d.ts +160 -0
  168. package/types/generated/components/atoms/FuroButton/ButtonEmitPayload.d.ts +19 -0
  169. package/types/generated/components/atoms/FuroButton/FuroButton.vue.d.ts +53 -0
  170. package/types/generated/components/atoms/FuroButton/FuroButtonContext.d.ts +156 -0
  171. package/types/generated/components/atoms/FuroCheckbox/CheckboxEmitPayload.d.ts +55 -0
  172. package/types/generated/components/atoms/FuroCheckbox/FuroCheckbox.vue.d.ts +87 -0
  173. package/types/generated/components/atoms/FuroCheckbox/FuroCheckboxContext.d.ts +342 -0
  174. package/types/generated/components/atoms/FuroEmailField/EmailFieldEmitPayload.d.ts +46 -0
  175. package/types/generated/components/atoms/FuroEmailField/FuroEmailField.vue.d.ts +458 -0
  176. package/types/generated/components/atoms/FuroEmailField/FuroEmailFieldContext.d.ts +161 -0
  177. package/types/generated/components/atoms/FuroFileField/FileFieldEmitPayload.d.ts +46 -0
  178. package/types/generated/components/atoms/FuroFileField/FuroFileField.vue.d.ts +454 -0
  179. package/types/generated/components/atoms/FuroFileField/FuroFileFieldContext.d.ts +109 -0
  180. package/types/generated/components/atoms/FuroIcon/FuroIcon.vue.d.ts +14 -0
  181. package/types/generated/components/atoms/FuroIcon/FuroIconContext.d.ts +152 -0
  182. package/types/generated/components/atoms/FuroIcon/FuroIconRegistry.d.ts +457 -0
  183. package/types/generated/components/atoms/FuroIcon/FuroIconifyRendererContext.d.ts +65 -0
  184. package/types/generated/components/atoms/FuroIcon/furoIconData.d.ts +154 -0
  185. package/types/generated/components/atoms/FuroIcon/iconRenderers.d.ts +6 -0
  186. package/types/generated/components/atoms/FuroIcon/icons.d.ts +6 -0
  187. package/types/generated/components/atoms/FuroNumberField/FuroNumberField.vue.d.ts +500 -0
  188. package/types/generated/components/atoms/FuroNumberField/FuroNumberFieldContext.d.ts +243 -0
  189. package/types/generated/components/atoms/FuroNumberField/NumberFieldEmitPayload.d.ts +74 -0
  190. package/types/generated/components/atoms/FuroPasswordField/FuroPasswordField.vue.d.ts +458 -0
  191. package/types/generated/components/atoms/FuroPasswordField/FuroPasswordFieldContext.d.ts +161 -0
  192. package/types/generated/components/atoms/FuroPasswordField/PasswordFieldEmitPayload.d.ts +46 -0
  193. package/types/generated/components/atoms/FuroRadio/FuroRadio.vue.d.ts +96 -0
  194. package/types/generated/components/atoms/FuroRadio/FuroRadioContext.d.ts +290 -0
  195. package/types/generated/components/atoms/FuroRadio/RadioEmitPayload.d.ts +39 -0
  196. package/types/generated/components/atoms/FuroSwitch/FuroSwitch.vue.d.ts +74 -0
  197. package/types/generated/components/atoms/FuroSwitch/FuroSwitchContext.d.ts +218 -0
  198. package/types/generated/components/atoms/FuroSwitch/SwitchEmitPayload.d.ts +42 -0
  199. package/types/generated/components/atoms/FuroTextField/FuroTextField.vue.d.ts +458 -0
  200. package/types/generated/components/atoms/FuroTextField/FuroTextFieldContext.d.ts +161 -0
  201. package/types/generated/components/atoms/FuroTextField/TextFieldEmitPayload.d.ts +52 -0
  202. package/types/generated/components/atoms/FuroTextarea/FuroTextarea.vue.d.ts +422 -0
  203. package/types/generated/components/atoms/FuroTextarea/FuroTextareaContext.d.ts +161 -0
  204. package/types/generated/components/atoms/FuroTextarea/TextareaEmitPayload.d.ts +52 -0
  205. package/types/generated/components/atoms/FuroToggle/FuroToggle.vue.d.ts +51 -0
  206. package/types/generated/components/atoms/FuroToggle/FuroToggleContext.d.ts +191 -0
  207. package/types/generated/components/atoms/FuroToggle/ToggleEmitPayload.d.ts +42 -0
  208. package/types/generated/components/molecules/FuroAccordion/AccordionEmitPayload.d.ts +41 -0
  209. package/types/generated/components/molecules/FuroAccordion/FuroAccordion.vue.d.ts +133 -0
  210. package/types/generated/components/molecules/FuroAccordion/FuroAccordionContext.d.ts +279 -0
  211. package/types/generated/components/molecules/FuroAttachment/FuroAttachment.vue.d.ts +79 -0
  212. package/types/generated/components/molecules/FuroAttachment/FuroAttachmentContext.d.ts +363 -0
  213. package/types/generated/components/molecules/FuroAutocompleteField/AutocompleteEmitPayload.d.ts +129 -0
  214. package/types/generated/components/molecules/FuroAutocompleteField/FuroAutocompleteField.vue.d.ts +751 -0
  215. package/types/generated/components/molecules/FuroAutocompleteField/FuroAutocompleteFieldContext.d.ts +722 -0
  216. package/types/generated/components/molecules/FuroAvatarGroup/FuroAvatarGroup.vue.d.ts +84 -0
  217. package/types/generated/components/molecules/FuroAvatarGroup/FuroAvatarGroupContext.d.ts +150 -0
  218. package/types/generated/components/molecules/FuroBreadcrumb/FuroBreadcrumb.vue.d.ts +24 -0
  219. package/types/generated/components/molecules/FuroBreadcrumb/FuroBreadcrumbContext.d.ts +152 -0
  220. package/types/generated/components/molecules/FuroCollapsible/CollapsibleEmitPayload.d.ts +36 -0
  221. package/types/generated/components/molecules/FuroCollapsible/FuroCollapsible.vue.d.ts +98 -0
  222. package/types/generated/components/molecules/FuroCollapsible/FuroCollapsibleContext.d.ts +191 -0
  223. package/types/generated/components/molecules/FuroControlBlock/FuroControlBlock.vue.d.ts +30 -0
  224. package/types/generated/components/molecules/FuroControlBlock/FuroControlBlockContext.d.ts +57 -0
  225. package/types/generated/components/molecules/FuroDatePicker/DatePickerEmitPayload.d.ts +41 -0
  226. package/types/generated/components/molecules/FuroDatePicker/FuroDatePicker.vue.d.ts +456 -0
  227. package/types/generated/components/molecules/FuroDatePicker/FuroDatePickerContext.d.ts +516 -0
  228. package/types/generated/components/molecules/FuroDateTimePicker/DateTimePickerEmitPayload.d.ts +55 -0
  229. package/types/generated/components/molecules/FuroDateTimePicker/FuroDateTimePicker.vue.d.ts +1365 -0
  230. package/types/generated/components/molecules/FuroDateTimePicker/FuroDateTimePickerContext.d.ts +435 -0
  231. package/types/generated/components/molecules/FuroDropdownMenu/DropdownMenuOptionSelectEmitPayload.d.ts +48 -0
  232. package/types/generated/components/molecules/FuroDropdownMenu/FuroDropdownMenu.vue.d.ts +773 -0
  233. package/types/generated/components/molecules/FuroDropdownMenu/FuroDropdownMenuContext.d.ts +380 -0
  234. package/types/generated/components/molecules/FuroDropdownMenu/FuroDropdownMenuOptionRows.vue.d.ts +261 -0
  235. package/types/generated/components/molecules/FuroEditableField/EditableEmitPayload.d.ts +39 -0
  236. package/types/generated/components/molecules/FuroEditableField/FuroEditableField.vue.d.ts +646 -0
  237. package/types/generated/components/molecules/FuroEditableField/FuroEditableFieldContext.d.ts +477 -0
  238. package/types/generated/components/molecules/FuroEditableField/processors/EditorCollisionProcessor.d.ts +121 -0
  239. package/types/generated/components/molecules/FuroEditableField/processors/ObjectProcessor.d.ts +45 -0
  240. package/types/generated/components/molecules/FuroEmptyState/FuroEmptyState.vue.d.ts +21 -0
  241. package/types/generated/components/molecules/FuroEmptyState/FuroEmptyStateContext.d.ts +32 -0
  242. package/types/generated/components/molecules/FuroErrorState/FuroErrorState.vue.d.ts +21 -0
  243. package/types/generated/components/molecules/FuroErrorState/FuroErrorStateContext.d.ts +32 -0
  244. package/types/generated/components/molecules/FuroPagination/FuroPagination.vue.d.ts +534 -0
  245. package/types/generated/components/molecules/FuroPagination/FuroPaginationContext.d.ts +271 -0
  246. package/types/generated/components/molecules/FuroPopover/FuroPopover.vue.d.ts +513 -0
  247. package/types/generated/components/molecules/FuroPopover/FuroPopoverContext.d.ts +160 -0
  248. package/types/generated/components/molecules/FuroScrollArea/FuroScrollArea.vue.d.ts +124 -0
  249. package/types/generated/components/molecules/FuroScrollArea/FuroScrollAreaContext.d.ts +86 -0
  250. package/types/generated/components/molecules/FuroSearchField/FuroSearchField.vue.d.ts +487 -0
  251. package/types/generated/components/molecules/FuroSearchField/FuroSearchFieldContext.d.ts +137 -0
  252. package/types/generated/components/molecules/FuroSectionHeader/FuroSectionHeader.vue.d.ts +49 -0
  253. package/types/generated/components/molecules/FuroSectionHeader/FuroSectionHeaderContext.d.ts +121 -0
  254. package/types/generated/components/molecules/FuroSelect/FuroSelect.vue.d.ts +719 -0
  255. package/types/generated/components/molecules/FuroSelect/FuroSelectContext.d.ts +402 -0
  256. package/types/generated/components/molecules/FuroSelect/SelectEmitPayload.d.ts +102 -0
  257. package/types/generated/components/molecules/FuroSeparator/FuroSeparator.vue.d.ts +39 -0
  258. package/types/generated/components/molecules/FuroSeparator/FuroSeparatorContext.d.ts +31 -0
  259. package/types/generated/components/molecules/FuroSkeleton/FuroSkeleton.vue.d.ts +27 -0
  260. package/types/generated/components/molecules/FuroSkeleton/FuroSkeletonContext.d.ts +61 -0
  261. package/types/generated/components/molecules/FuroSplitter/FuroSplitter.vue.d.ts +139 -0
  262. package/types/generated/components/molecules/FuroSplitter/FuroSplitterContext.d.ts +226 -0
  263. package/types/generated/components/molecules/FuroSplitter/SplitterEmitPayload.d.ts +41 -0
  264. package/types/generated/components/molecules/FuroTimeField/FuroTimeField.vue.d.ts +498 -0
  265. package/types/generated/components/molecules/FuroTimeField/FuroTimeFieldContext.d.ts +555 -0
  266. package/types/generated/components/molecules/FuroTimeField/TimeFieldEmitPayload.d.ts +41 -0
  267. package/types/generated/components/molecules/FuroToggleGroup/FuroToggleGroup.vue.d.ts +70 -0
  268. package/types/generated/components/molecules/FuroToggleGroup/FuroToggleGroupContext.d.ts +270 -0
  269. package/types/generated/components/molecules/FuroToggleGroup/ToggleGroupEmitPayload.d.ts +41 -0
  270. package/types/generated/components/molecules/FuroToolBar/FuroToolBar.vue.d.ts +30 -0
  271. package/types/generated/components/molecules/FuroToolBar/FuroToolBarContext.d.ts +48 -0
  272. package/types/generated/components/molecules/FuroTooltip/FuroTooltip.vue.d.ts +524 -0
  273. package/types/generated/components/molecules/FuroTooltip/FuroTooltipContext.d.ts +166 -0
  274. package/types/generated/components/organisms/FuroAlertDialog/FuroAlertDialog.vue.d.ts +651 -0
  275. package/types/generated/components/organisms/FuroAlertDialog/FuroAlertDialogContext.d.ts +299 -0
  276. package/types/generated/components/organisms/FuroDialog/FuroDialog.vue.d.ts +583 -0
  277. package/types/generated/components/organisms/FuroDialog/FuroDialogContext.d.ts +264 -0
  278. package/types/generated/components/organisms/FuroDrawer/FuroDrawer.vue.d.ts +635 -0
  279. package/types/generated/components/organisms/FuroDrawer/FuroDrawerContext.d.ts +347 -0
  280. package/types/generated/components/organisms/FuroEditor/FuroEditor.vue.d.ts +2487 -0
  281. package/types/generated/components/organisms/FuroEditor/FuroEditorCommandContext.d.ts +192 -0
  282. package/types/generated/components/organisms/FuroEditor/FuroEditorContext.d.ts +904 -0
  283. package/types/generated/components/organisms/FuroEditor/FuroEditorMentionMenu.vue.d.ts +43 -0
  284. package/types/generated/components/organisms/FuroEditor/FuroEditorMentionMenuContext.d.ts +159 -0
  285. package/types/generated/components/organisms/FuroEditor/PreserveNewlinesPasteExtension.d.ts +43 -0
  286. package/types/generated/components/organisms/FuroEditor/build-editor-extensions.d.ts +22 -0
  287. package/types/generated/components/organisms/FuroEditor/mention-suggestion.d.ts +25 -0
  288. package/types/generated/components/organisms/FuroEditor/paste-link-segments.d.ts +31 -0
  289. package/types/generated/components/organisms/FuroSidebar/FuroSidebar.vue.d.ts +898 -0
  290. package/types/generated/components/organisms/FuroSidebar/FuroSidebarContext.d.ts +596 -0
  291. package/types/generated/components/organisms/FuroStepper/FuroStepper.vue.d.ts +589 -0
  292. package/types/generated/components/organisms/FuroStepper/FuroStepperContext.d.ts +266 -0
  293. package/types/generated/components/organisms/FuroTable/FuroTable.vue.d.ts +528 -0
  294. package/types/generated/components/organisms/FuroTable/FuroTableContext.d.ts +1035 -0
  295. package/types/generated/components/organisms/FuroTable/FuroTableRowItemContext.d.ts +62 -0
  296. package/types/generated/components/organisms/FuroTabs/FuroTabs.vue.d.ts +515 -0
  297. package/types/generated/components/organisms/FuroTabs/FuroTabsContext.d.ts +438 -0
  298. package/types/generated/components/organisms/FuroToast/FuroToast.vue.d.ts +725 -0
  299. package/types/generated/components/organisms/FuroToast/FuroToastContext.d.ts +543 -0
  300. package/types/generated/components/organisms/FuroToast/FuroToaster.vue.d.ts +729 -0
  301. package/types/generated/components/organisms/FuroToast/FuroToasterContext.d.ts +62 -0
  302. package/types/generated/components/organisms/FuroToast/ToastQueue.d.ts +201 -0
  303. package/types/generated/components/organisms/FuroToast/toast.d.ts +23 -0
  304. package/types/generated/contexts/BaseFuroContext.d.ts +207 -0
  305. package/types/generated/contexts/BaseFuroContextAccessor.d.ts +28 -0
  306. package/types/generated/emit-payload/BaseEmitPayload.d.ts +62 -0
  307. package/types/generated/index.components.d.ts +50 -0
  308. package/types/generated/index.core.d.ts +6 -0
  309. package/types/generated/tools/TimerClerk.d.ts +50 -0
  310. package/types/index.d.ts +12 -0
@@ -0,0 +1,389 @@
1
+ import {
2
+ ref,
3
+ } from 'vue'
4
+
5
+ import BaseFuroContext from '../../../contexts/BaseFuroContext.js'
6
+
7
+ import CollapsibleEmitPayload from './CollapsibleEmitPayload.js'
8
+
9
+ /**
10
+ * Furo-owned parcel keys (not forwarded to the underlying primitive root).
11
+ */
12
+ const FURO_COLLAPSIBLE_PARCEL_KEYS = new Set([
13
+ 'value',
14
+ 'disabled',
15
+ ])
16
+
17
+ /**
18
+ * Context class for managing FuroCollapsible molecule.
19
+ *
20
+ * Single expand/collapse region. The public value is the open boolean
21
+ * (`v-model:value`, `parcel.value`), mapped to the primitive's own open prop
22
+ * inside the template. Supports controlled and uncontrolled use.
23
+ *
24
+ * @extends {BaseFuroContext<null, Props, EmitEventName>}
25
+ */
26
+ export default class FuroCollapsibleContext extends BaseFuroContext {
27
+ /**
28
+ * Constructor.
29
+ *
30
+ * @param {FuroCollapsibleContextParams} params
31
+ */
32
+ constructor ({
33
+ props,
34
+ componentContext,
35
+ refHash,
36
+ }) {
37
+ super({
38
+ props,
39
+ componentContext,
40
+ })
41
+
42
+ this.refHash = refHash
43
+ }
44
+
45
+ /**
46
+ * Factory method.
47
+ *
48
+ * @template {X extends typeof FuroCollapsibleContext ? X : never} T, X
49
+ * @override
50
+ * @param {FuroCollapsibleContextFactoryParams} params - Parameters of this factory method.
51
+ * @returns {InstanceType<T>} An instance of this class.
52
+ * @this {T}
53
+ */
54
+ static create ({
55
+ props,
56
+ componentContext,
57
+
58
+ refHash = this.buildRefHash(),
59
+ }) {
60
+ return /** @type {InstanceType<T>} */ (
61
+ new this({
62
+ props,
63
+ componentContext,
64
+
65
+ refHash,
66
+ })
67
+ )
68
+ }
69
+
70
+ /**
71
+ * Build ref hash.
72
+ *
73
+ * @override
74
+ */
75
+ static buildRefHash () {
76
+ return {
77
+ internalValueRef: ref(false),
78
+ collapsibleRootElementRef: ref(null),
79
+ }
80
+ }
81
+
82
+ /**
83
+ * Get emit event name.
84
+ *
85
+ * @override
86
+ * @returns {Readonly<{
87
+ * CHANGE_VALUE: 'change-value'
88
+ * UPDATE_VALUE: 'update:value'
89
+ * }>}
90
+ */
91
+ static get EMIT_EVENT_NAME () {
92
+ return {
93
+ CHANGE_VALUE: 'change-value',
94
+ UPDATE_VALUE: 'update:value',
95
+ }
96
+ }
97
+
98
+ /**
99
+ * Get emit options.
100
+ *
101
+ * @returns {{
102
+ * 'change-value': (payload: import('./CollapsibleEmitPayload.js').default) => void
103
+ * 'update:value': (value: FuroCollapsibleValue) => void
104
+ * }}
105
+ */
106
+ static get EMIT_EVENT_HASH () {
107
+ return {
108
+ [this.EMIT_EVENT_NAME.CHANGE_VALUE]: payload => {},
109
+ [this.EMIT_EVENT_NAME.UPDATE_VALUE]: value => {},
110
+ }
111
+ }
112
+
113
+ /**
114
+ * get: Constructor of `EmitPayload`.
115
+ *
116
+ * @returns {typeof CollapsibleEmitPayload}
117
+ */
118
+ static get EmitPayloadCtor () {
119
+ return CollapsibleEmitPayload
120
+ }
121
+
122
+ /**
123
+ * get: Constructor of this class.
124
+ *
125
+ * @override
126
+ * @returns {typeof FuroCollapsibleContext}
127
+ */
128
+ get Ctor () {
129
+ return /** @type {typeof FuroCollapsibleContext} */ (
130
+ this.constructor
131
+ )
132
+ }
133
+
134
+ /**
135
+ * Get internal value ref (synced open model).
136
+ *
137
+ * @returns {import('vue').Ref<FuroCollapsibleValue>}
138
+ */
139
+ get internalValueRef () {
140
+ return this.refHash.internalValueRef
141
+ }
142
+
143
+ /**
144
+ * Get collapsible root element ref.
145
+ *
146
+ * @returns {import('vue').Ref<HTMLElement | null>}
147
+ */
148
+ get collapsibleRootElementRef () {
149
+ return this.refHash.collapsibleRootElementRef
150
+ }
151
+
152
+ /**
153
+ * Parcel passed from parent via props (merged with defaults).
154
+ *
155
+ * @override
156
+ * @returns {FuroCollapsibleParcel}
157
+ */
158
+ get parcel () {
159
+ return {
160
+ disabled: false,
161
+ ...this.props.parcel,
162
+ }
163
+ }
164
+
165
+ /**
166
+ * Whether the parent controls `parcel.value`.
167
+ *
168
+ * @returns {boolean}
169
+ */
170
+ isControlled () {
171
+ const { parcel } = this.props
172
+
173
+ return parcel !== null
174
+ && Object.hasOwn(parcel, 'value')
175
+ }
176
+
177
+ /**
178
+ * Resolve synced open value from parcel or fallthrough attrs.
179
+ *
180
+ * @returns {FuroCollapsibleValue}
181
+ */
182
+ resolveSyncedValue () {
183
+ const { parcel: parcelSource } = this.props
184
+
185
+ const hasParcelValue = parcelSource !== null
186
+ && Object.hasOwn(parcelSource, 'value')
187
+
188
+ if (hasParcelValue) {
189
+ return parcelSource.value
190
+ ?? false
191
+ }
192
+
193
+ const { value: attrsValue } = this.attrs ?? {}
194
+
195
+ if (attrsValue !== undefined) {
196
+ return Boolean(attrsValue)
197
+ }
198
+
199
+ return false
200
+ }
201
+
202
+ /**
203
+ * Whether the region is disabled.
204
+ *
205
+ * @returns {boolean}
206
+ */
207
+ isDisabled () {
208
+ return Boolean(this.parcel.disabled)
209
+ || this.hasBooleanAttribute({ name: 'disabled' })
210
+ }
211
+
212
+ /**
213
+ * Whether the region is currently open.
214
+ *
215
+ * @returns {boolean}
216
+ */
217
+ isOpen () {
218
+ return this.internalValueRef.value === true
219
+ }
220
+
221
+ /**
222
+ * Extract CSS class map for the root.
223
+ *
224
+ * @returns {Record<string, boolean>}
225
+ */
226
+ extractRootClassNames () {
227
+ return Object.fromEntries([
228
+ ['unit-collapsible', true],
229
+ ['disabled', this.isDisabled()],
230
+ ])
231
+ }
232
+
233
+ /**
234
+ * Extract root attributes forwarded to the underlying primitive.
235
+ *
236
+ * @returns {Record<string, unknown>}
237
+ */
238
+ extractRootAttributes () {
239
+ const parcelEntries = Object.entries(this.parcel)
240
+
241
+ return Object.fromEntries(
242
+ parcelEntries.filter(([key]) => !FURO_COLLAPSIBLE_PARCEL_KEYS.has(key))
243
+ )
244
+ }
245
+
246
+ /**
247
+ * Build a custom event for open-state changes.
248
+ *
249
+ * @param {{
250
+ * name: string
251
+ * value: FuroCollapsibleValue
252
+ * }} params - Parameters.
253
+ * @returns {import('./CollapsibleEmitPayload.js').CollapsibleRawEvent}
254
+ */
255
+ buildCustomEvent ({
256
+ name,
257
+ value,
258
+ }) {
259
+ return new CustomEvent(
260
+ name,
261
+ {
262
+ detail: {
263
+ target: this.collapsibleRootElementRef.value,
264
+ value,
265
+ },
266
+ }
267
+ )
268
+ }
269
+
270
+ /**
271
+ * Setup component context.
272
+ *
273
+ * @template {X extends FuroCollapsibleContext ? X : never} T, X
274
+ * @override
275
+ * @returns {T} - For method chaining.
276
+ * @this {T}
277
+ */
278
+ setupComponent () {
279
+ this.watch(
280
+ () => this.resolveSyncedValue(),
281
+ syncedValue => {
282
+ if (!this.isControlled()) {
283
+ return
284
+ }
285
+
286
+ this.internalValueRef.value = syncedValue
287
+ },
288
+ {
289
+ immediate: true,
290
+ }
291
+ )
292
+
293
+ return this
294
+ }
295
+
296
+ /**
297
+ * Handle open-state update emitted by the underlying primitive.
298
+ *
299
+ * @param {{
300
+ * rawValue: FuroCollapsibleValue
301
+ * }} params - Parameters.
302
+ */
303
+ onChangeValue ({
304
+ rawValue,
305
+ }) {
306
+ const value = Boolean(rawValue)
307
+
308
+ this.internalValueRef.value = value
309
+
310
+ const customEvent = this.buildCustomEvent({
311
+ name: this.EMIT_EVENT_NAME.CHANGE_VALUE,
312
+ value,
313
+ })
314
+
315
+ const payload = this.Ctor.EmitPayloadCtor.create({
316
+ rawEvent: customEvent,
317
+ })
318
+
319
+ this.emit(
320
+ this.EMIT_EVENT_NAME.CHANGE_VALUE,
321
+ payload
322
+ )
323
+
324
+ this.emit(
325
+ this.EMIT_EVENT_NAME.UPDATE_VALUE,
326
+ value
327
+ )
328
+ }
329
+ }
330
+
331
+ /**
332
+ * @typedef {import('../../../contexts/BaseFuroContext.js').BaseFuroContextParams & {
333
+ * props: Props
334
+ * componentContext: ComponentContext
335
+ * refHash: {
336
+ * internalValueRef: import('vue').Ref<FuroCollapsibleValue>
337
+ * collapsibleRootElementRef: import('vue').Ref<HTMLElement | null>
338
+ * }
339
+ * }} FuroCollapsibleContextParams
340
+ */
341
+
342
+ /**
343
+ * @typedef {Omit<FuroCollapsibleContextParams, 'refHash'> & {
344
+ * refHash?: {
345
+ * internalValueRef: import('vue').Ref<FuroCollapsibleValue>
346
+ * collapsibleRootElementRef: import('vue').Ref<HTMLElement | null>
347
+ * }
348
+ * }} FuroCollapsibleContextFactoryParams
349
+ */
350
+
351
+ /**
352
+ * @typedef {keyof typeof FuroCollapsibleContext.EMIT_EVENT_NAME} EmitEventName
353
+ */
354
+
355
+ /**
356
+ * Public open model (`v-model:value`, `parcel.value`).
357
+ *
358
+ * @typedef {boolean} FuroCollapsibleValue
359
+ */
360
+
361
+ /**
362
+ * @typedef {{
363
+ * parcel?: FuroCollapsibleParcel | null
364
+ * }} Props
365
+ */
366
+
367
+ /**
368
+ * @typedef {{
369
+ * value?: FuroCollapsibleValue
370
+ * disabled?: boolean
371
+ * }} FuroCollapsibleParcel
372
+ */
373
+
374
+ /**
375
+ * @typedef {typeof FuroCollapsibleContext.EMIT_EVENT_HASH} FuroCollapsibleEmitHash
376
+ */
377
+
378
+ /**
379
+ * @typedef {import('vue').SetupContext<FuroCollapsibleEmitHash>} ComponentContext
380
+ */
381
+
382
+ /**
383
+ * @typedef {(
384
+ * props: Props,
385
+ * componentContext: ComponentContext
386
+ * ) => {
387
+ * context: FuroCollapsibleContext
388
+ * }} FuroCollapsibleSetup
389
+ */
@@ -0,0 +1,149 @@
1
+ <script>
2
+ import {
3
+ defineComponent,
4
+ } from 'vue'
5
+
6
+ import FuroControlBlockContext from './FuroControlBlockContext.js'
7
+
8
+ export default defineComponent({
9
+ name: 'FuroControlBlock',
10
+ inheritAttrs: false,
11
+
12
+ props: {
13
+ parcel: {
14
+ /** @type {import('vue').PropType<import('./FuroControlBlockContext.js').Props['parcel']>} */
15
+ type: [
16
+ Object,
17
+ null,
18
+ ],
19
+ default: null,
20
+ },
21
+ },
22
+
23
+ /**
24
+ * Setup of this component.
25
+ *
26
+ * @param {import('./FuroControlBlockContext.js').Props} props - Props.
27
+ * @param {import('vue').SetupContext} componentContext - Setup context.
28
+ * @returns {{ context: FuroControlBlockContext }} Render context.
29
+ */
30
+ setup (
31
+ props,
32
+ componentContext
33
+ ) {
34
+ const context = FuroControlBlockContext.create({
35
+ props,
36
+ componentContext,
37
+ })
38
+ .setupComponent()
39
+
40
+ return {
41
+ context,
42
+ }
43
+ },
44
+ })
45
+ </script>
46
+
47
+ <template>
48
+ <div
49
+ class="unit-form-control-block"
50
+ :class="[
51
+ $attrs.class,
52
+ context.orientation,
53
+ {
54
+ invalid: context.isInvalid(),
55
+ },
56
+ ]"
57
+ :style="$attrs.style"
58
+ >
59
+ <label
60
+ v-if="context.label"
61
+ class="label"
62
+ :for="context.controlId ?? undefined"
63
+ >
64
+ {{ context.label }}
65
+ <span
66
+ v-if="context.isRequired()"
67
+ class="required-mark"
68
+ aria-hidden="true"
69
+ >*</span>
70
+ </label>
71
+
72
+ <div class="control">
73
+ <slot />
74
+ </div>
75
+
76
+ <!-- ponytail: error region carries role="alert" only; no aria-describedby
77
+ wiring into the slotted control (the block cannot set attrs on a slot
78
+ child). Upgrade path: expose an errorId getter for consumers to bind. -->
79
+ <ul
80
+ v-if="context.isInvalid()"
81
+ class="error"
82
+ role="alert"
83
+ >
84
+ <li
85
+ v-for="(message, index) in context.errorMessages"
86
+ :key="index"
87
+ >
88
+ {{ message }}
89
+ </li>
90
+ </ul>
91
+ </div>
92
+ </template>
93
+
94
+ <style>
95
+ @layer furo {
96
+ .unit-form-control-block {
97
+ display: flex;
98
+ }
99
+
100
+ .unit-form-control-block.vertical {
101
+ flex-direction: column;
102
+
103
+ gap: var(--size-space-tiny);
104
+ }
105
+
106
+ .unit-form-control-block.horizontal {
107
+ flex-direction: row;
108
+ flex-wrap: wrap;
109
+ align-items: baseline;
110
+
111
+ gap: var(--size-space-small);
112
+ }
113
+
114
+ .unit-form-control-block > .label {
115
+ color: var(--color-foreground);
116
+ font: var(--font-label-small);
117
+ }
118
+
119
+ .unit-form-control-block.horizontal > .label {
120
+ flex: 0 0 auto;
121
+
122
+ width: 9rem;
123
+ }
124
+
125
+ .unit-form-control-block > .label > .required-mark {
126
+ margin-inline-start: 0.125rem;
127
+
128
+ color: var(--color-destructive);
129
+ }
130
+
131
+ .unit-form-control-block.horizontal > .control {
132
+ flex: 1 1 0;
133
+ }
134
+
135
+ .unit-form-control-block > .error {
136
+ margin-block: 0;
137
+ padding-inline-start: 0;
138
+
139
+ list-style: none;
140
+
141
+ color: var(--color-destructive);
142
+ font: var(--font-body-small);
143
+ }
144
+
145
+ .unit-form-control-block.horizontal > .error {
146
+ flex-basis: 100%;
147
+ }
148
+ }
149
+ </style>
@@ -0,0 +1,81 @@
1
+ import BaseFuroContext from '../../../contexts/BaseFuroContext.js'
2
+
3
+ /**
4
+ * Context class for FuroControlBlock molecule.
5
+ *
6
+ * Presentational wrapper that frames a slotted control with a label and error
7
+ * messages. Emits nothing — the slotted control owns its own events.
8
+ *
9
+ * @extends {BaseFuroContext<null, Props, null>}
10
+ */
11
+ export default class FuroControlBlockContext extends BaseFuroContext {
12
+ /**
13
+ * get: id of the slotted control, for the `<label for>` association.
14
+ *
15
+ * @returns {string | null} Control id, or null when unset.
16
+ */
17
+ get controlId () {
18
+ return this.parcel?.controlId
19
+ ?? null
20
+ }
21
+
22
+ /**
23
+ * get: error messages for the control.
24
+ *
25
+ * @returns {Array<string>} Error messages; empty array when none.
26
+ */
27
+ get errorMessages () {
28
+ return this.parcel?.errorMessages
29
+ ?? []
30
+ }
31
+
32
+ /**
33
+ * get: label text.
34
+ *
35
+ * @returns {string | null} Label text, or null when unset.
36
+ */
37
+ get label () {
38
+ return this.parcel?.label
39
+ ?? null
40
+ }
41
+
42
+ /**
43
+ * get: layout orientation.
44
+ *
45
+ * @returns {'vertical' | 'horizontal'} Orientation; defaults to vertical.
46
+ */
47
+ get orientation () {
48
+ return this.parcel?.orientation
49
+ ?? 'vertical'
50
+ }
51
+
52
+ /**
53
+ * Whether the control has error messages.
54
+ *
55
+ * @returns {boolean} true when at least one error message exists.
56
+ */
57
+ isInvalid () {
58
+ return this.errorMessages.length > 0
59
+ }
60
+
61
+ /**
62
+ * Whether the control is required.
63
+ *
64
+ * @returns {boolean} true when the parcel marks it required.
65
+ */
66
+ isRequired () {
67
+ return Boolean(this.parcel?.required)
68
+ }
69
+ }
70
+
71
+ /**
72
+ * @typedef {{
73
+ * parcel: {
74
+ * label?: string | null
75
+ * controlId?: string | null
76
+ * errorMessages?: Array<string>
77
+ * required?: boolean
78
+ * orientation?: 'vertical' | 'horizontal'
79
+ * } | null
80
+ * }} Props
81
+ */
@@ -0,0 +1,74 @@
1
+ import BaseEmitPayload from '../../../emit-payload/BaseEmitPayload.js'
2
+
3
+ /**
4
+ * DatePickerEmitPayload.
5
+ *
6
+ * @extends {BaseEmitPayload<DatePickerRawEvent, HTMLElement>}
7
+ */
8
+ export default class DatePickerEmitPayload extends BaseEmitPayload {
9
+ /**
10
+ * Get the event detail.
11
+ *
12
+ * @returns {DatePickerRawEvent['detail'] | null}
13
+ */
14
+ get eventDetail () {
15
+ return this.rawEvent?.detail
16
+ ?? null
17
+ }
18
+
19
+ /**
20
+ * Get the control element from the raw event.
21
+ *
22
+ * @override
23
+ * @returns {HTMLElement | null}
24
+ */
25
+ get controlElement () {
26
+ return this.eventDetail?.target
27
+ ?? null
28
+ }
29
+
30
+ /**
31
+ * Selected date as ISO `YYYY-MM-DD` string, or `null` when cleared.
32
+ *
33
+ * @returns {string | null}
34
+ */
35
+ get value () {
36
+ return this.eventDetail?.value
37
+ ?? null
38
+ }
39
+
40
+ /**
41
+ * Whether the payload carries an empty (null) value.
42
+ *
43
+ * @returns {boolean}
44
+ */
45
+ hasEmptyValue () {
46
+ return this.value === null
47
+ }
48
+
49
+ /**
50
+ * Whether the payload carries a non-null date value.
51
+ *
52
+ * @returns {boolean}
53
+ */
54
+ hasValue () {
55
+ return !this.hasEmptyValue()
56
+ }
57
+ }
58
+
59
+ /**
60
+ * @typedef {CustomEvent<{
61
+ * target: HTMLElement | null
62
+ * value: string | null
63
+ * }>} DatePickerRawEvent
64
+ */
65
+
66
+ /**
67
+ * @typedef {{
68
+ * rawEvent: DatePickerRawEvent
69
+ * }} DatePickerEmitPayloadParams
70
+ */
71
+
72
+ /**
73
+ * @typedef {DatePickerEmitPayloadParams} DatePickerEmitPayloadFactoryParams
74
+ */