@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,97 @@
1
+ import StarterKit from '@tiptap/starter-kit'
2
+ import {
3
+ Highlight as TiptapHighlight,
4
+ } from '@tiptap/extension-highlight'
5
+ import {
6
+ Typography,
7
+ } from '@tiptap/extension-typography'
8
+ import {
9
+ TextStyleKit,
10
+ } from '@tiptap/extension-text-style'
11
+ import TextAlign from '@tiptap/extension-text-align'
12
+ import {
13
+ Image as TiptapImage,
14
+ } from '@tiptap/extension-image'
15
+ import {
16
+ Placeholder,
17
+ } from '@tiptap/extensions'
18
+
19
+ import {
20
+ PreserveNewlinesPasteExtension,
21
+ } from './PreserveNewlinesPasteExtension.js'
22
+
23
+ const LINK_HTML_ATTRIBUTES = {
24
+ target: '_blank',
25
+ rel: 'noopener noreferrer nofollow',
26
+ }
27
+
28
+ const TEXT_ALIGN_TYPES = [
29
+ 'heading',
30
+ 'paragraph',
31
+ ]
32
+
33
+ /**
34
+ * Build the Tiptap extension list for FuroEditor from parcel flags.
35
+ *
36
+ * StarterKit supplies paragraph, headings, bold/italic/underline/strike, lists,
37
+ * blockquote, code, link, and history. Color comes from TextStyleKit, alignment
38
+ * from TextAlign, plus Highlight, Typography, Placeholder, and the newline-preserving
39
+ * paste plugin. An optional pre-configured mention extension is appended last.
40
+ *
41
+ * @param {{
42
+ * placeholder?: string
43
+ * enableImage?: boolean
44
+ * mentionExtension?: import('@tiptap/core').AnyExtension | null
45
+ * extraExtensions?: Array<import('@tiptap/core').AnyExtension>
46
+ * }} [params] - Parameters of this function.
47
+ * @returns {Array<import('@tiptap/core').AnyExtension>} - Ordered extension list.
48
+ */
49
+ export function buildEditorExtensions ({
50
+ placeholder = '',
51
+ enableImage = false,
52
+ mentionExtension = null,
53
+ extraExtensions = [],
54
+ } = {}) {
55
+ const baseExtensions = [
56
+ StarterKit.configure({
57
+ link: {
58
+ autolink: true,
59
+ linkOnPaste: true,
60
+ openOnClick: true,
61
+ HTMLAttributes: LINK_HTML_ATTRIBUTES,
62
+ },
63
+ }),
64
+ TiptapHighlight,
65
+ Typography,
66
+ TextStyleKit,
67
+ TextAlign.configure({
68
+ types: TEXT_ALIGN_TYPES,
69
+ }),
70
+ Placeholder.configure({
71
+ placeholder,
72
+ }),
73
+ PreserveNewlinesPasteExtension,
74
+ ]
75
+
76
+ const imageExtensions = enableImage
77
+ ? [
78
+ TiptapImage.configure({
79
+ inline: false,
80
+ allowBase64: true,
81
+ }),
82
+ ]
83
+ : []
84
+
85
+ const mentionExtensions = mentionExtension
86
+ ? [
87
+ mentionExtension,
88
+ ]
89
+ : []
90
+
91
+ return [
92
+ ...baseExtensions,
93
+ ...imageExtensions,
94
+ ...mentionExtensions,
95
+ ...extraExtensions,
96
+ ]
97
+ }
@@ -0,0 +1,320 @@
1
+ import {
2
+ nextTick,
3
+ ref,
4
+ } from 'vue'
5
+
6
+ import {
7
+ computePosition,
8
+ flip,
9
+ shift,
10
+ } from '@floating-ui/dom'
11
+
12
+ import {
13
+ posToDOMRect,
14
+ VueRenderer,
15
+ mergeAttributes,
16
+ } from '@tiptap/vue-3'
17
+ import {
18
+ Mention,
19
+ } from '@tiptap/extension-mention'
20
+
21
+ import FuroEditorMentionMenu from './FuroEditorMentionMenu.vue'
22
+
23
+ /**
24
+ * Position the popup against the current selection using floating-ui.
25
+ *
26
+ * @param {{
27
+ * editor: import('@tiptap/core').Editor
28
+ * element: HTMLElement
29
+ * }} params - Parameters of this function.
30
+ * @returns {Promise<import('@floating-ui/dom').ComputePositionReturn>} - Computed position.
31
+ */
32
+ function updatePosition ({
33
+ editor,
34
+ element,
35
+ }) {
36
+ const virtualElement = {
37
+ getBoundingClientRect: () => posToDOMRect(
38
+ editor.view,
39
+ editor.state.selection.from,
40
+ editor.state.selection.to
41
+ ),
42
+ }
43
+
44
+ return computePosition(virtualElement, element, {
45
+ placement: 'bottom-start',
46
+ strategy: 'absolute',
47
+ middleware: [
48
+ shift(),
49
+ flip(),
50
+ ],
51
+ })
52
+ }
53
+
54
+ /**
55
+ * Apply computed coordinates to the popup element.
56
+ *
57
+ * @param {{
58
+ * element: HTMLElement
59
+ * position: import('@floating-ui/dom').ComputePositionReturn
60
+ * }} params - Parameters of this function.
61
+ * @returns {void}
62
+ */
63
+ function applyPosition ({
64
+ element,
65
+ position,
66
+ }) {
67
+ const {
68
+ style,
69
+ } = element
70
+
71
+ style.width = 'max-content'
72
+ style.position = position.strategy
73
+ style.left = `${position.x}px`
74
+ style.top = `${position.y}px`
75
+ }
76
+
77
+ /**
78
+ * Build the Tiptap suggestion `render` factory backed by FuroEditorMentionMenu.
79
+ *
80
+ * @returns {import('@tiptap/suggestion').SuggestionOptions['render']} - Render factory.
81
+ */
82
+ function buildMentionRender () {
83
+ /** @type {import('vue').Ref<import('@tiptap/vue-3').VueRenderer | null>} */
84
+ const rendererRef = ref(null)
85
+
86
+ // Releasing the ref matters as much as destroying the renderer: while it holds a
87
+ // destroyed popup, onKeyDown keeps reporting keys as handled by an invisible menu.
88
+ const closePopup = () => {
89
+ if (!rendererRef.value) {
90
+ return
91
+ }
92
+
93
+ rendererRef.value.destroy()
94
+ rendererRef.value.element?.remove()
95
+ rendererRef.value = null
96
+ }
97
+
98
+ return () => ({
99
+ onStart: async suggestionProps => {
100
+ rendererRef.value = new VueRenderer(FuroEditorMentionMenu, {
101
+ props: {
102
+ items: suggestionProps.items,
103
+ command: suggestionProps.command,
104
+ },
105
+ editor: suggestionProps.editor,
106
+ })
107
+
108
+ const { element } = rendererRef.value
109
+
110
+ if (
111
+ !suggestionProps.clientRect
112
+ || !(element instanceof HTMLElement)
113
+ ) {
114
+ return
115
+ }
116
+
117
+ element.style.position = 'absolute'
118
+ document.body.appendChild(element)
119
+
120
+ const position = await updatePosition({
121
+ editor: suggestionProps.editor,
122
+ element,
123
+ })
124
+
125
+ nextTick(() => {
126
+ if (!(rendererRef.value?.element instanceof HTMLElement)) {
127
+ return
128
+ }
129
+
130
+ applyPosition({
131
+ element: rendererRef.value.element,
132
+ position,
133
+ })
134
+ })
135
+ },
136
+
137
+ onUpdate: async suggestionProps => {
138
+ if (!rendererRef.value) {
139
+ return
140
+ }
141
+
142
+ rendererRef.value.updateProps({
143
+ items: suggestionProps.items,
144
+ command: suggestionProps.command,
145
+ })
146
+
147
+ const { element } = rendererRef.value
148
+
149
+ if (
150
+ !suggestionProps.clientRect
151
+ || !(element instanceof HTMLElement)
152
+ ) {
153
+ return
154
+ }
155
+
156
+ const position = await updatePosition({
157
+ editor: suggestionProps.editor,
158
+ element,
159
+ })
160
+
161
+ nextTick(() => {
162
+ if (!(rendererRef.value?.element instanceof HTMLElement)) {
163
+ return
164
+ }
165
+
166
+ applyPosition({
167
+ element: rendererRef.value.element,
168
+ position,
169
+ })
170
+ })
171
+ },
172
+
173
+ onKeyDown: suggestionProps => {
174
+ if (!rendererRef.value) {
175
+ return false
176
+ }
177
+
178
+ if (suggestionProps.event?.key === 'Escape') {
179
+ closePopup()
180
+
181
+ return true
182
+ }
183
+
184
+ const handled = rendererRef.value.ref?.onKeyDown?.({
185
+ targetEvent: suggestionProps.event,
186
+ })
187
+
188
+ return handled
189
+ ?? false
190
+ },
191
+
192
+ onExit: closePopup,
193
+ })
194
+ }
195
+
196
+ /**
197
+ * Mention node that renders `@label` and carries an `id` attribute.
198
+ */
199
+ const FuroMention = Mention.extend({
200
+ addAttributes () {
201
+ return {
202
+ ...this.parent?.(),
203
+ id: {
204
+ default: null,
205
+ parseHTML: element => element.getAttribute('data-id'),
206
+ renderHTML: attributes => {
207
+ if (!attributes.id) {
208
+ return {}
209
+ }
210
+
211
+ return {
212
+ 'data-id': attributes.id,
213
+ }
214
+ },
215
+ },
216
+ label: {
217
+ default: null,
218
+ parseHTML: element => element.getAttribute('data-label'),
219
+ renderHTML: attributes => {
220
+ if (!attributes.label) {
221
+ return {}
222
+ }
223
+
224
+ return {
225
+ 'data-label': attributes.label,
226
+ }
227
+ },
228
+ },
229
+ }
230
+ },
231
+
232
+ renderHTML ({
233
+ HTMLAttributes,
234
+ }) {
235
+ const label = HTMLAttributes['data-label']
236
+ ?? ''
237
+
238
+ return [
239
+ 'span',
240
+ mergeAttributes(
241
+ {
242
+ 'data-type': 'mention',
243
+ class: 'furo-mention',
244
+ },
245
+ HTMLAttributes
246
+ ),
247
+ `@${label}`,
248
+ ]
249
+ },
250
+ })
251
+
252
+ /**
253
+ * Create the mention extension.
254
+ *
255
+ * Without `searchMentions` it registers the mention node only — enough to parse and
256
+ * render saved `@`-mention chips (e.g. read-only / display editors), with no `@` popup.
257
+ * With `searchMentions` it additionally wires the live suggestion popup for composing.
258
+ *
259
+ * @param {{
260
+ * searchMentions?: ((params: { query: string }) => Promise<Array<{ id: string | number, label: string }>>) | null
261
+ * onMentionAdd?: ((mention: { id: string | number, label: string }) => void) | null
262
+ * }} [params] - Parameters of this function.
263
+ * @returns {import('@tiptap/core').AnyExtension} - Configured mention extension.
264
+ */
265
+ export function createMentionExtension ({
266
+ searchMentions = null,
267
+ onMentionAdd = null,
268
+ } = {}) {
269
+ if (!searchMentions) {
270
+ return FuroMention.configure({
271
+ HTMLAttributes: {
272
+ class: 'furo-mention',
273
+ },
274
+ })
275
+ }
276
+
277
+ return FuroMention.configure({
278
+ HTMLAttributes: {
279
+ class: 'furo-mention',
280
+ },
281
+ suggestion: {
282
+ char: '@',
283
+ allowSpaces: true,
284
+ items: ({
285
+ query,
286
+ }) => searchMentions({
287
+ query,
288
+ }),
289
+ render: buildMentionRender(),
290
+ command: ({
291
+ editor,
292
+ range,
293
+ props,
294
+ }) => {
295
+ editor
296
+ .chain()
297
+ .focus()
298
+ .insertContentAt(range, [
299
+ {
300
+ type: 'mention',
301
+ attrs: {
302
+ id: /** @type {string | number} */ (props.id),
303
+ label: /** @type {string} */ (props.label),
304
+ },
305
+ },
306
+ {
307
+ type: 'text',
308
+ text: ' ',
309
+ },
310
+ ])
311
+ .run()
312
+
313
+ onMentionAdd?.({
314
+ id: /** @type {string | number} */ (props.id),
315
+ label: /** @type {string} */ (props.label),
316
+ })
317
+ },
318
+ },
319
+ })
320
+ }
@@ -0,0 +1,124 @@
1
+ /**
2
+ * Pure (Tiptap-free) parsing of pasted plain-text lines into text / link segments.
3
+ *
4
+ * Kept separate from PreserveNewlinesPasteExtension so this logic can be unit-tested
5
+ * without loading the ProseMirror / Tiptap runtime.
6
+ */
7
+
8
+ /**
9
+ * Matches a Markdown link `[text](url)` or a bare `http(s)://` URL within a line.
10
+ */
11
+ export const MARKDOWN_LINK_OR_BARE_URL_PATTERN = /\[([^\]]+)\]\(([^)]+)\)|https?:\/\/[^\s<]+[^\s<.,:;"')\]]/gu
12
+
13
+ /**
14
+ * Create a link segment from a regex match.
15
+ *
16
+ * @param {RegExpMatchArray} match - Match from MARKDOWN_LINK_OR_BARE_URL_PATTERN.
17
+ * @returns {LinkTextSegment} - Link segment.
18
+ */
19
+ function createLinkSegmentFromMatch (match) {
20
+ const isMarkdownLink = typeof match[1] === 'string'
21
+
22
+ if (isMarkdownLink) {
23
+ return {
24
+ type: 'link',
25
+ text: match[1],
26
+ href: match[2],
27
+ }
28
+ }
29
+
30
+ return {
31
+ type: 'link',
32
+ text: match[0],
33
+ href: match[0],
34
+ }
35
+ }
36
+
37
+ /**
38
+ * Extract plain text and link segments from a single line.
39
+ *
40
+ * @param {{
41
+ * line: string
42
+ * }} params - Parameters of this function.
43
+ * @returns {Array<TextSegment>} - Ordered segments for the line.
44
+ */
45
+ export function extractTextSegmentsFromLine ({
46
+ line,
47
+ }) {
48
+ const matches = [
49
+ ...line.matchAll(MARKDOWN_LINK_OR_BARE_URL_PATTERN),
50
+ ]
51
+
52
+ if (matches.length === 0) {
53
+ return [
54
+ {
55
+ type: 'text',
56
+ text: line,
57
+ },
58
+ ]
59
+ }
60
+
61
+ const segmentsFromMatches = matches.flatMap((match, index) => {
62
+ const previousMatch = matches[index - 1]
63
+ const previousEndIndex = previousMatch
64
+ ? previousMatch.index + previousMatch[0].length
65
+ : 0
66
+
67
+ const leadingText = match.index > previousEndIndex
68
+ ? line.slice(previousEndIndex, match.index)
69
+ : ''
70
+
71
+ const leadingTextSegment = leadingText === ''
72
+ ? []
73
+ : [
74
+ /** @type {PlainTextSegment} */ ({
75
+ type: 'text',
76
+ text: leadingText,
77
+ }),
78
+ ]
79
+
80
+ return [
81
+ ...leadingTextSegment,
82
+ createLinkSegmentFromMatch(match),
83
+ ]
84
+ })
85
+
86
+ const lastMatch = matches[matches.length - 1]
87
+ const trailingIndex = lastMatch.index + lastMatch[0].length
88
+ const trailingText = trailingIndex < line.length
89
+ ? line.slice(trailingIndex)
90
+ : ''
91
+
92
+ const trailingSegment = trailingText === ''
93
+ ? []
94
+ : [
95
+ /** @type {PlainTextSegment} */ ({
96
+ type: 'text',
97
+ text: trailingText,
98
+ }),
99
+ ]
100
+
101
+ return [
102
+ ...segmentsFromMatches,
103
+ ...trailingSegment,
104
+ ]
105
+ }
106
+
107
+ /**
108
+ * @typedef {{
109
+ * type: 'text'
110
+ * text: string
111
+ * }} PlainTextSegment
112
+ */
113
+
114
+ /**
115
+ * @typedef {{
116
+ * type: 'link'
117
+ * text: string
118
+ * href: string
119
+ * }} LinkTextSegment
120
+ */
121
+
122
+ /**
123
+ * @typedef {PlainTextSegment | LinkTextSegment} TextSegment
124
+ */