@pgcorp/ui-kit 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/README.md +725 -19
  2. package/dist/assets/src/components/layout/SDockRegion.vue_vue_type_style_index_0_scoped_a1f403e2_lang.css +1 -0
  3. package/dist/assets/src/components/layout/{SResizeHandle.vue_vue_type_style_index_0_scoped_90cc655e_lang.css → SResizeHandle.vue_vue_type_style_index_0_scoped_13b9b27a_lang.css} +1 -1
  4. package/dist/assets/src/components/layout/{SWorkbenchPanelShell.css_vue_type_style_index_0_src_1030a231_scoped_1030a231_lang.css → SWorkbenchPanelShell.css_vue_type_style_index_0_src_f9faa52a_scoped_f9faa52a_lang.css} +1 -1
  5. package/dist/assets/src/components/shared/_internal/SDialogSurface.css_vue_type_style_index_0_src_0e58afdc_scoped_0e58afdc_lang.css +2 -0
  6. package/dist/assets/src/components/shared/_internal/{SListboxGroup.css_vue_type_style_index_0_src_518787d3_scoped_518787d3_lang.css → SListboxGroup.css_vue_type_style_index_0_src_00060944_scoped_00060944_lang.css} +1 -1
  7. package/dist/assets/src/components/shared/_internal/SMenuLayer.css_vue_type_style_index_0_src_e478164c_scoped_e478164c_lang.css +1 -0
  8. package/dist/assets/src/components/shared/containers/SDrawer.css_vue_type_style_index_0_src_61cf20dd_scoped_61cf20dd_lang.css +2 -0
  9. package/dist/assets/src/components/shared/containers/{SModal.css_vue_type_style_index_0_src_0dc51b74_scoped_0dc51b74_lang.css → SModal.css_vue_type_style_index_0_src_42e1bd5f_scoped_42e1bd5f_lang.css} +1 -1
  10. package/dist/assets/src/components/shared/containers/SOverlayHost.css_vue_type_style_index_0_src_8f9be94e_scoped_8f9be94e_lang.css +2 -0
  11. package/dist/assets/src/components/shared/containers/SPopover.css_vue_type_style_index_0_src_4091d007_scoped_4091d007_lang.css +2 -0
  12. package/dist/assets/src/components/shared/containers/{SSidebarGroup.css_vue_type_style_index_0_src_3e8bc2d7_scoped_3e8bc2d7_lang.css → SSidebarGroup.css_vue_type_style_index_0_src_5b1eeb6c_scoped_5b1eeb6c_lang.css} +1 -1
  13. package/dist/assets/src/components/shared/containers/SSidebarSection.css_vue_type_style_index_0_src_21f71ae8_scoped_21f71ae8_lang.css +2 -0
  14. package/dist/assets/src/components/shared/controls/SButton.css_vue_type_style_index_0_src_7a5acda9_scoped_7a5acda9_lang.css +2 -0
  15. package/dist/assets/src/components/shared/controls/{SCheckbox.css_vue_type_style_index_0_src_b20b27dd_scoped_b20b27dd_lang.css → SCheckbox.css_vue_type_style_index_0_src_55d4826e_scoped_55d4826e_lang.css} +1 -1
  16. package/dist/assets/src/components/shared/controls/SCombobox.css_vue_type_style_index_0_src_537f5744_scoped_537f5744_lang.css +2 -0
  17. package/dist/assets/src/components/shared/controls/SContextMenu.css_vue_type_style_index_0_src_03921269_scoped_03921269_lang.css +1 -0
  18. package/dist/assets/src/components/shared/controls/{SDropdownMenu.css_vue_type_style_index_0_src_1ccb9efc_scoped_1ccb9efc_lang.css → SDropdownMenu.css_vue_type_style_index_0_src_857e2649_scoped_857e2649_lang.css} +1 -1
  19. package/dist/assets/src/components/shared/controls/SField.css_vue_type_style_index_0_src_2d353c26_scoped_2d353c26_lang.css +2 -0
  20. package/dist/assets/src/components/shared/controls/{SInteractiveSurface.css_vue_type_style_index_0_src_998940dd_scoped_998940dd_lang.css → SInteractiveSurface.css_vue_type_style_index_0_src_5e422fac_scoped_5e422fac_lang.css} +1 -1
  21. package/dist/assets/src/components/shared/controls/{SLink.css_vue_type_style_index_0_src_c7ae14e1_scoped_c7ae14e1_lang.css → SLink.css_vue_type_style_index_0_src_ac46e5a4_scoped_ac46e5a4_lang.css} +1 -1
  22. package/dist/assets/src/components/shared/controls/SListbox.css_vue_type_style_index_0_src_50063f9f_scoped_50063f9f_lang.css +2 -0
  23. package/dist/assets/src/components/shared/controls/{SListboxOption.css_vue_type_style_index_0_src_77c399b4_scoped_77c399b4_lang.css → SListboxOption.css_vue_type_style_index_0_src_59c9c538_scoped_59c9c538_lang.css} +1 -1
  24. package/dist/assets/src/components/shared/controls/SMenuSurface.css_vue_type_style_index_0_src_84109ad9_scoped_84109ad9_lang.css +2 -0
  25. package/dist/assets/src/components/shared/controls/SSelect.css_vue_type_style_index_0_src_df3d6688_scoped_df3d6688_lang.css +2 -0
  26. package/dist/assets/src/components/shared/controls/STextarea.css_vue_type_style_index_0_src_true_lang.css +1 -1
  27. package/dist/assets/src/components/shared/data-display/SProgressBar.css_vue_type_style_index_0_src_cad721dd_scoped_cad721dd_lang.css +2 -0
  28. package/dist/assets/src/components/shared/data-display/SRichDocument.css_vue_type_style_index_0_src_8db085d5_scoped_8db085d5_lang.css +2 -0
  29. package/dist/assets/src/components/shared/data-display/SStatus.css_vue_type_style_index_0_src_3ce41a12_scoped_3ce41a12_lang.css +1 -1
  30. package/dist/assets/src/components/shared/data-display/STable.css_vue_type_style_index_0_src_b23b3d71_scoped_b23b3d71_lang.css +2 -0
  31. package/dist/assets/src/components/shared/data-display/STooltip.css_vue_type_style_index_0_src_true_lang.css +1 -1
  32. package/dist/assets/src/components/shared/data-display/SVirtualList.css_vue_type_style_index_0_src_9fe3ade0_scoped_9fe3ade0_lang.css +2 -0
  33. package/dist/assets/src/components/shared/data-display/_internal/SRichBlockNode.css_vue_type_style_index_0_src_eaae882d_scoped_eaae882d_lang.css +2 -0
  34. package/dist/assets/src/components/shared/data-display/_internal/SRichDisclosure.css_vue_type_style_index_0_src_1f0ffc97_scoped_1f0ffc97_lang.css +2 -0
  35. package/dist/assets/src/components/shared/data-display/_internal/SRichImage.css_vue_type_style_index_0_src_2f1c39a9_scoped_2f1c39a9_lang.css +2 -0
  36. package/dist/assets/src/components/shared/data-display/_internal/{SRichInlineNode.css_vue_type_style_index_0_src_20c8cc87_scoped_20c8cc87_lang.css → SRichInlineNode.css_vue_type_style_index_0_src_3ca8df12_scoped_3ca8df12_lang.css} +1 -1
  37. package/dist/assets/src/components/shared/data-display/_internal/STableCell.css_vue_type_style_index_0_src_b829cbc6_scoped_b829cbc6_lang.css +2 -0
  38. package/dist/assets/src/components/shared/data-display/_internal/STableFrame.css_vue_type_style_index_0_src_52b5825e_scoped_52b5825e_lang.css +2 -0
  39. package/dist/assets/src/components/shared/data-display/_internal/STableRow.css_vue_type_style_index_0_src_1661f8b8_scoped_1661f8b8_lang.css +2 -0
  40. package/dist/assets/src/components/shared/feedback/SAsyncState.css_vue_type_style_index_0_src_8a291af7_scoped_8a291af7_lang.css +2 -0
  41. package/dist/assets/src/components/shared/navigation/{SBottomNav.vue_vue_type_style_index_0_scoped_b3963080_lang.css → SBottomNav.vue_vue_type_style_index_0_scoped_24be0f2b_lang.css} +1 -1
  42. package/dist/index.d.ts +1 -0
  43. package/dist/index.js +3 -3
  44. package/dist/reference.css +4 -0
  45. package/dist/src/components/icons/_internal/generatedSputnigUiIconComponents.d.ts +15 -0
  46. package/dist/src/components/icons/_internal/generatedSputnigUiIconComponents.js +4 -4
  47. package/dist/src/components/icons/_internal/generatedSputnigUiIconMarkup.d.ts +46 -1
  48. package/dist/src/components/icons/_internal/generatedSputnigUiIconMarkup.js +260 -230
  49. package/dist/src/components/icons/sputnigUiIcons.d.ts +1 -1
  50. package/dist/src/components/icons/sputnigUiIcons.js +233 -218
  51. package/dist/src/components/layout/SAppShell.vue_vue_type_script_setup_true_lang.js +8 -8
  52. package/dist/src/components/layout/SDockRegion.vue.d.ts +18 -5
  53. package/dist/src/components/layout/SDockRegion.vue.js +2 -2
  54. package/dist/src/components/layout/SDockRegion.vue_vue_type_script_setup_true_lang.js +112 -64
  55. package/dist/src/components/layout/SResizeHandle.vue.d.ts +6 -3
  56. package/dist/src/components/layout/SResizeHandle.vue.js +2 -2
  57. package/dist/src/components/layout/SResizeHandle.vue_vue_type_script_setup_true_lang.js +125 -87
  58. package/dist/src/components/layout/SStack.vue.d.ts +1 -1
  59. package/dist/src/components/layout/SWorkbenchPanelShell.vue.d.ts +4 -4
  60. package/dist/src/components/layout/SWorkbenchPanelShell.vue.js +2 -2
  61. package/dist/src/components/layout/SWorkbenchPanelShell.vue_vue_type_script_setup_true_lang.js +62 -58
  62. package/dist/src/components/layout/types.d.ts +20 -0
  63. package/dist/src/components/shared/_internal/SDialogSurface.vue.js +2 -2
  64. package/dist/src/components/shared/_internal/SDialogSurface.vue_vue_type_script_setup_true_lang.js +64 -41
  65. package/dist/src/components/shared/_internal/SHeaderSurface.vue.d.ts +1 -1
  66. package/dist/src/components/shared/_internal/SListboxGroup.vue.d.ts +5 -0
  67. package/dist/src/components/shared/_internal/SListboxGroup.vue.js +2 -2
  68. package/dist/src/components/shared/_internal/SListboxGroup.vue_vue_type_script_setup_true_lang.js +33 -15
  69. package/dist/src/components/shared/_internal/SMenuLayer.vue.d.ts +5 -1
  70. package/dist/src/components/shared/_internal/SMenuLayer.vue.js +2 -2
  71. package/dist/src/components/shared/_internal/SMenuLayer.vue_vue_type_script_setup_true_lang.js +64 -20
  72. package/dist/src/components/shared/_internal/dialogSurface.d.ts +15 -2
  73. package/dist/src/components/shared/_internal/dialogSurface.js +39 -23
  74. package/dist/src/components/shared/_internal/listboxContext.d.ts +1 -0
  75. package/dist/src/components/shared/_internal/listboxInventory.d.ts +51 -0
  76. package/dist/src/components/shared/_internal/listboxInventory.js +85 -0
  77. package/dist/src/components/shared/_internal/menuContext.d.ts +8 -0
  78. package/dist/src/components/shared/_internal/menuContext.js +2 -2
  79. package/dist/src/components/shared/_internal/sidebarGroupContext.d.ts +1 -0
  80. package/dist/src/components/shared/_internal/useVirtualCollection.d.ts +45 -0
  81. package/dist/src/components/shared/_internal/useVirtualCollection.js +123 -0
  82. package/dist/src/components/shared/complex/SKanbanLane.vue_vue_type_script_setup_true_lang.js +5 -5
  83. package/dist/src/components/shared/containers/SCloudChrome.vue.d.ts +1 -1
  84. package/dist/src/components/shared/containers/SCloudChromeRow.vue.d.ts +1 -1
  85. package/dist/src/components/shared/containers/SDrawer.vue.d.ts +12 -1
  86. package/dist/src/components/shared/containers/SDrawer.vue.js +2 -2
  87. package/dist/src/components/shared/containers/SDrawer.vue_vue_type_script_setup_true_lang.js +151 -53
  88. package/dist/src/components/shared/containers/SModal.vue.js +2 -2
  89. package/dist/src/components/shared/containers/SModal.vue_vue_type_script_setup_true_lang.js +78 -54
  90. package/dist/src/components/shared/containers/SOverlayHost.vue.d.ts +16 -0
  91. package/dist/src/components/shared/containers/SOverlayHost.vue.js +8 -0
  92. package/dist/src/components/shared/containers/SOverlayHost.vue_vue_type_script_setup_true_lang.js +65 -0
  93. package/dist/src/components/shared/containers/SPageHeader.vue.d.ts +1 -1
  94. package/dist/src/components/shared/containers/SPanel.vue.d.ts +1 -1
  95. package/dist/src/components/shared/containers/SPanel.vue_vue_type_script_setup_true_lang.js +7 -7
  96. package/dist/src/components/shared/containers/SPopover.vue.js +2 -2
  97. package/dist/src/components/shared/containers/SPopover.vue_vue_type_script_setup_true_lang.js +214 -145
  98. package/dist/src/components/shared/containers/SSidebarGroup.vue.js +2 -2
  99. package/dist/src/components/shared/containers/SSidebarGroup.vue_vue_type_script_setup_true_lang.js +30 -8
  100. package/dist/src/components/shared/containers/SSidebarSection.vue.js +2 -2
  101. package/dist/src/components/shared/containers/SSidebarSection.vue_vue_type_script_setup_true_lang.js +58 -45
  102. package/dist/src/components/shared/controls/SButton.vue.d.ts +7 -0
  103. package/dist/src/components/shared/controls/SButton.vue.js +2 -2
  104. package/dist/src/components/shared/controls/SButton.vue_vue_type_script_setup_true_lang.js +11 -5
  105. package/dist/src/components/shared/controls/SCheckbox.vue.d.ts +3 -0
  106. package/dist/src/components/shared/controls/SCheckbox.vue.js +2 -2
  107. package/dist/src/components/shared/controls/SCheckbox.vue_vue_type_script_setup_true_lang.js +45 -41
  108. package/dist/src/components/shared/controls/SCheckboxGroup.vue_vue_type_script_setup_true_lang.js +7 -7
  109. package/dist/src/components/shared/controls/SChoiceCards.vue_vue_type_script_setup_true_lang.js +4 -4
  110. package/dist/src/components/shared/controls/SColorSelect.vue_vue_type_script_setup_true_lang.js +6 -6
  111. package/dist/src/components/shared/controls/SCombobox.vue.js +2 -2
  112. package/dist/src/components/shared/controls/SCombobox.vue_vue_type_script_setup_true_lang.js +147 -132
  113. package/dist/src/components/shared/controls/SComboboxTrigger.vue.d.ts +2 -2
  114. package/dist/src/components/shared/controls/SContextMenu.vue.d.ts +11 -0
  115. package/dist/src/components/shared/controls/SContextMenu.vue.js +2 -2
  116. package/dist/src/components/shared/controls/SContextMenu.vue_vue_type_script_setup_true_lang.js +144 -59
  117. package/dist/src/components/shared/controls/SContextToggleButton.vue_vue_type_script_setup_true_lang.js +6 -6
  118. package/dist/src/components/shared/controls/SDragHandle.vue_vue_type_script_setup_true_lang.js +5 -5
  119. package/dist/src/components/shared/controls/SDropdownMenu.vue.js +2 -2
  120. package/dist/src/components/shared/controls/SDropdownMenu.vue_vue_type_script_setup_true_lang.js +82 -75
  121. package/dist/src/components/shared/controls/SField.vue.d.ts +9 -6
  122. package/dist/src/components/shared/controls/SField.vue.js +2 -2
  123. package/dist/src/components/shared/controls/SField.vue_vue_type_script_setup_true_lang.js +69 -52
  124. package/dist/src/components/shared/controls/SFieldGroup.vue_vue_type_script_setup_true_lang.js +13 -13
  125. package/dist/src/components/shared/controls/SInlineTokenEditor.vue_vue_type_script_setup_true_lang.js +26 -26
  126. package/dist/src/components/shared/controls/SInputText.vue_vue_type_script_setup_true_lang.js +21 -21
  127. package/dist/src/components/shared/controls/SInteractiveSurface.vue.js +2 -2
  128. package/dist/src/components/shared/controls/SInteractiveSurface.vue_vue_type_script_setup_true_lang.js +99 -74
  129. package/dist/src/components/shared/controls/SLink.d.ts +11 -1
  130. package/dist/src/components/shared/controls/SLink.vue.d.ts +17 -1
  131. package/dist/src/components/shared/controls/SLink.vue.js +2 -2
  132. package/dist/src/components/shared/controls/SLink.vue_vue_type_script_setup_true_lang.js +157 -62
  133. package/dist/src/components/shared/controls/SListbox.vue.d.ts +10 -1
  134. package/dist/src/components/shared/controls/SListbox.vue.js +2 -2
  135. package/dist/src/components/shared/controls/SListbox.vue_vue_type_script_setup_true_lang.js +371 -189
  136. package/dist/src/components/shared/controls/SListboxOption.vue.d.ts +6 -0
  137. package/dist/src/components/shared/controls/SListboxOption.vue.js +2 -2
  138. package/dist/src/components/shared/controls/SListboxOption.vue_vue_type_script_setup_true_lang.js +47 -34
  139. package/dist/src/components/shared/controls/SMenuSurface.vue.d.ts +2 -2
  140. package/dist/src/components/shared/controls/SMenuSurface.vue.js +2 -2
  141. package/dist/src/components/shared/controls/SMenuSurface.vue_vue_type_script_setup_true_lang.js +147 -121
  142. package/dist/src/components/shared/controls/SRange.vue_vue_type_script_setup_true_lang.js +12 -12
  143. package/dist/src/components/shared/controls/SSelect.vue.js +2 -2
  144. package/dist/src/components/shared/controls/SSelect.vue_vue_type_script_setup_true_lang.js +126 -116
  145. package/dist/src/components/shared/controls/STextarea.d.ts +1 -1
  146. package/dist/src/components/shared/controls/STextarea.vue.d.ts +28 -2
  147. package/dist/src/components/shared/controls/STextarea.vue_vue_type_script_setup_true_lang.js +348 -209
  148. package/dist/src/components/shared/controls/_internal/SInlineTokenSurface.vue_vue_type_script_lang.js +36 -36
  149. package/dist/src/components/shared/data-display/SActionList.vue.d.ts +1 -1
  150. package/dist/src/components/shared/data-display/SActionListItem.vue.d.ts +4 -4
  151. package/dist/src/components/shared/data-display/SActionListItem.vue_vue_type_script_setup_true_lang.js +6 -6
  152. package/dist/src/components/shared/data-display/SBadge.vue.d.ts +1 -1
  153. package/dist/src/components/shared/data-display/SChart.vue_vue_type_script_setup_true_lang.js +89 -89
  154. package/dist/src/components/shared/data-display/SChip.vue.d.ts +1 -1
  155. package/dist/src/components/shared/data-display/SChip.vue_vue_type_script_setup_true_lang.js +7 -7
  156. package/dist/src/components/shared/data-display/SCodeBlock.vue_vue_type_script_setup_true_lang.js +19 -19
  157. package/dist/src/components/shared/data-display/SCodeEditor.vue_vue_type_script_setup_true_lang.js +37 -37
  158. package/dist/src/components/shared/data-display/SCodeSearchPanel.vue_vue_type_script_setup_true_lang.js +17 -17
  159. package/dist/src/components/shared/data-display/SCodeWorkspaceEditor.vue_vue_type_script_setup_true_lang.js +12 -12
  160. package/dist/src/components/shared/data-display/SControlledToastViewport.vue_vue_type_script_setup_true_lang.js +4 -4
  161. package/dist/src/components/shared/data-display/SDiffViewer.vue_vue_type_script_setup_true_lang.js +13 -13
  162. package/dist/src/components/shared/data-display/SDocBlock.vue_vue_type_script_setup_true_lang.js +12 -12
  163. package/dist/src/components/shared/data-display/SEmptyState.vue.d.ts +1 -1
  164. package/dist/src/components/shared/data-display/SEmptyState.vue_vue_type_script_setup_true_lang.js +4 -4
  165. package/dist/src/components/shared/data-display/SExpandableText.vue_vue_type_script_setup_true_lang.js +7 -7
  166. package/dist/src/components/shared/data-display/SKeyValueGrid.vue_vue_type_script_setup_true_lang.js +15 -15
  167. package/dist/src/components/shared/data-display/SLinkedSystemsList.vue_vue_type_script_setup_true_lang.js +17 -17
  168. package/dist/src/components/shared/data-display/SMessage.vue.d.ts +1 -1
  169. package/dist/src/components/shared/data-display/SMessage.vue_vue_type_script_setup_true_lang.js +9 -9
  170. package/dist/src/components/shared/data-display/SMetricCard.vue.d.ts +1 -1
  171. package/dist/src/components/shared/data-display/SProgressBar.vue.d.ts +22 -3
  172. package/dist/src/components/shared/data-display/SProgressBar.vue.js +2 -2
  173. package/dist/src/components/shared/data-display/SProgressBar.vue_vue_type_script_setup_true_lang.js +133 -47
  174. package/dist/src/components/shared/data-display/SProgressIndicator.vue_vue_type_script_setup_true_lang.js +4 -4
  175. package/dist/src/components/shared/data-display/SRichDocument.vue.js +2 -2
  176. package/dist/src/components/shared/data-display/SRichDocument.vue_vue_type_script_setup_true_lang.js +46 -23
  177. package/dist/src/components/shared/data-display/SScrollViewport.vue_vue_type_script_setup_true_lang.js +18 -18
  178. package/dist/src/components/shared/data-display/SSectionHeader.vue.d.ts +1 -1
  179. package/dist/src/components/shared/data-display/SStatus.vue_vue_type_script_setup_true_lang.js +4 -4
  180. package/dist/src/components/shared/data-display/STable.vue.js +2 -2
  181. package/dist/src/components/shared/data-display/STable.vue_vue_type_script_setup_true_lang.js +343 -322
  182. package/dist/src/components/shared/data-display/STooltip.vue.d.ts +2 -2
  183. package/dist/src/components/shared/data-display/STooltip.vue_vue_type_script_setup_true_lang.js +181 -154
  184. package/dist/src/components/shared/data-display/STooltipAnchor.vue_vue_type_script_setup_true_lang.js +5 -5
  185. package/dist/src/components/shared/data-display/STooltipTarget.vue_vue_type_script_setup_true_lang.js +4 -4
  186. package/dist/src/components/shared/data-display/SVirtualList.vue.js +2 -2
  187. package/dist/src/components/shared/data-display/SVirtualList.vue_vue_type_script_setup_true_lang.js +196 -246
  188. package/dist/src/components/shared/data-display/_internal/SRichBlockNode.vue.js +2 -2
  189. package/dist/src/components/shared/data-display/_internal/SRichBlockNode.vue_vue_type_script_setup_true_lang.js +242 -220
  190. package/dist/src/components/shared/data-display/_internal/SRichDisclosure.vue.d.ts +13 -2
  191. package/dist/src/components/shared/data-display/_internal/SRichDisclosure.vue.js +2 -2
  192. package/dist/src/components/shared/data-display/_internal/SRichDisclosure.vue_vue_type_script_setup_true_lang.js +67 -11
  193. package/dist/src/components/shared/data-display/_internal/SRichImage.vue.d.ts +11 -0
  194. package/dist/src/components/shared/data-display/_internal/SRichImage.vue.js +8 -0
  195. package/dist/src/components/shared/data-display/_internal/SRichImage.vue_vue_type_script_setup_true_lang.js +89 -0
  196. package/dist/src/components/shared/data-display/_internal/SRichInlineNode.vue.d.ts +3 -2
  197. package/dist/src/components/shared/data-display/_internal/SRichInlineNode.vue.js +2 -2
  198. package/dist/src/components/shared/data-display/_internal/SRichInlineNode.vue_vue_type_script_setup_true_lang.js +179 -125
  199. package/dist/src/components/shared/data-display/_internal/SRichMath.vue_vue_type_script_setup_true_lang.js +4 -4
  200. package/dist/src/components/shared/data-display/_internal/SRichTableNode.vue.d.ts +21 -0
  201. package/dist/src/components/shared/data-display/_internal/SRichTableNode.vue.js +5 -0
  202. package/dist/src/components/shared/data-display/_internal/SRichTableNode.vue_vue_type_script_setup_true_lang.js +150 -0
  203. package/dist/src/components/shared/data-display/_internal/STableCell.vue.d.ts +52 -0
  204. package/dist/src/components/shared/data-display/_internal/STableCell.vue.js +8 -0
  205. package/dist/src/components/shared/data-display/_internal/STableCell.vue_vue_type_script_setup_true_lang.js +148 -0
  206. package/dist/src/components/shared/data-display/_internal/STableFrame.vue.d.ts +42 -0
  207. package/dist/src/components/shared/data-display/_internal/STableFrame.vue.js +8 -0
  208. package/dist/src/components/shared/data-display/_internal/STableFrame.vue_vue_type_script_setup_true_lang.js +98 -0
  209. package/dist/src/components/shared/data-display/_internal/STableRow.vue.d.ts +43 -0
  210. package/dist/src/components/shared/data-display/_internal/STableRow.vue.js +8 -0
  211. package/dist/src/components/shared/data-display/_internal/STableRow.vue_vue_type_script_setup_true_lang.js +115 -0
  212. package/dist/src/components/shared/data-display/_internal/STableSection.vue.d.ts +28 -0
  213. package/dist/src/components/shared/data-display/_internal/STableSection.vue.js +5 -0
  214. package/dist/src/components/shared/data-display/_internal/STableSection.vue_vue_type_script_setup_true_lang.js +77 -0
  215. package/dist/src/components/shared/data-display/_internal/richDocumentMedia.d.ts +6 -0
  216. package/dist/src/components/shared/data-display/_internal/richDocumentMedia.js +136 -0
  217. package/dist/src/components/shared/data-display/_internal/richDocumentMetadata.d.ts +21 -0
  218. package/dist/src/components/shared/data-display/_internal/richDocumentMetadata.js +39 -0
  219. package/dist/src/components/shared/data-display/_internal/richDocumentNavigation.d.ts +30 -0
  220. package/dist/src/components/shared/data-display/_internal/richDocumentNavigation.js +88 -0
  221. package/dist/src/components/shared/data-display/_internal/richDocumentTableValidation.d.ts +9 -0
  222. package/dist/src/components/shared/data-display/_internal/richDocumentTableValidation.js +240 -0
  223. package/dist/src/components/shared/data-display/_internal/richDocumentTraversal.d.ts +15 -0
  224. package/dist/src/components/shared/data-display/_internal/richDocumentTraversal.js +61 -0
  225. package/dist/src/components/shared/data-display/_internal/richDocumentTypes.d.ts +466 -0
  226. package/dist/src/components/shared/data-display/_internal/richDocumentValidation.d.ts +65 -0
  227. package/dist/src/components/shared/data-display/_internal/richDocumentValidation.js +192 -0
  228. package/dist/src/components/shared/data-display/_internal/tableFoundation.d.ts +27 -0
  229. package/dist/src/components/shared/data-display/_internal/tableFoundation.js +16 -0
  230. package/dist/src/components/shared/data-display/richDocument.d.ts +3 -220
  231. package/dist/src/components/shared/data-display/richDocument.js +607 -399
  232. package/dist/src/components/shared/database/SDataGrid.vue_vue_type_script_setup_true_lang.js +36 -36
  233. package/dist/src/components/shared/database/SSqlEditor.vue.d.ts +2 -2
  234. package/dist/src/components/shared/database/SSqlEditor.vue_vue_type_script_setup_true_lang.js +36 -36
  235. package/dist/src/components/shared/feedback/SAsyncState.vue.js +2 -2
  236. package/dist/src/components/shared/feedback/SAsyncState.vue_vue_type_script_setup_true_lang.js +70 -63
  237. package/dist/src/components/shared/navigation/SBottomNav.vue.d.ts +2 -2
  238. package/dist/src/components/shared/navigation/SBottomNav.vue.js +2 -2
  239. package/dist/src/components/shared/navigation/SBottomNav.vue_vue_type_script_setup_true_lang.js +138 -129
  240. package/dist/src/components/shared/navigation/SBreadcrumbs.vue.d.ts +2 -2
  241. package/dist/src/components/shared/navigation/STabPanel.vue.d.ts +2 -2
  242. package/dist/src/components/shared/navigation/SWizardSteps.vue_vue_type_script_setup_true_lang.js +16 -16
  243. package/dist/src/components/shared/persona/SPersonaProjectPicker.vue.d.ts +2 -2
  244. package/dist/src/composables/useDialogOverlay.d.ts +11 -2
  245. package/dist/src/composables/useDialogOverlay.js +202 -44
  246. package/dist/src/composables/useFloatingPosition.d.ts +20 -0
  247. package/dist/src/composables/useFloatingPosition.js +129 -52
  248. package/dist/src/internal/fieldSurface.d.ts +3 -0
  249. package/dist/src/internal/fieldSurface.js +3 -2
  250. package/dist/src/internal/focusNavigation.d.ts +2 -0
  251. package/dist/src/internal/focusNavigation.js +9 -9
  252. package/dist/src/internal/layerStack.d.ts +12 -0
  253. package/dist/src/internal/layerStack.js +138 -62
  254. package/dist/src/internal/linkTarget.d.ts +7 -1
  255. package/dist/src/internal/linkTarget.js +11 -7
  256. package/dist/src/internal/overlayHost.d.ts +18 -0
  257. package/dist/src/internal/overlayHost.js +18 -0
  258. package/dist/src/internal/ownedAttrs.d.ts +13 -3
  259. package/dist/src/internal/ownedAttrs.js +8 -1
  260. package/dist/src/internal/runtimeContract.d.ts +2 -0
  261. package/dist/src/internal/runtimeContract.js +10 -5
  262. package/dist/src/internal/useMenuLayer.d.ts +7 -4
  263. package/dist/src/internal/useMenuLayer.js +72 -49
  264. package/dist/tailwind.css +3 -0
  265. package/dist/typography.LICENSE.txt +94 -0
  266. package/dist/typography.js +5150 -0
  267. package/docs/getting-started.md +39 -0
  268. package/docs/link-download.md +114 -0
  269. package/docs/listbox.md +129 -0
  270. package/docs/public-api.md +196 -4
  271. package/docs/resize.md +129 -0
  272. package/docs/rich-document.md +442 -25
  273. package/package.json +12 -4
  274. package/src/components/shared/_internal/SDialogSurface.css +39 -7
  275. package/src/components/shared/_internal/SMenuLayer.css +4 -0
  276. package/src/components/shared/containers/SDrawer.css +20 -2
  277. package/src/components/shared/containers/SOverlayHost.css +14 -0
  278. package/src/components/shared/containers/SPopover.css +8 -2
  279. package/src/components/shared/controls/SButton.css +4 -0
  280. package/src/components/shared/controls/SField.css +6 -0
  281. package/src/components/shared/controls/SListbox.css +17 -0
  282. package/src/components/shared/controls/SMenuSurface.css +18 -4
  283. package/src/components/shared/controls/STextarea.css +42 -3
  284. package/src/components/shared/data-display/SProgressBar.css +79 -0
  285. package/src/components/shared/data-display/SRichDocument.css +1 -0
  286. package/src/components/shared/data-display/SStatus.css +8 -25
  287. package/src/components/shared/data-display/STable.css +0 -113
  288. package/src/components/shared/data-display/STooltip.css +4 -1
  289. package/src/components/shared/data-display/_internal/SRichBlockNode.css +11 -7
  290. package/src/components/shared/data-display/_internal/SRichDisclosure.css +16 -0
  291. package/src/components/shared/data-display/_internal/SRichImage.css +37 -0
  292. package/src/components/shared/data-display/_internal/STableCell.css +55 -0
  293. package/src/components/shared/data-display/_internal/STableFrame.css +41 -0
  294. package/src/components/shared/data-display/_internal/STableRow.css +12 -0
  295. package/src/components/shared/feedback/SAsyncState.css +0 -4
  296. package/src/styles/style.css +9 -5
  297. package/src/styles/tokens.css +30 -0
  298. package/dist/assets/src/components/layout/SDockRegion.vue_vue_type_style_index_0_scoped_2932631d_lang.css +0 -1
  299. package/dist/assets/src/components/shared/_internal/SDialogSurface.css_vue_type_style_index_0_src_d1b65adf_scoped_d1b65adf_lang.css +0 -2
  300. package/dist/assets/src/components/shared/_internal/SMenuLayer.css_vue_type_style_index_0_src_4913bbe1_scoped_4913bbe1_lang.css +0 -1
  301. package/dist/assets/src/components/shared/containers/SDrawer.css_vue_type_style_index_0_src_091d7325_scoped_091d7325_lang.css +0 -2
  302. package/dist/assets/src/components/shared/containers/SPopover.css_vue_type_style_index_0_src_deded766_scoped_deded766_lang.css +0 -2
  303. package/dist/assets/src/components/shared/containers/SSidebarSection.css_vue_type_style_index_0_src_96f51ac6_scoped_96f51ac6_lang.css +0 -2
  304. package/dist/assets/src/components/shared/controls/SButton.css_vue_type_style_index_0_src_a5d8f7e0_scoped_a5d8f7e0_lang.css +0 -2
  305. package/dist/assets/src/components/shared/controls/SCombobox.css_vue_type_style_index_0_src_e3b4f580_scoped_e3b4f580_lang.css +0 -2
  306. package/dist/assets/src/components/shared/controls/SContextMenu.css_vue_type_style_index_0_src_00c91d39_scoped_00c91d39_lang.css +0 -1
  307. package/dist/assets/src/components/shared/controls/SField.css_vue_type_style_index_0_src_60628f96_scoped_60628f96_lang.css +0 -2
  308. package/dist/assets/src/components/shared/controls/SListbox.css_vue_type_style_index_0_src_24db4abb_scoped_24db4abb_lang.css +0 -2
  309. package/dist/assets/src/components/shared/controls/SMenuSurface.css_vue_type_style_index_0_src_ddcc5fbb_scoped_ddcc5fbb_lang.css +0 -2
  310. package/dist/assets/src/components/shared/controls/SSelect.css_vue_type_style_index_0_src_441648c9_scoped_441648c9_lang.css +0 -2
  311. package/dist/assets/src/components/shared/data-display/SProgressBar.css_vue_type_style_index_0_src_9308293a_scoped_9308293a_lang.css +0 -2
  312. package/dist/assets/src/components/shared/data-display/SRichDocument.css_vue_type_style_index_0_src_d1afafc5_scoped_d1afafc5_lang.css +0 -2
  313. package/dist/assets/src/components/shared/data-display/STable.css_vue_type_style_index_0_src_9955d482_scoped_9955d482_lang.css +0 -2
  314. package/dist/assets/src/components/shared/data-display/SVirtualList.css_vue_type_style_index_0_src_cee8c247_scoped_cee8c247_lang.css +0 -2
  315. package/dist/assets/src/components/shared/data-display/_internal/SRichBlockNode.css_vue_type_style_index_0_src_195d5c06_scoped_195d5c06_lang.css +0 -2
  316. package/dist/assets/src/components/shared/data-display/_internal/SRichDisclosure.css_vue_type_style_index_0_src_fa94e2ff_scoped_fa94e2ff_lang.css +0 -2
  317. package/dist/assets/src/components/shared/feedback/SAsyncState.css_vue_type_style_index_0_src_bfc28903_scoped_bfc28903_lang.css +0 -2
