@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,165 @@
1
+ <script>
2
+ import {
3
+ defineComponent,
4
+ } from 'vue'
5
+
6
+ import {
7
+ Switch as RekaSwitch,
8
+ } from 'reka-ui/namespaced'
9
+
10
+ import FuroSwitchContext from './FuroSwitchContext.js'
11
+
12
+ export default defineComponent({
13
+ name: 'FuroSwitch',
14
+
15
+ components: {
16
+ SwitchRoot: RekaSwitch.Root,
17
+ SwitchThumb: RekaSwitch.Thumb,
18
+ },
19
+
20
+ inheritAttrs: false,
21
+
22
+ props: {
23
+ parcel: {
24
+ /** @type {import('vue').PropType<import('./FuroSwitchContext.js').Props['parcel']>} */
25
+ type: [
26
+ Object,
27
+ null,
28
+ ],
29
+ default: null,
30
+ },
31
+ },
32
+
33
+ emits: FuroSwitchContext.EMIT_EVENT_HASH,
34
+
35
+ /**
36
+ * Setup of this component.
37
+ *
38
+ * @type {import('./FuroSwitchContext.js').FuroSwitchSetup}
39
+ */
40
+ setup (
41
+ props,
42
+ componentContext
43
+ ) {
44
+ const context = FuroSwitchContext.create({
45
+ props,
46
+ componentContext,
47
+ })
48
+ .setupComponent()
49
+
50
+ return {
51
+ context,
52
+ }
53
+ },
54
+ })
55
+ </script>
56
+
57
+ <template>
58
+ <SwitchRoot
59
+ :ref="context.switchRootElementRef"
60
+ v-bind="{
61
+ ...context.extractRootAttributes(),
62
+ ...$attrs,
63
+ }"
64
+ :class="context.extractRootClassNames()"
65
+ :disabled="context.isDisabled()"
66
+ :required="context.isRequired()"
67
+ :model-value="context.internalValueRef.value"
68
+ @update:model-value="context.onChangeValue({
69
+ rawValue: $event,
70
+ })"
71
+ >
72
+ <SwitchThumb class="knob" />
73
+ </SwitchRoot>
74
+ </template>
75
+
76
+ <style scoped>
77
+ @layer furo {
78
+ .unit-form-control.switch {
79
+ --furo-switch-track-inset: 0.125rem;
80
+
81
+ display: inline-flex;
82
+ align-items: center;
83
+
84
+ flex-shrink: 0;
85
+
86
+ box-sizing: border-box;
87
+ width: var(--furo-switch-track-width);
88
+ height: var(--furo-switch-track-height);
89
+
90
+ border: none;
91
+ border-radius: var(--size-border-radius-full);
92
+
93
+ padding-block: var(--furo-switch-track-inset);
94
+ padding-inline: var(--furo-switch-track-inset);
95
+
96
+ background-color: var(--color-input);
97
+
98
+ cursor: pointer;
99
+
100
+ transition-duration: var(--transition-timer);
101
+ transition-property: background-color, box-shadow;
102
+ }
103
+
104
+ .unit-form-control.switch.size-medium {
105
+ --furo-switch-track-width: 2.25rem;
106
+ --furo-switch-track-height: 1.25rem;
107
+ --furo-switch-knob-size: 1rem;
108
+ --furo-switch-knob-travel: 1rem;
109
+ }
110
+
111
+ .unit-form-control.switch.size-small {
112
+ --furo-switch-track-width: 1.75rem;
113
+ --furo-switch-track-height: 1rem;
114
+ --furo-switch-knob-size: 0.75rem;
115
+ --furo-switch-knob-travel: 0.75rem;
116
+ }
117
+
118
+ .unit-form-control.switch[data-state="checked"] {
119
+ background-color: var(--color-selected);
120
+ }
121
+
122
+ /* :not(.disabled) so a bare :hover cannot outrank the disabled rule below. */
123
+ .unit-form-control.switch:not(.disabled)[data-state="checked"]:hover {
124
+ background-color: var(--color-selected-lighter);
125
+ }
126
+
127
+ .unit-form-control.switch:not(.disabled)[data-state="checked"]:active {
128
+ background-color: var(--color-selected-darker);
129
+ }
130
+
131
+ .unit-form-control.switch:focus-visible {
132
+ outline: none;
133
+
134
+ box-shadow: 0 0 0 0.125rem var(--color-ring);
135
+ }
136
+
137
+ /* The design gives the disabled track a colour of its own rather than dimming
138
+ the live one, so this repaints instead of lowering opacity. */
139
+ .unit-form-control.switch.disabled {
140
+ background-color: var(--color-secondary);
141
+
142
+ cursor: not-allowed;
143
+ }
144
+
145
+ .unit-form-control.switch > .knob {
146
+ flex-shrink: 0;
147
+
148
+ width: var(--furo-switch-knob-size);
149
+ height: var(--furo-switch-knob-size);
150
+
151
+ border-radius: var(--size-border-radius-full);
152
+
153
+ background-color: var(--color-selected-foreground);
154
+
155
+ transform: translateX(0);
156
+
157
+ transition-duration: var(--transition-timer);
158
+ transition-property: transform;
159
+ }
160
+
161
+ .unit-form-control.switch[data-state="checked"] > .knob {
162
+ transform: translateX(var(--furo-switch-knob-travel));
163
+ }
164
+ }
165
+ </style>
@@ -0,0 +1,440 @@
1
+ import {
2
+ ref,
3
+ } from 'vue'
4
+
5
+ import BaseFuroContext from '../../../contexts/BaseFuroContext.js'
6
+
7
+ import SwitchEmitPayload from './SwitchEmitPayload.js'
8
+
9
+ /**
10
+ * Furo-owned parcel keys (not forwarded to the underlying primitive).
11
+ */
12
+ const FURO_SWITCH_PARCEL_KEYS = new Set([
13
+ 'value',
14
+ 'size',
15
+ 'disabled',
16
+ 'required',
17
+ ])
18
+
19
+ /**
20
+ * Context class for managing FuroSwitch component.
21
+ *
22
+ * @extends {BaseFuroContext<null, Props, EmitEventName>}
23
+ */
24
+ export default class FuroSwitchContext extends BaseFuroContext {
25
+ /**
26
+ * Constructor.
27
+ *
28
+ * @param {FuroSwitchContextParams} params - Parameters.
29
+ */
30
+ constructor ({
31
+ props,
32
+ componentContext,
33
+ refHash,
34
+ }) {
35
+ super({
36
+ props,
37
+ componentContext,
38
+ })
39
+
40
+ this.refHash = refHash
41
+ }
42
+
43
+ /**
44
+ * Factory method.
45
+ *
46
+ * @template {X extends typeof FuroSwitchContext ? X : never} T, X
47
+ * @override
48
+ * @param {FuroSwitchContextFactoryParams} params - Parameters of this factory method.
49
+ * @returns {InstanceType<T>} An instance of this class.
50
+ * @this {T}
51
+ */
52
+ static create ({
53
+ props,
54
+ componentContext,
55
+
56
+ refHash = this.buildRefHash(),
57
+ }) {
58
+ return /** @type {InstanceType<T>} */ (
59
+ new this({
60
+ props,
61
+ componentContext,
62
+
63
+ refHash,
64
+ })
65
+ )
66
+ }
67
+
68
+ /**
69
+ * Build ref hash.
70
+ *
71
+ * @override
72
+ * @returns {{
73
+ * internalValueRef: import('vue').Ref<FuroSwitchValue>
74
+ * switchRootElementRef: import('vue').Ref<HTMLElement | null>
75
+ * }} Ref hash.
76
+ */
77
+ static buildRefHash () {
78
+ return {
79
+ internalValueRef: ref(false),
80
+ switchRootElementRef: ref(null),
81
+ }
82
+ }
83
+
84
+ /**
85
+ * Get emit event name.
86
+ *
87
+ * @override
88
+ * @returns {Readonly<{
89
+ * CHANGE_VALUE: 'change-value'
90
+ * UPDATE_VALUE: 'update:value'
91
+ * }>} Emit event names.
92
+ */
93
+ static get EMIT_EVENT_NAME () {
94
+ return {
95
+ CHANGE_VALUE: 'change-value',
96
+ UPDATE_VALUE: 'update:value',
97
+ }
98
+ }
99
+
100
+ /**
101
+ * Get emit options.
102
+ *
103
+ * @returns {{
104
+ * 'change-value': (payload: import('./SwitchEmitPayload.js').default) => void
105
+ * 'update:value': (value: FuroSwitchValue) => void
106
+ * }} Emit event hash.
107
+ */
108
+ static get EMIT_EVENT_HASH () {
109
+ return {
110
+ [this.EMIT_EVENT_NAME.CHANGE_VALUE]: payload => {},
111
+ [this.EMIT_EVENT_NAME.UPDATE_VALUE]: value => {},
112
+ }
113
+ }
114
+
115
+ /**
116
+ * Sizes the switch can take.
117
+ *
118
+ * @returns {Array<FuroSwitchSize>} Sizes, largest first.
119
+ */
120
+ static get SIZES () {
121
+ return [
122
+ 'medium',
123
+ 'small',
124
+ ]
125
+ }
126
+
127
+ /**
128
+ * Default size.
129
+ *
130
+ * @returns {FuroSwitchSize} Default size.
131
+ */
132
+ static get DEFAULT_SIZE () {
133
+ return 'medium'
134
+ }
135
+
136
+ /**
137
+ * get: Constructor of `EmitPayload`.
138
+ *
139
+ * @returns {typeof SwitchEmitPayload} Constructor of the emit payload.
140
+ */
141
+ static get EmitPayloadCtor () {
142
+ return SwitchEmitPayload
143
+ }
144
+
145
+ /**
146
+ * get: Constructor of this class.
147
+ *
148
+ * @override
149
+ * @returns {typeof FuroSwitchContext} Constructor of this class.
150
+ */
151
+ get Ctor () {
152
+ return /** @type {typeof FuroSwitchContext} */ (
153
+ this.constructor
154
+ )
155
+ }
156
+
157
+ /**
158
+ * Get internal value ref.
159
+ *
160
+ * @returns {import('vue').Ref<FuroSwitchValue>} Internal on/off model.
161
+ */
162
+ get internalValueRef () {
163
+ return this.refHash.internalValueRef
164
+ }
165
+
166
+ /**
167
+ * Get switch root element ref.
168
+ *
169
+ * @returns {import('vue').Ref<HTMLElement | null>} Root element of the switch.
170
+ */
171
+ get switchRootElementRef () {
172
+ return this.refHash.switchRootElementRef
173
+ }
174
+
175
+ /**
176
+ * Parcel passed from parent via props (merged with defaults).
177
+ *
178
+ * @override
179
+ * @returns {FuroSwitchParcel} Parcel with defaults applied.
180
+ */
181
+ get parcel () {
182
+ return {
183
+ disabled: false,
184
+ required: false,
185
+ ...this.props.parcel,
186
+ }
187
+ }
188
+
189
+ /**
190
+ * get: size of the switch.
191
+ *
192
+ * @returns {FuroSwitchSize} Size; defaults to medium.
193
+ */
194
+ get size () {
195
+ return this.parcel.size
196
+ ?? this.Ctor.DEFAULT_SIZE
197
+ }
198
+
199
+ /**
200
+ * Whether the parent controls `parcel.value`.
201
+ *
202
+ * @returns {boolean} Whether the parent owns the value.
203
+ */
204
+ isControlled () {
205
+ const { parcel } = this.props
206
+
207
+ return parcel !== null
208
+ && Object.hasOwn(parcel, 'value')
209
+ }
210
+
211
+ /**
212
+ * Resolve synced on/off value from parcel or fallthrough attrs.
213
+ *
214
+ * @returns {FuroSwitchValue} Value the parent currently declares.
215
+ */
216
+ resolveSyncedValue () {
217
+ const { parcel: parcelSource } = this.props
218
+
219
+ const hasParcelValue = parcelSource !== null
220
+ && Object.hasOwn(parcelSource, 'value')
221
+
222
+ if (hasParcelValue) {
223
+ return parcelSource.value ?? false
224
+ }
225
+
226
+ const { value: attrsValue } = this.attrs ?? {}
227
+
228
+ if (attrsValue !== undefined) {
229
+ return Boolean(attrsValue)
230
+ }
231
+
232
+ return false
233
+ }
234
+
235
+ /**
236
+ * Whether the switch is disabled.
237
+ *
238
+ * @returns {boolean} Whether the switch is disabled.
239
+ */
240
+ isDisabled () {
241
+ return Boolean(this.parcel.disabled)
242
+ || this.hasBooleanAttribute({ name: 'disabled' })
243
+ }
244
+
245
+ /**
246
+ * Whether the switch is required.
247
+ *
248
+ * @returns {boolean} Whether the switch is required.
249
+ */
250
+ isRequired () {
251
+ return Boolean(this.parcel.required)
252
+ || this.hasBooleanAttribute({ name: 'required' })
253
+ }
254
+
255
+ /**
256
+ * Extract CSS class map for the root.
257
+ *
258
+ * @returns {Record<string, boolean>} Class map for the root element.
259
+ */
260
+ extractRootClassNames () {
261
+ return Object.fromEntries([
262
+ ['unit-form-control', true],
263
+ ['switch', true],
264
+ [`size-${this.size}`, true],
265
+ ['disabled', this.isDisabled()],
266
+ ])
267
+ }
268
+
269
+ /**
270
+ * Extract attributes forwarded to the underlying primitive.
271
+ *
272
+ * @returns {Record<string, unknown>} Attributes for the root element.
273
+ */
274
+ extractRootAttributes () {
275
+ const parcelEntries = Object.entries(this.parcel)
276
+
277
+ return Object.fromEntries(
278
+ parcelEntries.filter(([key]) => !FURO_SWITCH_PARCEL_KEYS.has(key))
279
+ )
280
+ }
281
+
282
+ /**
283
+ * Build a custom event for switch value changes.
284
+ *
285
+ * @param {{
286
+ * name: string
287
+ * value: FuroSwitchValue
288
+ * }} params - Parameters.
289
+ * @returns {import('./SwitchEmitPayload.js').SwitchRawEvent} Raw event carrying the new value.
290
+ */
291
+ buildCustomEvent ({
292
+ name,
293
+ value,
294
+ }) {
295
+ return new CustomEvent(
296
+ name,
297
+ {
298
+ detail: {
299
+ target: this.switchRootElementRef.value,
300
+ value,
301
+ },
302
+ }
303
+ )
304
+ }
305
+
306
+ /**
307
+ * Setup component context.
308
+ *
309
+ * @template {X extends FuroSwitchContext ? X : never} T, X
310
+ * @override
311
+ * @returns {T} - For method chaining.
312
+ * @this {T}
313
+ */
314
+ setupComponent () {
315
+ this.watch(
316
+ () => this.resolveSyncedValue(),
317
+ syncedValue => {
318
+ if (!this.isControlled()) {
319
+ return
320
+ }
321
+
322
+ this.internalValueRef.value = syncedValue
323
+ },
324
+ {
325
+ immediate: true,
326
+ }
327
+ )
328
+
329
+ return this
330
+ }
331
+
332
+ /**
333
+ * Handle a value update emitted by the underlying primitive.
334
+ *
335
+ * @param {{
336
+ * rawValue: FuroSwitchValue
337
+ * }} params - Parameters.
338
+ */
339
+ onChangeValue ({
340
+ rawValue,
341
+ }) {
342
+ const value = Boolean(rawValue)
343
+
344
+ this.internalValueRef.value = value
345
+
346
+ const customEvent = this.buildCustomEvent({
347
+ name: this.EMIT_EVENT_NAME.CHANGE_VALUE,
348
+ value,
349
+ })
350
+
351
+ const payload = this.Ctor.EmitPayloadCtor.create({
352
+ rawEvent: customEvent,
353
+ })
354
+
355
+ this.emit(
356
+ this.EMIT_EVENT_NAME.CHANGE_VALUE,
357
+ payload
358
+ )
359
+
360
+ this.emit(
361
+ this.EMIT_EVENT_NAME.UPDATE_VALUE,
362
+ value
363
+ )
364
+ }
365
+
366
+ /**
367
+ * Whether the switch is on.
368
+ *
369
+ * @returns {boolean} Whether the switch is on.
370
+ */
371
+ isChecked () {
372
+ return this.internalValueRef.value === true
373
+ }
374
+ }
375
+
376
+ /**
377
+ * @typedef {import('../../../contexts/BaseFuroContext.js').BaseFuroContextParams & {
378
+ * props: Props
379
+ * componentContext: ComponentContext
380
+ * refHash: {
381
+ * internalValueRef: import('vue').Ref<FuroSwitchValue>
382
+ * switchRootElementRef: import('vue').Ref<HTMLElement | null>
383
+ * }
384
+ * }} FuroSwitchContextParams
385
+ */
386
+
387
+ /**
388
+ * @typedef {Omit<FuroSwitchContextParams, 'refHash'> & {
389
+ * refHash?: {
390
+ * internalValueRef: import('vue').Ref<FuroSwitchValue>
391
+ * switchRootElementRef: import('vue').Ref<HTMLElement | null>
392
+ * }
393
+ * }} FuroSwitchContextFactoryParams
394
+ */
395
+
396
+ /**
397
+ * @typedef {keyof typeof FuroSwitchContext.EMIT_EVENT_NAME} EmitEventName
398
+ */
399
+
400
+ /**
401
+ * Public on/off model (`v-model:value`, `parcel.value`).
402
+ *
403
+ * @typedef {boolean} FuroSwitchValue
404
+ */
405
+
406
+ /**
407
+ * @typedef {'medium' | 'small'} FuroSwitchSize
408
+ */
409
+
410
+ /**
411
+ * @typedef {{
412
+ * parcel?: FuroSwitchParcel | null
413
+ * }} Props
414
+ */
415
+
416
+ /**
417
+ * @typedef {{
418
+ * value?: FuroSwitchValue
419
+ * size?: FuroSwitchSize
420
+ * disabled?: boolean
421
+ * required?: boolean
422
+ * }} FuroSwitchParcel
423
+ */
424
+
425
+ /**
426
+ * @typedef {typeof FuroSwitchContext.EMIT_EVENT_HASH} FuroSwitchEmitHash
427
+ */
428
+
429
+ /**
430
+ * @typedef {import('vue').SetupContext<FuroSwitchEmitHash>} ComponentContext
431
+ */
432
+
433
+ /**
434
+ * @typedef {(
435
+ * props: Props,
436
+ * componentContext: ComponentContext
437
+ * ) => {
438
+ * context: FuroSwitchContext
439
+ * }} FuroSwitchSetup
440
+ */
@@ -0,0 +1,86 @@
1
+ import BaseEmitPayload from '../../../emit-payload/BaseEmitPayload.js'
2
+
3
+ /**
4
+ * SwitchEmitPayload.
5
+ *
6
+ * @extends {BaseEmitPayload<SwitchRawEvent, HTMLElement>}
7
+ */
8
+ export default class SwitchEmitPayload extends BaseEmitPayload {
9
+ /**
10
+ * Get the event detail.
11
+ *
12
+ * @returns {SwitchRawEvent['detail'] | null} Detail of the raw event, or null when absent.
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} Root element of the switch, or null when absent.
24
+ */
25
+ get controlElement () {
26
+ return this.eventDetail?.target
27
+ ?? null
28
+ }
29
+
30
+ /**
31
+ * Current checked state after the change.
32
+ *
33
+ * @returns {FuroSwitchValue | null} Checked state, or null when absent.
34
+ */
35
+ get value () {
36
+ return this.eventDetail?.value
37
+ ?? null
38
+ }
39
+
40
+ /**
41
+ * Whether the switch is on after the change.
42
+ *
43
+ * @returns {boolean | null} Whether the switch is on, or null when the value is absent.
44
+ */
45
+ isChecked () {
46
+ if (typeof this.value !== 'boolean') {
47
+ return null
48
+ }
49
+
50
+ return this.value
51
+ }
52
+
53
+ /**
54
+ * Whether the switch is off after the change.
55
+ *
56
+ * @returns {boolean | null} Whether the switch is off, or null when the value is absent.
57
+ */
58
+ isUnchecked () {
59
+ if (typeof this.value !== 'boolean') {
60
+ return null
61
+ }
62
+
63
+ return !this.value
64
+ }
65
+ }
66
+
67
+ /**
68
+ * @typedef {import('./FuroSwitchContext.js').FuroSwitchValue} FuroSwitchValue
69
+ */
70
+
71
+ /**
72
+ * @typedef {{
73
+ * rawEvent: SwitchRawEvent
74
+ * }} SwitchEmitPayloadParams
75
+ */
76
+
77
+ /**
78
+ * @typedef {CustomEvent<{
79
+ * target: HTMLElement | null
80
+ * value: FuroSwitchValue | null
81
+ * }>} SwitchRawEvent
82
+ */
83
+
84
+ /**
85
+ * @typedef {SwitchEmitPayloadParams} SwitchEmitPayloadFactoryParams
86
+ */