@@ -1,24 +1,13 @@
1
+ import { richNodeIsInteractiveOwner as e, visitRichDocumentContent as t, visitRichDocumentNodes as n } from "./_internal/richDocumentTraversal.js";
2
+ import { SEMANTIC_METADATA_FIELDS as r, SRichDocumentContractError as i, S_RICH_DOCUMENT_MAX_DEPTH as a, S_RICH_DOCUMENT_MAX_NODES as o, S_RICH_DOCUMENT_MAX_TEXT_LENGTH as s, S_RICH_DOCUMENT_VERSION as c, assertFields as l, consumeRichNode as u, createValidationContext as d, fail as f, leave as p, readArray as m, readBoolean as h, readEnum as g, readFootnoteId as _, readFootnoteOccurrence as v, readIdentity as y, readInteger as b, readLabel as x, readOptionalLabel as S, readOptionalString as C, readRecord as w, readSemanticMetadata as T, readString as E, registerUniqueFootnote as ee, validateUrl as D } from "./_internal/richDocumentValidation.js";
3
+ import { readImagePresentation as O, validateRasterDataUrl as k } from "./_internal/richDocumentMedia.js";
4
+ import { validateSemanticTable as A } from "./_internal/richDocumentTableValidation.js";
1
5
  //#region src/components/shared/data-display/richDocument.ts
2
- var e = 1, t = 1e4, n = 32, r = 1048576, i = class extends TypeError {
3
- constructor(e, t, n) {
4
- super(`SRichDocument [${e}] at ${t}: ${n}`), this.name = "SRichDocumentContractError", this.code = e, this.path = t;
5
- }
6
- };
7
- function a() {
8
- return {
9
- ancestors: /* @__PURE__ */ new Set(),
10
- actionIds: /* @__PURE__ */ new Set(),
11
- footnoteDefinitions: /* @__PURE__ */ new Map(),
12
- footnoteReferences: /* @__PURE__ */ new Map(),
13
- footnoteBacklinks: /* @__PURE__ */ new Map(),
14
- nodeCount: 0
15
- };
16
- }
17
- var o = /* @__PURE__ */ new Set([
6
+ var j = /* @__PURE__ */ new Set([
18
7
  "version",
19
8
  "id",
20
9
  "nodes"
21
- ]), s = /* @__PURE__ */ new Set([
10
+ ]), M = /* @__PURE__ */ new Set([
22
11
  "id",
23
12
  "kind",
24
13
  "url",
@@ -27,7 +16,7 @@ var o = /* @__PURE__ */ new Set([
27
16
  "label",
28
17
  "mediaType",
29
18
  "byteSize"
30
- ]), c = {
19
+ ]), N = {
31
20
  action: /* @__PURE__ */ new Set([
32
21
  "type",
33
22
  "id",
@@ -40,6 +29,7 @@ var o = /* @__PURE__ */ new Set([
40
29
  "label",
41
30
  "actions"
42
31
  ]),
32
+ attention: /* @__PURE__ */ new Set(["type", "children"]),
43
33
  callout: /* @__PURE__ */ new Set([
44
34
  "type",
45
35
  "tone",
@@ -53,20 +43,28 @@ var o = /* @__PURE__ */ new Set([
53
43
  "label",
54
44
  "showLineNumbers"
55
45
  ]),
56
- deletion: /* @__PURE__ */ new Set(["type", "children"]),
46
+ deletion: /* @__PURE__ */ new Set([
47
+ "type",
48
+ "children",
49
+ "cite",
50
+ "dateTime"
51
+ ]),
57
52
  disclosure: /* @__PURE__ */ new Set([
58
53
  "type",
59
54
  "summary",
55
+ "summaryChildren",
60
56
  "open",
61
57
  "children"
62
58
  ]),
63
59
  divider: /* @__PURE__ */ new Set(["type"]),
64
60
  emphasis: /* @__PURE__ */ new Set(["type", "children"]),
61
+ idiomatic: /* @__PURE__ */ new Set(["type", "children"]),
65
62
  footnoteBacklink: /* @__PURE__ */ new Set([
66
63
  "type",
67
64
  "id",
68
65
  "label",
69
- "marker"
66
+ "marker",
67
+ "occurrenceId"
70
68
  ]),
71
69
  footnoteDefinition: /* @__PURE__ */ new Set([
72
70
  "type",
@@ -78,17 +76,21 @@ var o = /* @__PURE__ */ new Set([
78
76
  "type",
79
77
  "id",
80
78
  "label",
81
- "marker"
79
+ "marker",
80
+ "occurrenceId"
82
81
  ]),
83
82
  heading: /* @__PURE__ */ new Set([
84
83
  "type",
85
84
  "level",
85
+ "presentation",
86
86
  "children"
87
87
  ]),
88
88
  image: /* @__PURE__ */ new Set([
89
89
  "type",
90
90
  "resourceId",
91
- "caption"
91
+ "caption",
92
+ "candidates",
93
+ "pictureSources"
92
94
  ]),
93
95
  inlineCode: /* @__PURE__ */ new Set(["type", "code"]),
94
96
  link: /* @__PURE__ */ new Set([
@@ -104,11 +106,16 @@ var o = /* @__PURE__ */ new Set([
104
106
  "start",
105
107
  "children"
106
108
  ]),
107
- keyboard: /* @__PURE__ */ new Set(["type", "value"]),
109
+ keyboard: /* @__PURE__ */ new Set([
110
+ "type",
111
+ "value",
112
+ "children"
113
+ ]),
108
114
  listItem: /* @__PURE__ */ new Set([
109
115
  "type",
110
116
  "checked",
111
117
  "checkboxLabel",
118
+ "value",
112
119
  "children"
113
120
  ]),
114
121
  mathBlock: /* @__PURE__ */ new Set([
@@ -118,7 +125,11 @@ var o = /* @__PURE__ */ new Set([
118
125
  ]),
119
126
  mathInline: /* @__PURE__ */ new Set(["type", "source"]),
120
127
  paragraph: /* @__PURE__ */ new Set(["type", "children"]),
121
- quote: /* @__PURE__ */ new Set(["type", "children"]),
128
+ quote: /* @__PURE__ */ new Set([
129
+ "type",
130
+ "children",
131
+ "cite"
132
+ ]),
122
133
  resource: /* @__PURE__ */ new Set([
123
134
  "type",
124
135
  "resourceId",
@@ -126,6 +137,7 @@ var o = /* @__PURE__ */ new Set([
126
137
  "description"
127
138
  ]),
128
139
  strong: /* @__PURE__ */ new Set(["type", "children"]),
140
+ strikethrough: /* @__PURE__ */ new Set(["type", "children"]),
129
141
  subscript: /* @__PURE__ */ new Set(["type", "children"]),
130
142
  superscript: /* @__PURE__ */ new Set(["type", "children"]),
131
143
  table: /* @__PURE__ */ new Set([
@@ -134,26 +146,74 @@ var o = /* @__PURE__ */ new Set([
134
146
  "columns",
135
147
  "rows"
136
148
  ]),
137
- text: /* @__PURE__ */ new Set(["type", "value"])
138
- }, l = /* @__PURE__ */ new Set([
149
+ text: /* @__PURE__ */ new Set(["type", "value"]),
150
+ hardBreak: /* @__PURE__ */ new Set(["type"]),
151
+ inlineImage: /* @__PURE__ */ new Set([
152
+ "type",
153
+ "resourceId",
154
+ "candidates",
155
+ "pictureSources"
156
+ ]),
157
+ anchorLink: /* @__PURE__ */ new Set([
158
+ "type",
159
+ "anchorId",
160
+ "children"
161
+ ]),
162
+ anchorTarget: /* @__PURE__ */ new Set([
163
+ "type",
164
+ "anchorId",
165
+ "children"
166
+ ]),
167
+ insertion: /* @__PURE__ */ new Set([
168
+ "type",
169
+ "children",
170
+ "cite",
171
+ "dateTime"
172
+ ]),
173
+ quotation: /* @__PURE__ */ new Set([
174
+ "type",
175
+ "children",
176
+ "cite"
177
+ ]),
178
+ sample: /* @__PURE__ */ new Set(["type", "children"]),
179
+ monospace: /* @__PURE__ */ new Set(["type", "children"]),
180
+ variable: /* @__PURE__ */ new Set(["type", "children"]),
181
+ inlineGroup: /* @__PURE__ */ new Set(["type", "children"]),
182
+ ruby: /* @__PURE__ */ new Set(["type", "children"]),
183
+ rubyText: /* @__PURE__ */ new Set(["type", "children"]),
184
+ rubyFallback: /* @__PURE__ */ new Set(["type", "children"]),
185
+ inlineCheckbox: /* @__PURE__ */ new Set([
186
+ "type",
187
+ "checked",
188
+ "label"
189
+ ]),
190
+ blockGroup: /* @__PURE__ */ new Set(["type", "children"]),
191
+ section: /* @__PURE__ */ new Set(["type", "children"]),
192
+ definitionList: /* @__PURE__ */ new Set(["type", "entries"]),
193
+ semanticTable: /* @__PURE__ */ new Set([
194
+ "type",
195
+ "label",
196
+ "columnGroups",
197
+ "caption",
198
+ "head",
199
+ "body",
200
+ "foot",
201
+ "headMetadata",
202
+ "bodyMetadata",
203
+ "footMetadata"
204
+ ])
205
+ }, P = /* @__PURE__ */ new Set([
139
206
  "id",
140
207
  "header",
208
+ "headerChildren",
141
209
  "headerPresentation",
142
- "align"
143
- ]), u = /* @__PURE__ */ new Set(["id", "cells"]), d = /* @__PURE__ */ new Set(["children"]), f = /* @__PURE__ */ new Set([
144
- "text",
145
- "strong",
146
- "emphasis",
147
- "deletion",
148
- "keyboard",
149
- "superscript",
150
- "subscript",
151
- "footnoteReference",
152
- "footnoteBacklink",
153
- "inlineCode",
154
- "link",
155
- "mathInline"
156
- ]), p = /* @__PURE__ */ new Set([
210
+ "align",
211
+ ...r
212
+ ]), F = /* @__PURE__ */ new Set([
213
+ "id",
214
+ "cells",
215
+ ...r
216
+ ]), I = /* @__PURE__ */ new Set(["children", ...r]), L = /* @__PURE__ */ new Set(/* @__PURE__ */ "text.strong.attention.emphasis.idiomatic.deletion.strikethrough.keyboard.superscript.subscript.footnoteReference.footnoteBacklink.inlineCode.link.mathInline.hardBreak.inlineImage.anchorLink.anchorTarget.insertion.quotation.sample.monospace.variable.inlineGroup.ruby.inlineCheckbox".split(".")), R = /* @__PURE__ */ new Set([
157
217
  "paragraph",
158
218
  "heading",
159
219
  "list",
@@ -167,490 +227,638 @@ var o = /* @__PURE__ */ new Set([
167
227
  "mathBlock",
168
228
  "table",
169
229
  "callout",
170
- "actionGroup"
171
- ]), m = /* @__PURE__ */ new Set([
230
+ "actionGroup",
231
+ "blockGroup",
232
+ "section",
233
+ "definitionList",
234
+ "semanticTable"
235
+ ]), z = /* @__PURE__ */ new Set([
172
236
  "neutral",
173
237
  "information",
174
238
  "success",
175
239
  "warning",
176
240
  "danger"
177
- ]), h = /* @__PURE__ */ new Set([
241
+ ]), B = /* @__PURE__ */ new Set([
178
242
  "primary",
179
243
  "secondary",
180
244
  "danger"
181
- ]), g = /* @__PURE__ */ new Set([
245
+ ]), V = /* @__PURE__ */ new Set([
182
246
  "left",
183
247
  "center",
184
248
  "right"
185
- ]), _ = /* @__PURE__ */ new Set(["visible", "assistive"]);
186
- function v(e, t, n) {
187
- throw new i(e, t, n);
188
- }
189
- function y(e, t, n) {
190
- n.ancestors.has(e) && v("cyclic_value", t, "cyclic values are not allowed"), n.ancestors.add(e);
191
- }
192
- function b(e, t, n) {
193
- (typeof e != "object" || !e || Array.isArray(e) || Object.getPrototypeOf(e) !== Object.prototype) && v("invalid_type", t, "expected a plain object"), y(e, t, n);
194
- let r = {};
195
- for (let n of Reflect.ownKeys(e)) {
196
- typeof n != "string" && v("unknown_field", t, "symbol fields are not allowed");
197
- let i = Object.getOwnPropertyDescriptor(e, n);
198
- (!i?.enumerable || !("value" in i)) && v("invalid_structure", `${t}.${n}`, "expected an enumerable data property"), r[n] = i.value;
249
+ ]), H = /* @__PURE__ */ new Set(["visible", "assistive"]);
250
+ function U(e) {
251
+ switch (e) {
252
+ case "strong":
253
+ case "attention":
254
+ case "emphasis":
255
+ case "idiomatic":
256
+ case "deletion":
257
+ case "strikethrough":
258
+ case "insertion":
259
+ case "quotation":
260
+ case "sample":
261
+ case "monospace":
262
+ case "variable":
263
+ case "inlineGroup":
264
+ case "superscript":
265
+ case "subscript":
266
+ case "keyboard":
267
+ case "inlineCode":
268
+ case "rubyText":
269
+ case "rubyFallback":
270
+ case "paragraph":
271
+ case "anchorTarget":
272
+ case "blockGroup":
273
+ case "mathInline":
274
+ case "mathBlock":
275
+ case "codeBlock":
276
+ case "callout":
277
+ case "resource":
278
+ case "action":
279
+ case "inlineCheckbox":
280
+ case "text":
281
+ case "hardBreak": return !1;
282
+ default: return !0;
199
283
  }
200
- return r;
201
284
  }
202
- function x(e, t) {
203
- t.ancestors.delete(e);
285
+ function W(e, t, n) {
286
+ if (!U(e)) for (let r of ["accessibleLabel", "labelledBy"]) t[r] !== void 0 && f("invalid_structure", `${n}.${r}`, `${e} has a non-naming native semantic owner; use its declared content or label contract`);
204
287
  }
205
- function S(e, t, n) {
206
- let r = Object.keys(e).filter((e) => !n.has(e));
207
- r.length > 0 && v("unknown_field", `${t}.${r[0]}`, "field is not part of the closed contract");
288
+ function G(e) {
289
+ return U(e.type);
208
290
  }
209
- function C(e, t, n, r) {
210
- Array.isArray(e) || v("invalid_type", t, "expected an array"), y(e, t, n), e.length < r.minimum && v("invalid_value", t, `expected at least ${r.minimum} items`), e.length > r.maximum && v("limit_exceeded", t, `maximum is ${r.maximum} items`);
211
- let i = [];
212
- for (let n of Reflect.ownKeys(e)) n !== "length" && (typeof n != "string" || !/^(0|[1-9]\d*)$/u.test(n) || Number(n) >= e.length) && v("unknown_field", t, `array field ${String(n)} is not allowed`);
213
- for (let n = 0; n < e.length; n += 1) {
214
- let r = Object.getOwnPropertyDescriptor(e, String(n));
215
- (!r?.enumerable || !("value" in r)) && v("invalid_structure", `${t}[${n}]`, "sparse arrays and accessors are not allowed"), i.push(r.value);
216
- }
217
- return i;
291
+ function K(e, t) {
292
+ for (let n of ["accessibleLabel", "labelledBy"]) e[n] !== void 0 && f("invalid_structure", `${t}.${n}`, "metadata must match its non-naming semantic owner");
218
293
  }
219
- function w(e, t, n = {}) {
220
- typeof e != "string" && v("invalid_type", t, "expected a string");
221
- let r = n.maximum ?? 1048576;
222
- return !n.allowEmpty && e.length === 0 && v("invalid_value", t, "expected a non-empty string"), e.length > r && v("limit_exceeded", t, `maximum length is ${r}`), n.stable && e !== e.trim() && v("invalid_value", t, "surrounding whitespace is not allowed"), e;
223
- }
224
- function T(e, t) {
225
- return e === void 0 ? void 0 : w(e, t);
226
- }
227
- function E(e, t) {
228
- let n = w(e, t, {
229
- stable: !0,
230
- maximum: 128
294
+ function q(e, t) {
295
+ return e.some((e) => {
296
+ if (e.type === "text") return e.value.trim().length > 0;
297
+ if (e.type === "inlineCode") return e.code.trim().length > 0;
298
+ if (e.type === "mathInline") return e.source.trim().length > 0;
299
+ if (e.type === "keyboard" && e.value !== void 0) return e.value.trim().length > 0;
300
+ if ("accessibleLabel" in e && e.accessibleLabel !== void 0 || "labelledBy" in e && e.labelledBy !== void 0) return !0;
301
+ if (e.type === "inlineImage") {
302
+ if (t === void 0) return !0;
303
+ let n = t.get(e.resourceId);
304
+ return n?.kind === "image" && n.alt.trim().length > 0;
305
+ }
306
+ return "children" in e && e.children !== void 0 && q(e.children, t);
231
307
  });
232
- return /^[A-Za-z0-9](?:[A-Za-z0-9_-]{0,127})$/u.test(n) || v("invalid_value", t, "expected a stable ASCII footnote identifier"), n;
233
- }
234
- function D(e, t, n, r) {
235
- let i = e.get(t);
236
- i !== void 0 && v("duplicate_id", n, `duplicate ${r} ID ${JSON.stringify(t)}; first declared at ${i}`), e.set(t, n);
237
308
  }
238
- function O(e, t) {
239
- return typeof e != "boolean" && v("invalid_type", t, "expected a boolean"), e;
309
+ function J(e, t, n) {
310
+ e.accessibleLabel !== void 0 || e.labelledBy !== void 0 || e.title !== void 0 && e.title.trim().length > 0 || q(e.children, n) || f("invalid_structure", `${t}.children`, "a link requires an explicit accessible name or readable phrasing content; image names come from admitted alt text");
240
311
  }
241
- function k(e, t, n, r) {
242
- return (!Number.isSafeInteger(e) || typeof e != "number") && v("invalid_type", t, "expected a safe integer"), (e < n || e > r) && v("invalid_value", t, `expected ${n}..${r}`), e;
243
- }
244
- function A(e, t, n) {
245
- return (typeof e != "string" || !n.has(e)) && v("invalid_value", t, `expected one of ${[...n].join(", ")}`), e;
246
- }
247
- function j(e, t, n) {
248
- let r = w(e, t, {
249
- stable: !0,
250
- maximum: 8192
251
- });
252
- (/\s|[\u0000-\u001F\u007F]/u.test(r) || r.includes("\\")) && v("unsafe_url", t, "whitespace, control characters, and backslashes are not allowed"), r.startsWith("//") && v("unsafe_url", t, "scheme-relative URLs are not allowed");
253
- let i = /^([A-Za-z][A-Za-z0-9+.-]*):/u.exec(r)?.[1]?.toLowerCase();
254
- if (i === void 0) return n === "resource" && r.startsWith("#") && v("unsafe_url", t, "fragment-only resource URLs are not allowed"), r;
255
- (n === "link" ? /* @__PURE__ */ new Set([
256
- "http",
257
- "https",
258
- "mailto",
259
- "tel"
260
- ]) : /* @__PURE__ */ new Set([
261
- "http",
262
- "https",
263
- "blob"
264
- ])).has(i) || v("unsafe_url", t, `protocol ${i}: is not allowed for ${n}`);
265
- let a;
266
- try {
267
- a = new URL(r);
268
- } catch {
269
- v("unsafe_url", t, "URL syntax is invalid");
270
- }
271
- return (i === "http" || i === "https") && (a.username.length > 0 || a.password.length > 0) && v("unsafe_url", t, "URL credentials are not allowed"), r;
272
- }
273
- function M(e, n, r, i, a, o = 1) {
274
- let s = C(e, n, r, {
275
- minimum: o,
276
- maximum: t
312
+ function Y(e, t, n, r, i, a = 0) {
313
+ let s = m(e, t, n, {
314
+ minimum: a,
315
+ maximum: o
277
316
  });
278
317
  try {
279
- return Object.freeze(s.map((e, t) => L(e, `${n}[${t}]`, r, i, "inline", a)));
318
+ return Object.freeze(s.map((e, a) => Z(e, `${t}[${a}]`, n, r, "inline", i)));
280
319
  } finally {
281
- x(e, r);
320
+ p(e, n);
282
321
  }
283
322
  }
284
- function N(e, n, r, i, a = 1) {
285
- let o = C(e, n, r, {
286
- minimum: a,
287
- maximum: t
323
+ function X(e, t, n, r, i = 0) {
324
+ let a = m(e, t, n, {
325
+ minimum: i,
326
+ maximum: o
288
327
  });
289
328
  try {
290
- return Object.freeze(o.map((e, t) => L(e, `${n}[${t}]`, r, i, "block", !1)));
329
+ return Object.freeze(a.map((e, i) => Z(e, `${t}[${i}]`, n, r, "block", !1)));
291
330
  } finally {
292
- x(e, r);
331
+ p(e, n);
293
332
  }
294
333
  }
295
- function P(e, t, n) {
296
- let r = b(e, t, n);
334
+ function te(e, t, n, r) {
335
+ u(t, n, r);
336
+ let i = w(e, t, n);
297
337
  try {
298
- S(r, t, l);
299
- let e = r.headerPresentation === void 0 ? void 0 : A(r.headerPresentation, `${t}.headerPresentation`, _), n = r.align === void 0 ? void 0 : A(r.align, `${t}.align`, g);
338
+ l(i, t, P);
339
+ let e = i.headerPresentation === void 0 ? void 0 : g(i.headerPresentation, `${t}.headerPresentation`, H), a = i.align === void 0 ? void 0 : g(i.align, `${t}.align`, V);
300
340
  return Object.freeze({
301
- id: w(r.id, `${t}.id`, {
341
+ ...T(i, t, n),
342
+ id: E(i.id, `${t}.id`, {
302
343
  stable: !0,
303
344
  maximum: 256
304
345
  }),
305
- header: w(r.header, `${t}.header`),
346
+ header: x(i.header, `${t}.header`),
347
+ ...i.headerChildren === void 0 ? {} : { headerChildren: Y(i.headerChildren, `${t}.headerChildren`, n, r + 1, !1) },
306
348
  ...e === void 0 ? {} : { headerPresentation: e },
307
- ...n === void 0 ? {} : { align: n }
349
+ ...a === void 0 ? {} : { align: a }
308
350
  });
309
351
  } finally {
310
- x(e, n);
352
+ p(e, n);
311
353
  }
312
354
  }
313
- function F(e, t, n, r) {
314
- let i = b(e, t, n);
355
+ function ne(e, t, n, r) {
356
+ u(t, n, r);
357
+ let i = w(e, t, n);
315
358
  try {
316
- return S(i, t, d), Object.freeze({ children: M(i.children, `${t}.children`, n, r + 1, !1, 0) });
359
+ return l(i, t, I), Object.freeze({
360
+ ...T(i, t, n),
361
+ children: Y(i.children, `${t}.children`, n, r + 1, !1, 0)
362
+ });
317
363
  } finally {
318
- x(e, n);
364
+ p(e, n);
319
365
  }
320
366
  }
321
- function I(e, t, n, r, i) {
322
- let a = b(e, t, n);
367
+ function re(e, t, n, r, i) {
368
+ u(t, n, r);
369
+ let a = w(e, t, n);
323
370
  try {
324
- S(a, t, u);
325
- let e = C(a.cells, `${t}.cells`, n, {
371
+ l(a, t, F);
372
+ let e = m(a.cells, `${t}.cells`, n, {
326
373
  minimum: i,
327
374
  maximum: i
328
375
  });
329
376
  try {
330
377
  return Object.freeze({
331
- id: w(a.id, `${t}.id`, {
378
+ ...T(a, t, n),
379
+ id: E(a.id, `${t}.id`, {
332
380
  stable: !0,
333
381
  maximum: 256
334
382
  }),
335
- cells: Object.freeze(e.map((e, i) => F(e, `${t}.cells[${i}]`, n, r)))
383
+ cells: Object.freeze(e.map((e, i) => ne(e, `${t}.cells[${i}]`, n, r)))
336
384
  });
337
385
  } finally {
338
- x(a.cells, n);
386
+ p(a.cells, n);
339
387
  }
340
388
  } finally {
341
- x(e, n);
389
+ p(e, n);
342
390
  }
343
391
  }
344
- function L(e, n, r, i, a, o) {
345
- i > 32 && v("limit_exceeded", n, "maximum depth is 32"), r.nodeCount += 1, r.nodeCount > 1e4 && v("limit_exceeded", n, `maximum node count is ${t}`);
346
- let s = b(e, n, r);
392
+ function ie(e, t) {
393
+ let n = E(e, t, {
394
+ stable: !0,
395
+ maximum: 256
396
+ }), r = /^(\d{4,})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2})(?::(\d{2})(?:\.\d+)?)?(?:Z|[+-](\d{2}):?(\d{2}))?)?$/u.exec(n);
397
+ r === null && f("invalid_value", t, "expected an ISO date or date-time annotation");
398
+ let i = Number(r[1]), a = Number(r[2]), o = Number(r[3]), s = [
399
+ 31,
400
+ i % 4 == 0 && (i % 100 != 0 || i % 400 == 0) ? 29 : 28,
401
+ 31,
402
+ 30,
403
+ 31,
404
+ 30,
405
+ 31,
406
+ 31,
407
+ 30,
408
+ 31,
409
+ 30,
410
+ 31
411
+ ][a - 1];
412
+ return (!Number.isSafeInteger(i) || i < 1 || s === void 0 || o < 1 || o > s || Number(r[4] ?? 0) > 23 || Number(r[5] ?? 0) > 59 || Number(r[6] ?? 0) > 59 || Number(r[7] ?? 0) > 23 || Number(r[8] ?? 0) > 59) && f("invalid_value", t, "date-time annotation contains an invalid calendar or time value"), n;
413
+ }
414
+ function ae(e, t, n, i) {
415
+ let a = m(e, t, n, {
416
+ minimum: 0,
417
+ maximum: o
418
+ });
347
419
  try {
348
- (typeof s.type != "string" || !U(c, s.type)) && v("unknown_node_type", `${n}.type`, `unsupported node type ${JSON.stringify(s.type)}`);
349
- let e = s.type;
350
- if (S(s, n, c[e]), a === "inline" && !f.has(e) && v("invalid_structure", n, `${e} is not an inline node`), a === "block" && !p.has(e) && v("invalid_structure", n, `${e} is not a block node`), a === "listItem" && e !== "listItem" && v("invalid_structure", n, "list children must be listItem nodes"), a === "action" && e !== "action" && v("invalid_structure", n, "actionGroup children must be action nodes"), e === "text") return Object.freeze({
351
- type: e,
352
- value: w(s.value, `${n}.value`)
353
- });
354
- if (e === "inlineCode") return Object.freeze({
355
- type: e,
356
- code: w(s.code, `${n}.code`, { allowEmpty: !0 })
357
- });
358
- if (e === "keyboard") return Object.freeze({
359
- type: e,
360
- value: w(s.value, `${n}.value`)
361
- });
362
- if (e === "mathInline") return Object.freeze({
363
- type: e,
364
- source: w(s.source, `${n}.source`)
365
- });
366
- if (e === "strong" || e === "emphasis" || e === "deletion" || e === "superscript" || e === "subscript") return Object.freeze({
367
- type: e,
368
- children: M(s.children, `${n}.children`, r, i + 1, o)
369
- });
370
- if (e === "footnoteReference" || e === "footnoteBacklink") {
371
- o && v("invalid_structure", n, `${e} cannot be nested inside a link`);
372
- let t = E(s.id, `${n}.id`), i = w(s.label, `${n}.label`), a = T(s.marker, `${n}.marker`);
373
- return D(e === "footnoteReference" ? r.footnoteReferences : r.footnoteBacklinks, t, `${n}.id`, e), Object.freeze({
374
- type: e,
375
- id: t,
376
- label: i,
377
- ...a === void 0 ? {} : { marker: a }
420
+ return Object.freeze(a.map((e, a) => {
421
+ let s = `${t}[${a}]`, c = w(e, s, n);
422
+ try {
423
+ l(c, s, /* @__PURE__ */ new Set(["terms", "descriptions"]));
424
+ let e = (e) => {
425
+ let t = m(c[e], `${s}.${e}`, n, {
426
+ minimum: 1,
427
+ maximum: o
428
+ });
429
+ try {
430
+ return Object.freeze(t.map((t, a) => {
431
+ let o = `${s}.${e}[${a}]`;
432
+ u(o, n, i + 1);
433
+ let c = w(t, o, n);
434
+ try {
435
+ l(c, o, /* @__PURE__ */ new Set(["children", ...r]));
436
+ let t = T(c, o, n);
437
+ return Object.freeze(e === "terms" ? {
438
+ ...t,
439
+ children: Y(c.children, `${o}.children`, n, i + 2, !1)
440
+ } : {
441
+ ...t,
442
+ children: X(c.children, `${o}.children`, n, i + 2)
443
+ });
444
+ } finally {
445
+ p(t, n);
446
+ }
447
+ }));
448
+ } finally {
449
+ p(c[e], n);
450
+ }
451
+ }, t = e("terms"), a = e("descriptions");
452
+ return Object.freeze({
453
+ terms: t,
454
+ descriptions: a
455
+ });
456
+ } finally {
457
+ p(e, n);
458
+ }
459
+ }));
460
+ } finally {
461
+ p(e, n);
462
+ }
463
+ }
464
+ function Z(n, i, a, s, c, d, k = !1) {
465
+ u(i, a, s);
466
+ let j = w(n, i, a);
467
+ try {
468
+ (typeof j.type != "string" || !ce(N, j.type)) && f("unknown_node_type", `${i}.type`, `unsupported node type ${JSON.stringify(j.type)}`);
469
+ let n = j.type, u = n !== "text" && n !== "hardBreak";
470
+ l(j, i, /* @__PURE__ */ new Set([...N[n], ...u ? r : []])), W(n, j, i), c === "inline" && !L.has(n) && f("invalid_structure", i, `${n} is not an inline node`), c === "block" && !R.has(n) && f("invalid_structure", i, `${n} is not a block node`), c === "listItem" && n !== "listItem" && f("invalid_structure", i, "list children must be listItem nodes"), c === "action" && n !== "action" && f("invalid_structure", i, "actionGroup children must be action nodes"), c === "rubyChild" && !L.has(n) && n !== "rubyText" && n !== "rubyFallback" && f("invalid_structure", i, "ruby children must be inline content or explicit rubyText/rubyFallback nodes"), (n === "rubyText" || n === "rubyFallback") && c !== "rubyChild" && f("invalid_structure", i, `${n} is only valid directly inside ruby`), d && n !== "anchorLink" && j.anchorId !== void 0 && f("invalid_structure", `${i}.anchorId`, "focusable anchor targets cannot be nested inside a link");
471
+ let w = u ? T(j, i, a, n !== "anchorLink") : {}, M = (() => {
472
+ if (n === "text") return Object.freeze({
473
+ type: n,
474
+ value: E(j.value, `${i}.value`, { allowEmpty: !0 })
378
475
  });
379
- }
380
- if (e === "link") {
381
- o && v("invalid_structure", n, "nested links are not allowed");
382
- let t = T(s.title, `${n}.title`), a = s.current === void 0 ? void 0 : O(s.current, `${n}.current`);
383
- return Object.freeze({
384
- type: e,
385
- href: j(s.href, `${n}.href`, "link"),
386
- ...t === void 0 ? {} : { title: t },
387
- ...a === void 0 ? {} : { current: a },
388
- children: M(s.children, `${n}.children`, r, i + 1, !0)
476
+ if (n === "inlineCode") return Object.freeze({
477
+ type: n,
478
+ code: E(j.code, `${i}.code`, { allowEmpty: !0 })
389
479
  });
390
- }
391
- if (e === "paragraph") return Object.freeze({
392
- type: e,
393
- children: M(s.children, `${n}.children`, r, i + 1, !1)
394
- });
395
- if (e === "heading") return Object.freeze({
396
- type: e,
397
- level: k(s.level, `${n}.level`, 1, 6),
398
- children: M(s.children, `${n}.children`, r, i + 1, !1)
399
- });
400
- if (e === "listItem") {
401
- let t = s.checked === void 0 ? void 0 : O(s.checked, `${n}.checked`), a = T(s.checkboxLabel, `${n}.checkboxLabel`);
402
- return t !== void 0 && a === void 0 && v("invalid_structure", `${n}.checkboxLabel`, "task list items require an accessible checkbox label"), t === void 0 && a !== void 0 && v("invalid_structure", `${n}.checkboxLabel`, "checkboxLabel is only valid for task list items"), Object.freeze({
403
- type: e,
404
- ...t === void 0 ? {} : {
405
- checked: t,
406
- checkboxLabel: a
407
- },
408
- children: N(s.children, `${n}.children`, r, i + 1)
480
+ if (n === "hardBreak") return Object.freeze({ type: n });
481
+ if (n === "inlineImage") return Object.freeze({
482
+ type: n,
483
+ ...O(j, i, a, s)
409
484
  });
410
- }
411
- if (e === "list") {
412
- let a = C(s.children, `${n}.children`, r, {
413
- minimum: 1,
414
- maximum: t
485
+ if (n === "inlineCheckbox") return d && f("invalid_structure", i, "checkboxes cannot be nested inside a link"), Object.freeze({
486
+ type: n,
487
+ checked: h(j.checked, `${i}.checked`),
488
+ label: x(j.label, `${i}.label`)
415
489
  });
416
- try {
417
- let t = O(s.ordered, `${n}.ordered`);
418
- !t && s.start !== void 0 && v("invalid_structure", `${n}.start`, "start is only valid for ordered lists");
419
- let o = s.start === void 0 ? void 0 : k(s.start, `${n}.start`, 1, 2 ** 53 - 1);
420
- return Object.freeze({
421
- type: e,
422
- ordered: t,
423
- ...o === void 0 ? {} : { start: o },
424
- children: Object.freeze(a.map((e, t) => L(e, `${n}.children[${t}]`, r, i + 1, "listItem", !1)))
490
+ if (n === "anchorTarget") return Object.freeze({
491
+ type: n,
492
+ anchorId: y(j.anchorId, `${i}.anchorId`),
493
+ ...j.children === void 0 ? {} : { children: Y(j.children, `${i}.children`, a, s + 1, d) }
494
+ });
495
+ if (n === "anchorLink") {
496
+ d && f("invalid_structure", i, "nested links are not allowed");
497
+ let e = y(j.anchorId, `${i}.anchorId`);
498
+ return a.anchorReferences.set(`${i}.anchorId`, e), Object.freeze({
499
+ type: n,
500
+ ...w,
501
+ anchorId: e,
502
+ children: Y(j.children, `${i}.children`, a, s + 1, !0)
425
503
  });
426
- } finally {
427
- x(s.children, r);
428
504
  }
429
- }
430
- if (e === "quote") return Object.freeze({
431
- type: e,
432
- children: N(s.children, `${n}.children`, r, i + 1)
433
- });
434
- if (e === "disclosure") {
435
- let t = s.open === void 0 ? void 0 : O(s.open, `${n}.open`);
436
- return Object.freeze({
437
- type: e,
438
- summary: w(s.summary, `${n}.summary`),
439
- ...t === void 0 ? {} : { open: t },
440
- children: N(s.children, `${n}.children`, r, i + 1)
505
+ if (n === "keyboard") return j.value === void 0 == (j.children === void 0) && f("invalid_structure", i, "keyboard requires exactly one value or children representation"), Object.freeze(j.children === void 0 ? {
506
+ type: n,
507
+ value: E(j.value, `${i}.value`)
508
+ } : {
509
+ type: n,
510
+ children: Y(j.children, `${i}.children`, a, s + 1, d)
441
511
  });
442
- }
443
- if (e === "footnoteDefinition") {
444
- let t = E(s.id, `${n}.id`);
445
- return D(r.footnoteDefinitions, t, `${n}.id`, "footnote definition"), Object.freeze({
446
- type: e,
447
- id: t,
448
- label: w(s.label, `${n}.label`),
449
- children: N(s.children, `${n}.children`, r, i + 1)
512
+ if (n === "ruby") {
513
+ let e = m(j.children, `${i}.children`, a, {
514
+ minimum: 0,
515
+ maximum: o
516
+ });
517
+ try {
518
+ return Object.freeze({
519
+ type: n,
520
+ ...w,
521
+ children: Object.freeze(e.map((e, t) => Z(e, `${i}.children[${t}]`, a, s + 1, "rubyChild", d)))
522
+ });
523
+ } finally {
524
+ p(j.children, a);
525
+ }
526
+ }
527
+ if (n === "mathInline") return Object.freeze({
528
+ type: n,
529
+ source: E(j.source, `${i}.source`)
450
530
  });
451
- }
452
- if (e === "divider") return Object.freeze({ type: e });
453
- if (e === "image") {
454
- let t = s.caption === void 0 ? void 0 : M(s.caption, `${n}.caption`, r, i + 1, !1);
455
- return Object.freeze({
456
- type: e,
457
- resourceId: w(s.resourceId, `${n}.resourceId`, {
458
- stable: !0,
459
- maximum: 256
460
- }),
461
- ...t === void 0 ? {} : { caption: t }
531
+ if (n === "strong" || n === "attention" || n === "emphasis" || n === "idiomatic" || n === "strikethrough" || n === "deletion" || n === "superscript" || n === "subscript" || n === "insertion" || n === "quotation" || n === "sample" || n === "monospace" || n === "variable" || n === "inlineGroup" || n === "rubyText" || n === "rubyFallback") return Object.freeze({
532
+ type: n,
533
+ ...j.cite === void 0 ? {} : { cite: D(j.cite, `${i}.cite`, "link") },
534
+ ...j.dateTime === void 0 ? {} : { dateTime: ie(j.dateTime, `${i}.dateTime`) },
535
+ children: Y(j.children, `${i}.children`, a, s + 1, d)
462
536
  });
463
- }
464
- if (e === "resource") {
465
- let t = T(s.description, `${n}.description`);
466
- return Object.freeze({
467
- type: e,
468
- resourceId: w(s.resourceId, `${n}.resourceId`, {
469
- stable: !0,
470
- maximum: 256
471
- }),
472
- label: w(s.label, `${n}.label`),
473
- ...t === void 0 ? {} : { description: t }
537
+ if (n === "footnoteReference" || n === "footnoteBacklink") {
538
+ d && f("invalid_structure", i, `${n} cannot be nested inside a link`);
539
+ let e = v(j, i, a, n), t = x(j.label, `${i}.label`), r = C(j.marker, `${i}.marker`);
540
+ return Object.freeze({
541
+ type: n,
542
+ ...w,
543
+ ...e,
544
+ label: t,
545
+ ...r === void 0 ? {} : { marker: r }
546
+ });
547
+ }
548
+ if (n === "link") {
549
+ d && f("invalid_structure", i, "nested links are not allowed");
550
+ let e = C(j.title, `${i}.title`), t = j.current === void 0 ? void 0 : h(j.current, `${i}.current`);
551
+ return Object.freeze({
552
+ type: n,
553
+ href: D(j.href, `${i}.href`, "link"),
554
+ ...e === void 0 ? {} : { title: e },
555
+ ...t === void 0 ? {} : { current: t },
556
+ children: Y(j.children, `${i}.children`, a, s + 1, !0)
557
+ });
558
+ }
559
+ if (n === "paragraph") return Object.freeze({
560
+ type: n,
561
+ children: Y(j.children, `${i}.children`, a, s + 1, !1)
474
562
  });
475
- }
476
- if (e === "codeBlock") {
477
- let t = T(s.language, `${n}.language`), r = T(s.label, `${n}.label`), i = s.showLineNumbers === void 0 ? void 0 : O(s.showLineNumbers, `${n}.showLineNumbers`);
478
- return Object.freeze({
479
- type: e,
480
- code: w(s.code, `${n}.code`, { allowEmpty: !0 }),
481
- ...t === void 0 ? {} : { language: t },
482
- ...r === void 0 ? {} : { label: r },
483
- ...i === void 0 ? {} : { showLineNumbers: i }
563
+ if (n === "heading") {
564
+ let r = j.presentation === void 0 ? void 0 : g(j.presentation, `${i}.presentation`, H), o = Y(j.children, `${i}.children`, a, s + 1, !1);
565
+ return r === "assistive" && t(o, `${i}.children`, { node: (t, n) => {
566
+ e(t) && f("invalid_structure", n, "assistive headings cannot contain interactive owners");
567
+ } }), Object.freeze({
568
+ type: n,
569
+ level: b(j.level, `${i}.level`, 1, 6),
570
+ ...r === void 0 ? {} : { presentation: r },
571
+ children: o
572
+ });
573
+ }
574
+ if (n === "listItem") {
575
+ !k && j.value !== void 0 && f("invalid_structure", `${i}.value`, "value is only valid for ordered list items");
576
+ let e = j.value === void 0 ? void 0 : b(j.value, `${i}.value`, -(2 ** 53 - 1), 2 ** 53 - 1), t = j.checked === void 0 ? void 0 : h(j.checked, `${i}.checked`), r = S(j.checkboxLabel, `${i}.checkboxLabel`);
577
+ return t !== void 0 && r === void 0 && f("invalid_structure", `${i}.checkboxLabel`, "task list items require an accessible checkbox label"), t === void 0 && r !== void 0 && f("invalid_structure", `${i}.checkboxLabel`, "checkboxLabel is only valid for task list items"), Object.freeze({
578
+ type: n,
579
+ ...w,
580
+ ...e === void 0 ? {} : { value: e },
581
+ ...t === void 0 ? {} : {
582
+ checked: t,
583
+ checkboxLabel: r
584
+ },
585
+ children: X(j.children, `${i}.children`, a, s + 1)
586
+ });
587
+ }
588
+ if (n === "list") {
589
+ let e = m(j.children, `${i}.children`, a, {
590
+ minimum: 0,
591
+ maximum: o
592
+ });
593
+ try {
594
+ let t = h(j.ordered, `${i}.ordered`);
595
+ !t && j.start !== void 0 && f("invalid_structure", `${i}.start`, "start is only valid for ordered lists");
596
+ let r = j.start === void 0 ? void 0 : b(j.start, `${i}.start`, -(2 ** 53 - 1), 2 ** 53 - 1);
597
+ return Object.freeze({
598
+ type: n,
599
+ ordered: t,
600
+ ...r === void 0 ? {} : { start: r },
601
+ children: Object.freeze(e.map((e, n) => Z(e, `${i}.children[${n}]`, a, s + 1, "listItem", !1, t)))
602
+ });
603
+ } finally {
604
+ p(j.children, a);
605
+ }
606
+ }
607
+ if (n === "quote") return Object.freeze({
608
+ type: n,
609
+ ...w,
610
+ ...j.cite === void 0 ? {} : { cite: D(j.cite, `${i}.cite`, "link") },
611
+ children: X(j.children, `${i}.children`, a, s + 1)
484
612
  });
485
- }
486
- if (e === "mathBlock") {
487
- let t = T(s.label, `${n}.label`);
488
- return Object.freeze({
489
- type: e,
490
- source: w(s.source, `${n}.source`),
491
- ...t === void 0 ? {} : { label: t }
613
+ if (n === "disclosure") {
614
+ let e = j.open === void 0 ? void 0 : h(j.open, `${i}.open`);
615
+ return Object.freeze({
616
+ type: n,
617
+ summary: x(j.summary, `${i}.summary`),
618
+ ...j.summaryChildren === void 0 ? {} : { summaryChildren: Y(j.summaryChildren, `${i}.summaryChildren`, a, s + 1, !1) },
619
+ ...e === void 0 ? {} : { open: e },
620
+ children: X(j.children, `${i}.children`, a, s + 1)
621
+ });
622
+ }
623
+ if (n === "footnoteDefinition") {
624
+ let e = _(j.id, `${i}.id`);
625
+ return ee(a.footnoteDefinitions, e, `${i}.id`, "footnote definition"), Object.freeze({
626
+ type: n,
627
+ id: e,
628
+ label: x(j.label, `${i}.label`),
629
+ children: X(j.children, `${i}.children`, a, s + 1)
630
+ });
631
+ }
632
+ if (n === "divider") return Object.freeze({ type: n });
633
+ if (n === "image") {
634
+ let e = j.caption === void 0 ? void 0 : Y(j.caption, `${i}.caption`, a, s + 1, !1);
635
+ return Object.freeze({
636
+ type: n,
637
+ ...O(j, i, a, s),
638
+ ...e === void 0 ? {} : { caption: e }
639
+ });
640
+ }
641
+ if (n === "resource") {
642
+ let e = C(j.description, `${i}.description`);
643
+ return Object.freeze({
644
+ type: n,
645
+ resourceId: E(j.resourceId, `${i}.resourceId`, {
646
+ stable: !0,
647
+ maximum: 256
648
+ }),
649
+ label: x(j.label, `${i}.label`),
650
+ ...e === void 0 ? {} : { description: e }
651
+ });
652
+ }
653
+ if (n === "codeBlock") {
654
+ let e = C(j.language, `${i}.language`), t = S(j.label, `${i}.label`), r = j.showLineNumbers === void 0 ? void 0 : h(j.showLineNumbers, `${i}.showLineNumbers`);
655
+ return Object.freeze({
656
+ type: n,
657
+ code: E(j.code, `${i}.code`, { allowEmpty: !0 }),
658
+ ...e === void 0 ? {} : { language: e },
659
+ ...t === void 0 ? {} : { label: t },
660
+ ...r === void 0 ? {} : { showLineNumbers: r }
661
+ });
662
+ }
663
+ if (n === "mathBlock") {
664
+ let e = S(j.label, `${i}.label`);
665
+ return Object.freeze({
666
+ type: n,
667
+ source: E(j.source, `${i}.source`),
668
+ ...e === void 0 ? {} : { label: e }
669
+ });
670
+ }
671
+ if (n === "table") {
672
+ let e = m(j.columns, `${i}.columns`, a, {
673
+ minimum: 1,
674
+ maximum: 100
675
+ }), t;
676
+ try {
677
+ t = Object.freeze(e.map((e, t) => te(e, `${i}.columns[${t}]`, a, s + 1)));
678
+ } finally {
679
+ p(j.columns, a);
680
+ }
681
+ let r = /* @__PURE__ */ new Set();
682
+ for (let [e, n] of t.entries()) r.has(n.id) && f("duplicate_id", `${i}.columns[${e}].id`, `duplicate column ID ${JSON.stringify(n.id)}`), r.add(n.id);
683
+ let o = m(j.rows, `${i}.rows`, a, {
684
+ minimum: 0,
685
+ maximum: 1e4
686
+ }), c;
687
+ try {
688
+ c = Object.freeze(o.map((e, n) => re(e, `${i}.rows[${n}]`, a, s + 1, t.length)));
689
+ } finally {
690
+ p(j.rows, a);
691
+ }
692
+ let l = /* @__PURE__ */ new Set();
693
+ for (let [e, t] of c.entries()) l.has(t.id) && f("duplicate_id", `${i}.rows[${e}].id`, `duplicate row ID ${JSON.stringify(t.id)}`), l.add(t.id);
694
+ return Object.freeze({
695
+ type: n,
696
+ label: x(j.label, `${i}.label`),
697
+ columns: t,
698
+ rows: c
699
+ });
700
+ }
701
+ if (n === "blockGroup" || n === "section") return Object.freeze({
702
+ type: n,
703
+ children: X(j.children, `${i}.children`, a, s + 1)
492
704
  });
493
- }
494
- if (e === "table") {
495
- let t = C(s.columns, `${n}.columns`, r, {
705
+ if (n === "definitionList") return Object.freeze({
706
+ type: n,
707
+ ...w,
708
+ entries: ae(j.entries, `${i}.entries`, a, s + 1)
709
+ });
710
+ if (n === "semanticTable") return Object.freeze({
711
+ ...w,
712
+ ...A(j, i, a, s, {
713
+ inline: (e, t, n) => Y(e, t, a, n, !1),
714
+ block: (e, t, n) => X(e, t, a, n)
715
+ })
716
+ });
717
+ if (n === "callout") {
718
+ let e = S(j.title, `${i}.title`);
719
+ return Object.freeze({
720
+ type: n,
721
+ tone: g(j.tone, `${i}.tone`, z),
722
+ ...e === void 0 ? {} : { title: e },
723
+ children: X(j.children, `${i}.children`, a, s + 1)
724
+ });
725
+ }
726
+ if (n === "action") {
727
+ let e = E(j.id, `${i}.id`, {
728
+ stable: !0,
729
+ maximum: 256
730
+ });
731
+ a.actionIds.has(e) && f("duplicate_id", `${i}.id`, `duplicate action ID ${JSON.stringify(e)}`), a.actionIds.add(e);
732
+ let t = j.appearance === void 0 ? void 0 : g(j.appearance, `${i}.appearance`, B), r = j.disabled === void 0 ? void 0 : h(j.disabled, `${i}.disabled`);
733
+ return Object.freeze({
734
+ type: n,
735
+ id: e,
736
+ label: x(j.label, `${i}.label`),
737
+ ...t === void 0 ? {} : { appearance: t },
738
+ ...r === void 0 ? {} : { disabled: r }
739
+ });
740
+ }
741
+ let r = m(j.actions, `${i}.actions`, a, {
496
742
  minimum: 1,
497
743
  maximum: 100
498
- }), a;
499
- try {
500
- a = Object.freeze(t.map((e, t) => P(e, `${n}.columns[${t}]`, r)));
501
- } finally {
502
- x(s.columns, r);
503
- }
504
- let o = /* @__PURE__ */ new Set();
505
- for (let [e, t] of a.entries()) o.has(t.id) && v("duplicate_id", `${n}.columns[${e}].id`, `duplicate column ID ${JSON.stringify(t.id)}`), o.add(t.id);
506
- let c = C(s.rows, `${n}.rows`, r, {
507
- minimum: 0,
508
- maximum: 1e4
509
- }), l;
744
+ });
510
745
  try {
511
- l = Object.freeze(c.map((e, t) => I(e, `${n}.rows[${t}]`, r, i + 1, a.length)));
746
+ let e = S(j.label, `${i}.label`);
747
+ return Object.freeze({
748
+ type: "actionGroup",
749
+ ...e === void 0 ? {} : { label: e },
750
+ actions: Object.freeze(r.map((e, t) => Z(e, `${i}.actions[${t}]`, a, s + 1, "action", !1)))
751
+ });
512
752
  } finally {
513
- x(s.rows, r);
753
+ p(j.actions, a);
514
754
  }
515
- let u = /* @__PURE__ */ new Set();
516
- for (let [e, t] of l.entries()) u.has(t.id) && v("duplicate_id", `${n}.rows[${e}].id`, `duplicate row ID ${JSON.stringify(t.id)}`), u.add(t.id);
517
- return Object.freeze({
518
- type: e,
519
- label: w(s.label, `${n}.label`),
520
- columns: a,
521
- rows: l
522
- });
523
- }
524
- if (e === "callout") {
525
- let t = T(s.title, `${n}.title`);
526
- return Object.freeze({
527
- type: e,
528
- tone: A(s.tone, `${n}.tone`, m),
529
- ...t === void 0 ? {} : { title: t },
530
- children: N(s.children, `${n}.children`, r, i + 1)
531
- });
532
- }
533
- if (e === "action") {
534
- let t = w(s.id, `${n}.id`, {
535
- stable: !0,
536
- maximum: 256
537
- });
538
- r.actionIds.has(t) && v("duplicate_id", `${n}.id`, `duplicate action ID ${JSON.stringify(t)}`), r.actionIds.add(t);
539
- let i = s.appearance === void 0 ? void 0 : A(s.appearance, `${n}.appearance`, h), a = s.disabled === void 0 ? void 0 : O(s.disabled, `${n}.disabled`);
540
- return Object.freeze({
541
- type: e,
542
- id: t,
543
- label: w(s.label, `${n}.label`),
544
- ...i === void 0 ? {} : { appearance: i },
545
- ...a === void 0 ? {} : { disabled: a }
755
+ })();
756
+ if (G(M)) {
757
+ let e = Object.freeze({
758
+ ...w,
759
+ ...M
546
760
  });
761
+ return (e.type === "link" || e.type === "anchorLink") && J(e, i), e;
547
762
  }
548
- let l = C(s.actions, `${n}.actions`, r, {
549
- minimum: 1,
550
- maximum: 100
763
+ return K(w, i), Object.freeze({
764
+ ...w,
765
+ ...M
551
766
  });
552
- try {
553
- let e = T(s.label, `${n}.label`);
554
- return Object.freeze({
555
- type: "actionGroup",
556
- ...e === void 0 ? {} : { label: e },
557
- actions: Object.freeze(l.map((e, t) => L(e, `${n}.actions[${t}]`, r, i + 1, "action", !1)))
558
- });
559
- } finally {
560
- x(s.actions, r);
561
- }
562
767
  } finally {
563
- x(e, r);
768
+ p(n, a);
564
769
  }
565
770
  }
566
- function R(e) {
567
- let t = a(), n = b(e, "document", t);
771
+ function Q(e) {
772
+ let t = d(), n = w(e, "document", t);
568
773
  try {
569
- S(n, "document", o), n.version !== 1 && v("unsupported_version", "document.version", "expected 1");
570
- let e = N(n.nodes, "document.nodes", t, 1, 0);
571
- for (let [e, n] of t.footnoteReferences) t.footnoteDefinitions.has(e) || v("missing_resource", n, `footnote definition ${JSON.stringify(e)} is not declared`);
572
- for (let [e, n] of t.footnoteBacklinks) t.footnoteReferences.has(e) || v("missing_resource", n, `footnote reference ${JSON.stringify(e)} is not declared`);
774
+ l(n, "document", j), n.version !== 1 && f("unsupported_version", "document.version", "expected 1");
775
+ let e = X(n.nodes, "document.nodes", t, 1, 0);
776
+ for (let e of t.footnoteReferences.values()) t.footnoteDefinitions.has(e.id) || f("missing_resource", `${e.path}.id`, `footnote definition ${JSON.stringify(e.id)} is not declared`);
777
+ for (let [e, n] of t.footnoteBacklinks) t.footnoteReferences.has(e) || f("missing_resource", n.occurrencePath, `footnote reference occurrence ${JSON.stringify([n.id, n.occurrenceId])} is not declared`);
778
+ for (let [e, n] of [...t.anchorReferences, ...t.accessibilityReferences]) t.anchors.has(n) || f("missing_resource", e, `document anchor ${JSON.stringify(n)} is not declared`);
573
779
  return Object.freeze({
574
780
  version: 1,
575
- id: w(n.id, "document.id", {
781
+ id: E(n.id, "document.id", {
576
782
  stable: !0,
577
783
  maximum: 256
578
784
  }),
579
785
  nodes: e
580
786
  });
581
787
  } finally {
582
- x(e, t);
788
+ p(e, t);
583
789
  }
584
790
  }
585
- function z(e, t, n) {
586
- let r = b(e, t, n);
791
+ function oe(e, t, n) {
792
+ let r = w(e, t, n);
587
793
  try {
588
- S(r, t, s);
589
- let e = A(r.kind, `${t}.kind`, /* @__PURE__ */ new Set(["image", "file"])), n = {
590
- id: w(r.id, `${t}.id`, {
794
+ l(r, t, M);
795
+ let e = g(r.kind, `${t}.kind`, /* @__PURE__ */ new Set(["image", "file"])), n = {
796
+ id: E(r.id, `${t}.id`, {
591
797
  stable: !0,
592
798
  maximum: 256
593
799
  }),
594
- url: j(r.url, `${t}.url`, "resource"),
595
- ...r.title === void 0 ? {} : { title: w(r.title, `${t}.title`) }
800
+ url: e === "image" && typeof r.url == "string" && r.url.startsWith("data:") ? k(r.url, `${t}.url`) : D(r.url, `${t}.url`, "resource"),
801
+ ...r.title === void 0 ? {} : { title: E(r.title, `${t}.title`) }
596
802
  };
597
803
  if (e === "image") {
598
804
  for (let n of [
599
805
  "label",
600
806
  "mediaType",
601
807
  "byteSize"
602
- ]) r[n] !== void 0 && v("unknown_field", `${t}.${n}`, `field is not valid for ${e}`);
808
+ ]) r[n] !== void 0 && f("unknown_field", `${t}.${n}`, `field is not valid for ${e}`);
603
809
  return Object.freeze({
604
810
  ...n,
605
811
  kind: e,
606
- alt: w(r.alt, `${t}.alt`, { allowEmpty: !0 })
812
+ alt: E(r.alt, `${t}.alt`, { allowEmpty: !0 })
607
813
  });
608
814
  }
609
- r.alt !== void 0 && v("unknown_field", `${t}.alt`, `field is not valid for ${e}`);
610
- let i = T(r.mediaType, `${t}.mediaType`), a = r.byteSize === void 0 ? void 0 : k(r.byteSize, `${t}.byteSize`, 0, 2 ** 53 - 1);
815
+ r.alt !== void 0 && f("unknown_field", `${t}.alt`, `field is not valid for ${e}`);
816
+ let i = C(r.mediaType, `${t}.mediaType`), a = r.byteSize === void 0 ? void 0 : b(r.byteSize, `${t}.byteSize`, 0, 2 ** 53 - 1);
611
817
  return Object.freeze({
612
818
  ...n,
613
819
  kind: e,
614
- label: w(r.label, `${t}.label`),
820
+ label: x(r.label, `${t}.label`),
615
821
  ...i === void 0 ? {} : { mediaType: i },
616
822
  ...a === void 0 ? {} : { byteSize: a }
617
823
  });
618
824
  } finally {
619
- x(e, n);
825
+ p(e, n);
620
826
  }
621
827
  }
622
- function B(e) {
623
- let n = a(), r = C(e, "resources", n, {
828
+ function $(e) {
829
+ let t = d(), n = m(e, "resources", t, {
624
830
  minimum: 0,
625
- maximum: t
831
+ maximum: o
626
832
  });
627
833
  try {
628
- let e = Object.freeze(r.map((e, t) => z(e, `resources[${t}]`, n))), t = /* @__PURE__ */ new Set();
629
- for (let [n, r] of e.entries()) t.has(r.id) && v("duplicate_id", `resources[${n}].id`, `duplicate resource ID ${JSON.stringify(r.id)}`), t.add(r.id);
834
+ let e = Object.freeze(n.map((e, n) => oe(e, `resources[${n}]`, t))), r = /* @__PURE__ */ new Set();
835
+ for (let [t, n] of e.entries()) r.has(n.id) && f("duplicate_id", `resources[${t}].id`, `duplicate resource ID ${JSON.stringify(n.id)}`), r.add(n.id);
630
836
  return e;
631
837
  } finally {
632
- x(e, n);
838
+ p(e, t);
633
839
  }
634
840
  }
635
- function V(e, t, n = "document.nodes") {
636
- for (let [r, i] of e.entries()) {
637
- let e = `${n}[${r}]`;
638
- if (i.type === "image" && t(i.resourceId, `${e}.resourceId`, !0), i.type === "resource" && t(i.resourceId, `${e}.resourceId`, !1), i.type === "list") for (let [n, r] of i.children.entries()) V(r.children, t, `${e}.children[${n}].children`);
639
- (i.type === "quote" || i.type === "callout" || i.type === "disclosure" || i.type === "footnoteDefinition") && V(i.children, t, `${e}.children`);
640
- }
641
- }
642
- function H(e, t) {
643
- let n = R(e), r = B(t), i = new Map(r.map((e) => [e.id, e]));
644
- return V(n.nodes, (e, t, n) => {
645
- let r = i.get(e);
646
- r === void 0 && v("missing_resource", t, `resource ${JSON.stringify(e)} is not declared`), n && r.kind !== "image" && v("invalid_structure", t, "image nodes require an image resource");
647
- }), Object.freeze({
648
- document: n,
649
- resources: r
841
+ function se(e, t) {
842
+ let r = Q(e), i = $(t), a = new Map(i.map((e) => [e.id, e])), o = (e, t, n) => {
843
+ let r = a.get(e);
844
+ return r === void 0 && f("missing_resource", t, `resource ${JSON.stringify(e)} is not declared`), n && r.kind !== "image" && f("invalid_structure", t, "image nodes require an image resource"), r;
845
+ }, s = (e, t) => {
846
+ o(e, t, !0).url.endsWith(",") && f("unsafe_url", t, "responsive candidate resource URLs cannot end with a srcset delimiter");
847
+ }, c = [];
848
+ n(r, (e, t) => {
849
+ (e.type === "link" || e.type === "anchorLink") && c.push({
850
+ node: e,
851
+ path: t
852
+ }), e.type === "resource" && o(e.resourceId, `${t}.resourceId`, !1), (e.type === "image" || e.type === "inlineImage") && (o(e.resourceId, `${t}.resourceId`, !0), e.candidates?.forEach((e, n) => s(e.resourceId, `${t}.candidates[${n}].resourceId`)), e.pictureSources?.forEach((e, n) => e.candidates.forEach((e, r) => s(e.resourceId, `${t}.pictureSources[${n}].candidates[${r}].resourceId`))));
853
+ });
854
+ for (let e of c) J(e.node, e.path, a);
855
+ return Object.freeze({
856
+ document: r,
857
+ resources: i
650
858
  });
651
859
  }
652
- function U(e, t) {
860
+ function ce(e, t) {
653
861
  return Object.prototype.hasOwnProperty.call(e, t);
654
862
  }
655
863
  //#endregion
656
- export { i as SRichDocumentContractError, n as S_RICH_DOCUMENT_MAX_DEPTH, t as S_RICH_DOCUMENT_MAX_NODES, r as S_RICH_DOCUMENT_MAX_TEXT_LENGTH, e as S_RICH_DOCUMENT_VERSION, R as validateRichDocument, H as validateRichDocumentModel, B as validateRichDocumentResources };
864
+ export { i as SRichDocumentContractError, a as S_RICH_DOCUMENT_MAX_DEPTH, o as S_RICH_DOCUMENT_MAX_NODES, s as S_RICH_DOCUMENT_MAX_TEXT_LENGTH, c as S_RICH_DOCUMENT_VERSION, Q as validateRichDocument, se as validateRichDocumentModel, $ as validateRichDocumentResources };