@verbb/plugin-kit-web 2.0.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 (843) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +149 -0
  4. package/dist/a11y/active-elements.d.ts +6 -0
  5. package/dist/a11y/active-elements.d.ts.map +1 -0
  6. package/dist/a11y/dismissible-stack.d.ts +6 -0
  7. package/dist/a11y/dismissible-stack.d.ts.map +1 -0
  8. package/dist/a11y/focus.d.ts +20 -0
  9. package/dist/a11y/focus.d.ts.map +1 -0
  10. package/dist/a11y/index.d.ts +7 -0
  11. package/dist/a11y/index.d.ts.map +1 -0
  12. package/dist/a11y/offset.d.ts +9 -0
  13. package/dist/a11y/offset.d.ts.map +1 -0
  14. package/dist/a11y/scroll-lock.d.ts +23 -0
  15. package/dist/a11y/scroll-lock.d.ts.map +1 -0
  16. package/dist/base/checkbox-control.styles.d.ts +3 -0
  17. package/dist/base/checkbox-control.styles.d.ts.map +1 -0
  18. package/dist/base/component-id.d.ts +2 -0
  19. package/dist/base/component-id.d.ts.map +1 -0
  20. package/dist/base/form-control.styles.d.ts +3 -0
  21. package/dist/base/form-control.styles.d.ts.map +1 -0
  22. package/dist/base/icon.styles.d.ts +3 -0
  23. package/dist/base/icon.styles.d.ts.map +1 -0
  24. package/dist/base/markdown.styles.d.ts +3 -0
  25. package/dist/base/markdown.styles.d.ts.map +1 -0
  26. package/dist/base/pk-element.d.ts +28 -0
  27. package/dist/base/pk-element.d.ts.map +1 -0
  28. package/dist/base/pk-form-associated-element.d.ts +63 -0
  29. package/dist/base/pk-form-associated-element.d.ts.map +1 -0
  30. package/dist/base/shadow-reset.styles.d.ts +6 -0
  31. package/dist/base/shadow-reset.styles.d.ts.map +1 -0
  32. package/dist/base/styles.d.ts +9 -0
  33. package/dist/base/styles.d.ts.map +1 -0
  34. package/dist/chunks/active-elements-BwpXu8Lb.js +16 -0
  35. package/dist/chunks/active-elements-BwpXu8Lb.js.map +1 -0
  36. package/dist/chunks/animate-with-class-CsDwYnXL.js +42 -0
  37. package/dist/chunks/animate-with-class-CsDwYnXL.js.map +1 -0
  38. package/dist/chunks/autoloader-DzOTQqe6.js +177 -0
  39. package/dist/chunks/autoloader-DzOTQqe6.js.map +1 -0
  40. package/dist/chunks/button-group-item.styles-DYmBR28a.js +147 -0
  41. package/dist/chunks/button-group-item.styles-DYmBR28a.js.map +1 -0
  42. package/dist/chunks/component-registry-CpZiIDh4.js +130 -0
  43. package/dist/chunks/component-registry-CpZiIDh4.js.map +1 -0
  44. package/dist/chunks/control-aria-B2QMq4ji.js +69 -0
  45. package/dist/chunks/control-aria-B2QMq4ji.js.map +1 -0
  46. package/dist/chunks/decorate-W02hmVTt.js +149 -0
  47. package/dist/chunks/decorate-W02hmVTt.js.map +1 -0
  48. package/dist/chunks/dismissible-stack-XQUMfKO3.js +32 -0
  49. package/dist/chunks/dismissible-stack-XQUMfKO3.js.map +1 -0
  50. package/dist/chunks/field-labels-CoU9dnNq.js +14 -0
  51. package/dist/chunks/field-labels-CoU9dnNq.js.map +1 -0
  52. package/dist/chunks/focus-aa5dlv8k.js +122 -0
  53. package/dist/chunks/focus-aa5dlv8k.js.map +1 -0
  54. package/dist/chunks/form-control.styles-BQdimE5o.js +108 -0
  55. package/dist/chunks/form-control.styles-BQdimE5o.js.map +1 -0
  56. package/dist/chunks/has-slot-8BvCt_qo.js +74 -0
  57. package/dist/chunks/has-slot-8BvCt_qo.js.map +1 -0
  58. package/dist/chunks/icon.styles-BLTWLqYp.js +21 -0
  59. package/dist/chunks/icon.styles-BLTWLqYp.js.map +1 -0
  60. package/dist/chunks/icons-BR8JcQj2.js +52 -0
  61. package/dist/chunks/icons-BR8JcQj2.js.map +1 -0
  62. package/dist/chunks/mirror-validator-DCjNYrrx.js +32 -0
  63. package/dist/chunks/mirror-validator-DCjNYrrx.js.map +1 -0
  64. package/dist/chunks/overlay-lifecycle-D0pkTQyI.js +44 -0
  65. package/dist/chunks/overlay-lifecycle-D0pkTQyI.js.map +1 -0
  66. package/dist/chunks/pk-button-Cilu5WAT.js +840 -0
  67. package/dist/chunks/pk-button-Cilu5WAT.js.map +1 -0
  68. package/dist/chunks/pk-button-group-D9hqSfb_.js +422 -0
  69. package/dist/chunks/pk-button-group-D9hqSfb_.js.map +1 -0
  70. package/dist/chunks/pk-button-group-separator-DG0CYaqc.js +61 -0
  71. package/dist/chunks/pk-button-group-separator-DG0CYaqc.js.map +1 -0
  72. package/dist/chunks/pk-button-group-text-C5z4P7ur.js +49 -0
  73. package/dist/chunks/pk-button-group-text-C5z4P7ur.js.map +1 -0
  74. package/dist/chunks/pk-calendar-CcV-La-9.js +1410 -0
  75. package/dist/chunks/pk-calendar-CcV-La-9.js.map +1 -0
  76. package/dist/chunks/pk-checkbox-Bavq3-9C.js +360 -0
  77. package/dist/chunks/pk-checkbox-Bavq3-9C.js.map +1 -0
  78. package/dist/chunks/pk-checkbox-select-ZEJ6WIQn.js +221 -0
  79. package/dist/chunks/pk-checkbox-select-ZEJ6WIQn.js.map +1 -0
  80. package/dist/chunks/pk-clear--mPWZP7H.js +15 -0
  81. package/dist/chunks/pk-clear--mPWZP7H.js.map +1 -0
  82. package/dist/chunks/pk-code-editor-DSG6AwLV.js +213 -0
  83. package/dist/chunks/pk-code-editor-DSG6AwLV.js.map +1 -0
  84. package/dist/chunks/pk-color-input-D4L0DE5S.js +398 -0
  85. package/dist/chunks/pk-color-input-D4L0DE5S.js.map +1 -0
  86. package/dist/chunks/pk-combobox-Dd1ik0Ko.js +2015 -0
  87. package/dist/chunks/pk-combobox-Dd1ik0Ko.js.map +1 -0
  88. package/dist/chunks/pk-copy-button-DPh5TOF9.js +139 -0
  89. package/dist/chunks/pk-copy-button-DPh5TOF9.js.map +1 -0
  90. package/dist/chunks/pk-date-picker-CkwU4DzD.js +717 -0
  91. package/dist/chunks/pk-date-picker-CkwU4DzD.js.map +1 -0
  92. package/dist/chunks/pk-dialog-DZZd1Tzb.js +636 -0
  93. package/dist/chunks/pk-dialog-DZZd1Tzb.js.map +1 -0
  94. package/dist/chunks/pk-dropdown-item-BFyjtsL5.js +547 -0
  95. package/dist/chunks/pk-dropdown-item-BFyjtsL5.js.map +1 -0
  96. package/dist/chunks/pk-dropdown-label-DfACId-K.js +48 -0
  97. package/dist/chunks/pk-dropdown-label-DfACId-K.js.map +1 -0
  98. package/dist/chunks/pk-dropdown-menu-DWlxkDIs.js +735 -0
  99. package/dist/chunks/pk-dropdown-menu-DWlxkDIs.js.map +1 -0
  100. package/dist/chunks/pk-editable-table-pBkD6izs.js +1528 -0
  101. package/dist/chunks/pk-editable-table-pBkD6izs.js.map +1 -0
  102. package/dist/chunks/pk-field-Buy_AtYF.js +485 -0
  103. package/dist/chunks/pk-field-Buy_AtYF.js.map +1 -0
  104. package/dist/chunks/pk-form-associated-element-DmZKgNPL.js +260 -0
  105. package/dist/chunks/pk-form-associated-element-DmZKgNPL.js.map +1 -0
  106. package/dist/chunks/pk-input-group-CGHQKrt8.js +238 -0
  107. package/dist/chunks/pk-input-group-CGHQKrt8.js.map +1 -0
  108. package/dist/chunks/pk-input-group-addon-DXbNbsfY.js +101 -0
  109. package/dist/chunks/pk-input-group-addon-DXbNbsfY.js.map +1 -0
  110. package/dist/chunks/pk-input-group-button-XOfVLqGO.js +55 -0
  111. package/dist/chunks/pk-input-group-button-XOfVLqGO.js.map +1 -0
  112. package/dist/chunks/pk-input-group-input-CSmR5vdY.js +136 -0
  113. package/dist/chunks/pk-input-group-input-CSmR5vdY.js.map +1 -0
  114. package/dist/chunks/pk-input-group-text-C6ekhtff.js +40 -0
  115. package/dist/chunks/pk-input-group-text-C6ekhtff.js.map +1 -0
  116. package/dist/chunks/pk-input-group-textarea-DALr3pdU.js +113 -0
  117. package/dist/chunks/pk-input-group-textarea-DALr3pdU.js.map +1 -0
  118. package/dist/chunks/pk-input-naIRPWGC.js +723 -0
  119. package/dist/chunks/pk-input-naIRPWGC.js.map +1 -0
  120. package/dist/chunks/pk-lightswitch-B-rLflNq.js +432 -0
  121. package/dist/chunks/pk-lightswitch-B-rLflNq.js.map +1 -0
  122. package/dist/chunks/pk-option-C3Zqmu3z.js +312 -0
  123. package/dist/chunks/pk-option-C3Zqmu3z.js.map +1 -0
  124. package/dist/chunks/pk-option-group-CbI56A3T.js +72 -0
  125. package/dist/chunks/pk-option-group-CbI56A3T.js.map +1 -0
  126. package/dist/chunks/pk-popover-XZZdJ4WI.js +377 -0
  127. package/dist/chunks/pk-popover-XZZdJ4WI.js.map +1 -0
  128. package/dist/chunks/pk-popup-CgiXok-U.js +538 -0
  129. package/dist/chunks/pk-popup-CgiXok-U.js.map +1 -0
  130. package/dist/chunks/pk-radio-Bg02ckzC.js +233 -0
  131. package/dist/chunks/pk-radio-Bg02ckzC.js.map +1 -0
  132. package/dist/chunks/pk-radio-group-B5rps9G4.js +253 -0
  133. package/dist/chunks/pk-radio-group-B5rps9G4.js.map +1 -0
  134. package/dist/chunks/pk-scroll-area-B0V4Dr2j.js +402 -0
  135. package/dist/chunks/pk-scroll-area-B0V4Dr2j.js.map +1 -0
  136. package/dist/chunks/pk-select-B17rV6BR.js +1129 -0
  137. package/dist/chunks/pk-select-B17rV6BR.js.map +1 -0
  138. package/dist/chunks/pk-separator-CLb9n0FK.js +89 -0
  139. package/dist/chunks/pk-separator-CLb9n0FK.js.map +1 -0
  140. package/dist/chunks/pk-spinner-Blxd3SIH.js +148 -0
  141. package/dist/chunks/pk-spinner-Blxd3SIH.js.map +1 -0
  142. package/dist/chunks/pk-status-7_5dEuw-.js +92 -0
  143. package/dist/chunks/pk-status-7_5dEuw-.js.map +1 -0
  144. package/dist/chunks/pk-tab-CzV7pOdp.js +259 -0
  145. package/dist/chunks/pk-tab-CzV7pOdp.js.map +1 -0
  146. package/dist/chunks/pk-tab-heading-BWAB85ua.js +50 -0
  147. package/dist/chunks/pk-tab-heading-BWAB85ua.js.map +1 -0
  148. package/dist/chunks/pk-tab-panel-Q3Pqyq-f.js +86 -0
  149. package/dist/chunks/pk-tab-panel-Q3Pqyq-f.js.map +1 -0
  150. package/dist/chunks/pk-tabs-Cip4nbb7.js +622 -0
  151. package/dist/chunks/pk-tabs-Cip4nbb7.js.map +1 -0
  152. package/dist/chunks/pk-textarea-BEapC8Rk.js +342 -0
  153. package/dist/chunks/pk-textarea-BEapC8Rk.js.map +1 -0
  154. package/dist/chunks/pk-time-picker-DbW_hMs2.js +228 -0
  155. package/dist/chunks/pk-time-picker-DbW_hMs2.js.map +1 -0
  156. package/dist/chunks/pk-tiptap-content-DAtNbJYC.js +76 -0
  157. package/dist/chunks/pk-tiptap-content-DAtNbJYC.js.map +1 -0
  158. package/dist/chunks/pk-tiptap-editor-umIuEaXh.js +1084 -0
  159. package/dist/chunks/pk-tiptap-editor-umIuEaXh.js.map +1 -0
  160. package/dist/chunks/pk-tiptap-input-CXcYXbRa.js +250 -0
  161. package/dist/chunks/pk-tiptap-input-CXcYXbRa.js.map +1 -0
  162. package/dist/chunks/pk-toggle-5-GKVLye.js +256 -0
  163. package/dist/chunks/pk-toggle-5-GKVLye.js.map +1 -0
  164. package/dist/chunks/pk-toggle-group-CWDwYlgR.js +175 -0
  165. package/dist/chunks/pk-toggle-group-CWDwYlgR.js.map +1 -0
  166. package/dist/chunks/pk-tooltip-fcUbVGli.js +469 -0
  167. package/dist/chunks/pk-tooltip-fcUbVGli.js.map +1 -0
  168. package/dist/chunks/popup-content-animation.styles-Dc6d9quJ.js +117 -0
  169. package/dist/chunks/popup-content-animation.styles-Dc6d9quJ.js.map +1 -0
  170. package/dist/chunks/popup-placement-animation-WlEXnS85.js +60 -0
  171. package/dist/chunks/popup-placement-animation-WlEXnS85.js.map +1 -0
  172. package/dist/chunks/popup-pointer-C8lypj8V.js +21 -0
  173. package/dist/chunks/popup-pointer-C8lypj8V.js.map +1 -0
  174. package/dist/chunks/register-components-DNw6EYNo.js +15 -0
  175. package/dist/chunks/register-components-DNw6EYNo.js.map +1 -0
  176. package/dist/chunks/render-Dvc3MHQR.js +16 -0
  177. package/dist/chunks/render-Dvc3MHQR.js.map +1 -0
  178. package/dist/chunks/required-validator-CEg8dvjS.js +29 -0
  179. package/dist/chunks/required-validator-CEg8dvjS.js.map +1 -0
  180. package/dist/chunks/scroll-lock-B4o9vdzJ.js +193 -0
  181. package/dist/chunks/scroll-lock-B4o9vdzJ.js.map +1 -0
  182. package/dist/chunks/spinner-utils-CDfHypTv.js +15 -0
  183. package/dist/chunks/spinner-utils-CDfHypTv.js.map +1 -0
  184. package/dist/chunks/supports-popover-CUBsbHpS.js +7 -0
  185. package/dist/chunks/supports-popover-CUBsbHpS.js.map +1 -0
  186. package/dist/chunks/sync-listbox-separators-B1-V0oJi.js +149 -0
  187. package/dist/chunks/sync-listbox-separators-B1-V0oJi.js.map +1 -0
  188. package/dist/chunks/tiptap.styles-BytOpP0H.js +463 -0
  189. package/dist/chunks/tiptap.styles-BytOpP0H.js.map +1 -0
  190. package/dist/component-registry.d.ts +28 -0
  191. package/dist/component-registry.d.ts.map +1 -0
  192. package/dist/components/button/index.d.ts +2 -0
  193. package/dist/components/button/index.d.ts.map +1 -0
  194. package/dist/components/button/pk-button.d.ts +91 -0
  195. package/dist/components/button/pk-button.d.ts.map +1 -0
  196. package/dist/components/button/pk-button.js +2 -0
  197. package/dist/components/button/pk-button.styles.d.ts +2 -0
  198. package/dist/components/button/pk-button.styles.d.ts.map +1 -0
  199. package/dist/components/button-group/button-group-item.styles.d.ts +13 -0
  200. package/dist/components/button-group/button-group-item.styles.d.ts.map +1 -0
  201. package/dist/components/button-group/index.d.ts +4 -0
  202. package/dist/components/button-group/index.d.ts.map +1 -0
  203. package/dist/components/button-group/pk-button-group-separator.d.ts +18 -0
  204. package/dist/components/button-group/pk-button-group-separator.d.ts.map +1 -0
  205. package/dist/components/button-group/pk-button-group-separator.js +2 -0
  206. package/dist/components/button-group/pk-button-group-separator.styles.d.ts +2 -0
  207. package/dist/components/button-group/pk-button-group-separator.styles.d.ts.map +1 -0
  208. package/dist/components/button-group/pk-button-group-text.d.ts +18 -0
  209. package/dist/components/button-group/pk-button-group-text.d.ts.map +1 -0
  210. package/dist/components/button-group/pk-button-group-text.js +2 -0
  211. package/dist/components/button-group/pk-button-group-text.styles.d.ts +2 -0
  212. package/dist/components/button-group/pk-button-group-text.styles.d.ts.map +1 -0
  213. package/dist/components/button-group/pk-button-group.d.ts +40 -0
  214. package/dist/components/button-group/pk-button-group.d.ts.map +1 -0
  215. package/dist/components/button-group/pk-button-group.js +2 -0
  216. package/dist/components/button-group/pk-button-group.styles.d.ts +2 -0
  217. package/dist/components/button-group/pk-button-group.styles.d.ts.map +1 -0
  218. package/dist/components/button-group.d.ts +2 -0
  219. package/dist/components/button-group.js +4 -0
  220. package/dist/components/button.d.ts +2 -0
  221. package/dist/components/button.js +2 -0
  222. package/dist/components/calendar/index.d.ts +3 -0
  223. package/dist/components/calendar/index.d.ts.map +1 -0
  224. package/dist/components/calendar/pk-calendar.d.ts +117 -0
  225. package/dist/components/calendar/pk-calendar.d.ts.map +1 -0
  226. package/dist/components/calendar/pk-calendar.js +2 -0
  227. package/dist/components/calendar/pk-calendar.styles.d.ts +2 -0
  228. package/dist/components/calendar/pk-calendar.styles.d.ts.map +1 -0
  229. package/dist/components/calendar.d.ts +2 -0
  230. package/dist/components/calendar.js +2 -0
  231. package/dist/components/checkbox/index.d.ts +2 -0
  232. package/dist/components/checkbox/index.d.ts.map +1 -0
  233. package/dist/components/checkbox/pk-checkbox.d.ts +50 -0
  234. package/dist/components/checkbox/pk-checkbox.d.ts.map +1 -0
  235. package/dist/components/checkbox/pk-checkbox.js +2 -0
  236. package/dist/components/checkbox/pk-checkbox.styles.d.ts +2 -0
  237. package/dist/components/checkbox/pk-checkbox.styles.d.ts.map +1 -0
  238. package/dist/components/checkbox-select/index.d.ts +2 -0
  239. package/dist/components/checkbox-select/index.d.ts.map +1 -0
  240. package/dist/components/checkbox-select/pk-checkbox-select.d.ts +48 -0
  241. package/dist/components/checkbox-select/pk-checkbox-select.d.ts.map +1 -0
  242. package/dist/components/checkbox-select/pk-checkbox-select.js +2 -0
  243. package/dist/components/checkbox-select/pk-checkbox-select.styles.d.ts +2 -0
  244. package/dist/components/checkbox-select/pk-checkbox-select.styles.d.ts.map +1 -0
  245. package/dist/components/checkbox-select.d.ts +2 -0
  246. package/dist/components/checkbox-select.js +2 -0
  247. package/dist/components/checkbox.d.ts +2 -0
  248. package/dist/components/checkbox.js +2 -0
  249. package/dist/components/code-editor/index.d.ts +2 -0
  250. package/dist/components/code-editor/index.d.ts.map +1 -0
  251. package/dist/components/code-editor/pk-code-editor.d.ts +40 -0
  252. package/dist/components/code-editor/pk-code-editor.d.ts.map +1 -0
  253. package/dist/components/code-editor/pk-code-editor.js +2 -0
  254. package/dist/components/code-editor/pk-code-editor.styles.d.ts +2 -0
  255. package/dist/components/code-editor/pk-code-editor.styles.d.ts.map +1 -0
  256. package/dist/components/code-editor.d.ts +2 -0
  257. package/dist/components/code-editor.js +2 -0
  258. package/dist/components/color-input/index.d.ts +2 -0
  259. package/dist/components/color-input/index.d.ts.map +1 -0
  260. package/dist/components/color-input/pk-color-input.d.ts +41 -0
  261. package/dist/components/color-input/pk-color-input.d.ts.map +1 -0
  262. package/dist/components/color-input/pk-color-input.js +2 -0
  263. package/dist/components/color-input/pk-color-input.styles.d.ts +7 -0
  264. package/dist/components/color-input/pk-color-input.styles.d.ts.map +1 -0
  265. package/dist/components/color-input.d.ts +2 -0
  266. package/dist/components/color-input.js +2 -0
  267. package/dist/components/combobox/index.d.ts +2 -0
  268. package/dist/components/combobox/index.d.ts.map +1 -0
  269. package/dist/components/combobox/pk-combobox.d.ts +219 -0
  270. package/dist/components/combobox/pk-combobox.d.ts.map +1 -0
  271. package/dist/components/combobox/pk-combobox.js +2 -0
  272. package/dist/components/combobox/pk-combobox.styles.d.ts +2 -0
  273. package/dist/components/combobox/pk-combobox.styles.d.ts.map +1 -0
  274. package/dist/components/combobox.d.ts +2 -0
  275. package/dist/components/combobox.js +2 -0
  276. package/dist/components/copy-button/index.d.ts +2 -0
  277. package/dist/components/copy-button/index.d.ts.map +1 -0
  278. package/dist/components/copy-button/pk-copy-button.d.ts +37 -0
  279. package/dist/components/copy-button/pk-copy-button.d.ts.map +1 -0
  280. package/dist/components/copy-button/pk-copy-button.js +2 -0
  281. package/dist/components/copy-button/pk-copy-button.styles.d.ts +2 -0
  282. package/dist/components/copy-button/pk-copy-button.styles.d.ts.map +1 -0
  283. package/dist/components/copy-button.d.ts +2 -0
  284. package/dist/components/copy-button.js +2 -0
  285. package/dist/components/date-picker/index.d.ts +3 -0
  286. package/dist/components/date-picker/index.d.ts.map +1 -0
  287. package/dist/components/date-picker/pk-date-picker.d.ts +107 -0
  288. package/dist/components/date-picker/pk-date-picker.d.ts.map +1 -0
  289. package/dist/components/date-picker/pk-date-picker.js +2 -0
  290. package/dist/components/date-picker/pk-date-picker.styles.d.ts +2 -0
  291. package/dist/components/date-picker/pk-date-picker.styles.d.ts.map +1 -0
  292. package/dist/components/date-picker.d.ts +2 -0
  293. package/dist/components/date-picker.js +2 -0
  294. package/dist/components/dialog/index.d.ts +2 -0
  295. package/dist/components/dialog/index.d.ts.map +1 -0
  296. package/dist/components/dialog/pk-dialog.d.ts +87 -0
  297. package/dist/components/dialog/pk-dialog.d.ts.map +1 -0
  298. package/dist/components/dialog/pk-dialog.js +2 -0
  299. package/dist/components/dialog/pk-dialog.styles.d.ts +2 -0
  300. package/dist/components/dialog/pk-dialog.styles.d.ts.map +1 -0
  301. package/dist/components/dialog.d.ts +2 -0
  302. package/dist/components/dialog.js +2 -0
  303. package/dist/components/dropdown-menu/dropdown-menu-size.styles.d.ts +11 -0
  304. package/dist/components/dropdown-menu/dropdown-menu-size.styles.d.ts.map +1 -0
  305. package/dist/components/dropdown-menu/index.d.ts +5 -0
  306. package/dist/components/dropdown-menu/index.d.ts.map +1 -0
  307. package/dist/components/dropdown-menu/pk-dropdown-item.d.ts +67 -0
  308. package/dist/components/dropdown-menu/pk-dropdown-item.d.ts.map +1 -0
  309. package/dist/components/dropdown-menu/pk-dropdown-item.js +2 -0
  310. package/dist/components/dropdown-menu/pk-dropdown-item.styles.d.ts +2 -0
  311. package/dist/components/dropdown-menu/pk-dropdown-item.styles.d.ts.map +1 -0
  312. package/dist/components/dropdown-menu/pk-dropdown-label.d.ts +13 -0
  313. package/dist/components/dropdown-menu/pk-dropdown-label.d.ts.map +1 -0
  314. package/dist/components/dropdown-menu/pk-dropdown-label.js +2 -0
  315. package/dist/components/dropdown-menu/pk-dropdown-label.styles.d.ts +2 -0
  316. package/dist/components/dropdown-menu/pk-dropdown-label.styles.d.ts.map +1 -0
  317. package/dist/components/dropdown-menu/pk-dropdown-menu.d.ts +130 -0
  318. package/dist/components/dropdown-menu/pk-dropdown-menu.d.ts.map +1 -0
  319. package/dist/components/dropdown-menu/pk-dropdown-menu.js +2 -0
  320. package/dist/components/dropdown-menu/pk-dropdown-menu.styles.d.ts +6 -0
  321. package/dist/components/dropdown-menu/pk-dropdown-menu.styles.d.ts.map +1 -0
  322. package/dist/components/dropdown-menu/pk-dropdown-separator.d.ts +13 -0
  323. package/dist/components/dropdown-menu/pk-dropdown-separator.d.ts.map +1 -0
  324. package/dist/components/dropdown-menu/pk-dropdown-separator.js +36 -0
  325. package/dist/components/dropdown-menu/pk-dropdown-separator.js.map +1 -0
  326. package/dist/components/dropdown-menu.d.ts +2 -0
  327. package/dist/components/dropdown-menu.js +5 -0
  328. package/dist/components/editable-table/editable-table-dnd.d.ts +64 -0
  329. package/dist/components/editable-table/editable-table-dnd.d.ts.map +1 -0
  330. package/dist/components/editable-table/editable-table-model.d.ts +93 -0
  331. package/dist/components/editable-table/editable-table-model.d.ts.map +1 -0
  332. package/dist/components/editable-table/index.d.ts +3 -0
  333. package/dist/components/editable-table/index.d.ts.map +1 -0
  334. package/dist/components/editable-table/pk-editable-table.d.ts +122 -0
  335. package/dist/components/editable-table/pk-editable-table.d.ts.map +1 -0
  336. package/dist/components/editable-table/pk-editable-table.js +2 -0
  337. package/dist/components/editable-table/pk-editable-table.styles.d.ts +2 -0
  338. package/dist/components/editable-table/pk-editable-table.styles.d.ts.map +1 -0
  339. package/dist/components/editable-table.d.ts +2 -0
  340. package/dist/components/editable-table.js +2 -0
  341. package/dist/components/field/index.d.ts +2 -0
  342. package/dist/components/field/index.d.ts.map +1 -0
  343. package/dist/components/field/pk-field.d.ts +69 -0
  344. package/dist/components/field/pk-field.d.ts.map +1 -0
  345. package/dist/components/field/pk-field.js +2 -0
  346. package/dist/components/field/pk-field.styles.d.ts +2 -0
  347. package/dist/components/field/pk-field.styles.d.ts.map +1 -0
  348. package/dist/components/field.d.ts +2 -0
  349. package/dist/components/field.js +2 -0
  350. package/dist/components/icon/index.d.ts +2 -0
  351. package/dist/components/icon/index.d.ts.map +1 -0
  352. package/dist/components/icon/pk-icon-loader.d.ts +1 -0
  353. package/dist/components/icon/pk-icon-loader.d.ts.map +1 -0
  354. package/dist/components/icon/pk-icon.d.ts +46 -0
  355. package/dist/components/icon/pk-icon.d.ts.map +1 -0
  356. package/dist/components/icon/pk-icon.js +47 -0
  357. package/dist/components/icon/pk-icon.js.map +1 -0
  358. package/dist/components/icon.d.ts +2 -0
  359. package/dist/components/icon.js +2 -0
  360. package/dist/components/input/index.d.ts +2 -0
  361. package/dist/components/input/index.d.ts.map +1 -0
  362. package/dist/components/input/pk-input.d.ts +83 -0
  363. package/dist/components/input/pk-input.d.ts.map +1 -0
  364. package/dist/components/input/pk-input.js +2 -0
  365. package/dist/components/input/pk-input.styles.d.ts +2 -0
  366. package/dist/components/input/pk-input.styles.d.ts.map +1 -0
  367. package/dist/components/input-group/index.d.ts +10 -0
  368. package/dist/components/input-group/index.d.ts.map +1 -0
  369. package/dist/components/input-group/pk-input-group-addon.d.ts +23 -0
  370. package/dist/components/input-group/pk-input-group-addon.d.ts.map +1 -0
  371. package/dist/components/input-group/pk-input-group-addon.js +2 -0
  372. package/dist/components/input-group/pk-input-group-addon.styles.d.ts +2 -0
  373. package/dist/components/input-group/pk-input-group-addon.styles.d.ts.map +1 -0
  374. package/dist/components/input-group/pk-input-group-button.d.ts +22 -0
  375. package/dist/components/input-group/pk-input-group-button.d.ts.map +1 -0
  376. package/dist/components/input-group/pk-input-group-button.js +2 -0
  377. package/dist/components/input-group/pk-input-group-button.styles.d.ts +2 -0
  378. package/dist/components/input-group/pk-input-group-button.styles.d.ts.map +1 -0
  379. package/dist/components/input-group/pk-input-group-input.d.ts +28 -0
  380. package/dist/components/input-group/pk-input-group-input.d.ts.map +1 -0
  381. package/dist/components/input-group/pk-input-group-input.js +2 -0
  382. package/dist/components/input-group/pk-input-group-input.styles.d.ts +2 -0
  383. package/dist/components/input-group/pk-input-group-input.styles.d.ts.map +1 -0
  384. package/dist/components/input-group/pk-input-group-text.d.ts +18 -0
  385. package/dist/components/input-group/pk-input-group-text.d.ts.map +1 -0
  386. package/dist/components/input-group/pk-input-group-text.js +2 -0
  387. package/dist/components/input-group/pk-input-group-text.styles.d.ts +2 -0
  388. package/dist/components/input-group/pk-input-group-text.styles.d.ts.map +1 -0
  389. package/dist/components/input-group/pk-input-group-textarea.d.ts +25 -0
  390. package/dist/components/input-group/pk-input-group-textarea.d.ts.map +1 -0
  391. package/dist/components/input-group/pk-input-group-textarea.js +2 -0
  392. package/dist/components/input-group/pk-input-group-textarea.styles.d.ts +2 -0
  393. package/dist/components/input-group/pk-input-group-textarea.styles.d.ts.map +1 -0
  394. package/dist/components/input-group/pk-input-group.d.ts +39 -0
  395. package/dist/components/input-group/pk-input-group.d.ts.map +1 -0
  396. package/dist/components/input-group/pk-input-group.js +2 -0
  397. package/dist/components/input-group/pk-input-group.styles.d.ts +2 -0
  398. package/dist/components/input-group/pk-input-group.styles.d.ts.map +1 -0
  399. package/dist/components/input-group.d.ts +2 -0
  400. package/dist/components/input-group.js +7 -0
  401. package/dist/components/input.d.ts +2 -0
  402. package/dist/components/input.js +2 -0
  403. package/dist/components/lightswitch/index.d.ts +2 -0
  404. package/dist/components/lightswitch/index.d.ts.map +1 -0
  405. package/dist/components/lightswitch/pk-lightswitch.d.ts +54 -0
  406. package/dist/components/lightswitch/pk-lightswitch.d.ts.map +1 -0
  407. package/dist/components/lightswitch/pk-lightswitch.js +2 -0
  408. package/dist/components/lightswitch/pk-lightswitch.styles.d.ts +2 -0
  409. package/dist/components/lightswitch/pk-lightswitch.styles.d.ts.map +1 -0
  410. package/dist/components/lightswitch.d.ts +2 -0
  411. package/dist/components/lightswitch.js +2 -0
  412. package/dist/components/popover/index.d.ts +2 -0
  413. package/dist/components/popover/index.d.ts.map +1 -0
  414. package/dist/components/popover/pk-popover.d.ts +90 -0
  415. package/dist/components/popover/pk-popover.d.ts.map +1 -0
  416. package/dist/components/popover/pk-popover.js +2 -0
  417. package/dist/components/popover/pk-popover.styles.d.ts +2 -0
  418. package/dist/components/popover/pk-popover.styles.d.ts.map +1 -0
  419. package/dist/components/popover.d.ts +2 -0
  420. package/dist/components/popover.js +2 -0
  421. package/dist/components/popup/index.d.ts +2 -0
  422. package/dist/components/popup/index.d.ts.map +1 -0
  423. package/dist/components/popup/pk-popup.d.ts +96 -0
  424. package/dist/components/popup/pk-popup.d.ts.map +1 -0
  425. package/dist/components/popup/pk-popup.js +2 -0
  426. package/dist/components/popup/pk-popup.styles.d.ts +2 -0
  427. package/dist/components/popup/pk-popup.styles.d.ts.map +1 -0
  428. package/dist/components/popup.d.ts +2 -0
  429. package/dist/components/popup.js +2 -0
  430. package/dist/components/radio-group/index.d.ts +3 -0
  431. package/dist/components/radio-group/index.d.ts.map +1 -0
  432. package/dist/components/radio-group/pk-radio-group.d.ts +58 -0
  433. package/dist/components/radio-group/pk-radio-group.d.ts.map +1 -0
  434. package/dist/components/radio-group/pk-radio-group.js +2 -0
  435. package/dist/components/radio-group/pk-radio-group.styles.d.ts +2 -0
  436. package/dist/components/radio-group/pk-radio-group.styles.d.ts.map +1 -0
  437. package/dist/components/radio-group/pk-radio.d.ts +37 -0
  438. package/dist/components/radio-group/pk-radio.d.ts.map +1 -0
  439. package/dist/components/radio-group/pk-radio.js +2 -0
  440. package/dist/components/radio-group/pk-radio.styles.d.ts +2 -0
  441. package/dist/components/radio-group/pk-radio.styles.d.ts.map +1 -0
  442. package/dist/components/radio-group.d.ts +2 -0
  443. package/dist/components/radio-group.js +3 -0
  444. package/dist/components/scroll-area/index.d.ts +2 -0
  445. package/dist/components/scroll-area/index.d.ts.map +1 -0
  446. package/dist/components/scroll-area/pk-scroll-area.d.ts +53 -0
  447. package/dist/components/scroll-area/pk-scroll-area.d.ts.map +1 -0
  448. package/dist/components/scroll-area/pk-scroll-area.js +2 -0
  449. package/dist/components/scroll-area/pk-scroll-area.styles.d.ts +2 -0
  450. package/dist/components/scroll-area/pk-scroll-area.styles.d.ts.map +1 -0
  451. package/dist/components/scroll-area.d.ts +2 -0
  452. package/dist/components/scroll-area.js +2 -0
  453. package/dist/components/select/index.d.ts +4 -0
  454. package/dist/components/select/index.d.ts.map +1 -0
  455. package/dist/components/select/pk-option-group.d.ts +22 -0
  456. package/dist/components/select/pk-option-group.d.ts.map +1 -0
  457. package/dist/components/select/pk-option-group.js +2 -0
  458. package/dist/components/select/pk-option-group.styles.d.ts +2 -0
  459. package/dist/components/select/pk-option-group.styles.d.ts.map +1 -0
  460. package/dist/components/select/pk-option.d.ts +55 -0
  461. package/dist/components/select/pk-option.d.ts.map +1 -0
  462. package/dist/components/select/pk-option.js +2 -0
  463. package/dist/components/select/pk-option.styles.d.ts +2 -0
  464. package/dist/components/select/pk-option.styles.d.ts.map +1 -0
  465. package/dist/components/select/pk-select.d.ts +132 -0
  466. package/dist/components/select/pk-select.d.ts.map +1 -0
  467. package/dist/components/select/pk-select.js +2 -0
  468. package/dist/components/select/pk-select.styles.d.ts +2 -0
  469. package/dist/components/select/pk-select.styles.d.ts.map +1 -0
  470. package/dist/components/select.d.ts +2 -0
  471. package/dist/components/select.js +4 -0
  472. package/dist/components/separator/index.d.ts +2 -0
  473. package/dist/components/separator/index.d.ts.map +1 -0
  474. package/dist/components/separator/pk-separator.d.ts +25 -0
  475. package/dist/components/separator/pk-separator.d.ts.map +1 -0
  476. package/dist/components/separator/pk-separator.js +2 -0
  477. package/dist/components/separator/pk-separator.styles.d.ts +9 -0
  478. package/dist/components/separator/pk-separator.styles.d.ts.map +1 -0
  479. package/dist/components/separator.d.ts +2 -0
  480. package/dist/components/separator.js +2 -0
  481. package/dist/components/spinner/index.d.ts +3 -0
  482. package/dist/components/spinner/index.d.ts.map +1 -0
  483. package/dist/components/spinner/pk-spinner.d.ts +23 -0
  484. package/dist/components/spinner/pk-spinner.d.ts.map +1 -0
  485. package/dist/components/spinner/pk-spinner.js +2 -0
  486. package/dist/components/spinner/pk-spinner.styles.d.ts +2 -0
  487. package/dist/components/spinner/pk-spinner.styles.d.ts.map +1 -0
  488. package/dist/components/spinner/spinner-utils.d.ts +7 -0
  489. package/dist/components/spinner/spinner-utils.d.ts.map +1 -0
  490. package/dist/components/spinner.d.ts +2 -0
  491. package/dist/components/spinner.js +3 -0
  492. package/dist/components/status/index.d.ts +2 -0
  493. package/dist/components/status/index.d.ts.map +1 -0
  494. package/dist/components/status/pk-status.d.ts +19 -0
  495. package/dist/components/status/pk-status.d.ts.map +1 -0
  496. package/dist/components/status/pk-status.js +2 -0
  497. package/dist/components/status/pk-status.styles.d.ts +2 -0
  498. package/dist/components/status/pk-status.styles.d.ts.map +1 -0
  499. package/dist/components/status.d.ts +2 -0
  500. package/dist/components/status.js +2 -0
  501. package/dist/components/tabs/index.d.ts +5 -0
  502. package/dist/components/tabs/index.d.ts.map +1 -0
  503. package/dist/components/tabs/pk-tab-base.d.ts +14 -0
  504. package/dist/components/tabs/pk-tab-base.d.ts.map +1 -0
  505. package/dist/components/tabs/pk-tab-heading.d.ts +20 -0
  506. package/dist/components/tabs/pk-tab-heading.d.ts.map +1 -0
  507. package/dist/components/tabs/pk-tab-heading.js +2 -0
  508. package/dist/components/tabs/pk-tab-heading.styles.d.ts +2 -0
  509. package/dist/components/tabs/pk-tab-heading.styles.d.ts.map +1 -0
  510. package/dist/components/tabs/pk-tab-panel-base.d.ts +9 -0
  511. package/dist/components/tabs/pk-tab-panel-base.d.ts.map +1 -0
  512. package/dist/components/tabs/pk-tab-panel.d.ts +18 -0
  513. package/dist/components/tabs/pk-tab-panel.d.ts.map +1 -0
  514. package/dist/components/tabs/pk-tab-panel.js +2 -0
  515. package/dist/components/tabs/pk-tab-panel.styles.d.ts +2 -0
  516. package/dist/components/tabs/pk-tab-panel.styles.d.ts.map +1 -0
  517. package/dist/components/tabs/pk-tab.d.ts +23 -0
  518. package/dist/components/tabs/pk-tab.d.ts.map +1 -0
  519. package/dist/components/tabs/pk-tab.js +2 -0
  520. package/dist/components/tabs/pk-tab.styles.d.ts +2 -0
  521. package/dist/components/tabs/pk-tab.styles.d.ts.map +1 -0
  522. package/dist/components/tabs/pk-tabs.d.ts +67 -0
  523. package/dist/components/tabs/pk-tabs.d.ts.map +1 -0
  524. package/dist/components/tabs/pk-tabs.js +2 -0
  525. package/dist/components/tabs/pk-tabs.styles.d.ts +6 -0
  526. package/dist/components/tabs/pk-tabs.styles.d.ts.map +1 -0
  527. package/dist/components/tabs.d.ts +2 -0
  528. package/dist/components/tabs.js +5 -0
  529. package/dist/components/textarea/index.d.ts +2 -0
  530. package/dist/components/textarea/index.d.ts.map +1 -0
  531. package/dist/components/textarea/pk-textarea.d.ts +60 -0
  532. package/dist/components/textarea/pk-textarea.d.ts.map +1 -0
  533. package/dist/components/textarea/pk-textarea.js +2 -0
  534. package/dist/components/textarea/pk-textarea.styles.d.ts +2 -0
  535. package/dist/components/textarea/pk-textarea.styles.d.ts.map +1 -0
  536. package/dist/components/textarea.d.ts +2 -0
  537. package/dist/components/textarea.js +2 -0
  538. package/dist/components/time-picker/index.d.ts +2 -0
  539. package/dist/components/time-picker/index.d.ts.map +1 -0
  540. package/dist/components/time-picker/pk-time-picker.d.ts +25 -0
  541. package/dist/components/time-picker/pk-time-picker.d.ts.map +1 -0
  542. package/dist/components/time-picker/pk-time-picker.js +2 -0
  543. package/dist/components/time-picker/pk-time-picker.styles.d.ts +2 -0
  544. package/dist/components/time-picker/pk-time-picker.styles.d.ts.map +1 -0
  545. package/dist/components/time-picker.d.ts +2 -0
  546. package/dist/components/time-picker.js +2 -0
  547. package/dist/components/tiptap/index.d.ts +4 -0
  548. package/dist/components/tiptap/index.d.ts.map +1 -0
  549. package/dist/components/tiptap/pk-tiptap-content.d.ts +25 -0
  550. package/dist/components/tiptap/pk-tiptap-content.d.ts.map +1 -0
  551. package/dist/components/tiptap/pk-tiptap-content.js +2 -0
  552. package/dist/components/tiptap/pk-tiptap-content.styles.d.ts +2 -0
  553. package/dist/components/tiptap/pk-tiptap-content.styles.d.ts.map +1 -0
  554. package/dist/components/tiptap/pk-tiptap-editor.d.ts +123 -0
  555. package/dist/components/tiptap/pk-tiptap-editor.d.ts.map +1 -0
  556. package/dist/components/tiptap/pk-tiptap-editor.js +2 -0
  557. package/dist/components/tiptap/pk-tiptap-editor.styles.d.ts +2 -0
  558. package/dist/components/tiptap/pk-tiptap-editor.styles.d.ts.map +1 -0
  559. package/dist/components/tiptap/pk-tiptap-input.d.ts +54 -0
  560. package/dist/components/tiptap/pk-tiptap-input.d.ts.map +1 -0
  561. package/dist/components/tiptap/pk-tiptap-input.js +2 -0
  562. package/dist/components/tiptap/pk-tiptap-input.styles.d.ts +2 -0
  563. package/dist/components/tiptap/pk-tiptap-input.styles.d.ts.map +1 -0
  564. package/dist/components/tiptap/tiptap-editor-host.d.ts +28 -0
  565. package/dist/components/tiptap/tiptap-editor-host.d.ts.map +1 -0
  566. package/dist/components/tiptap/tiptap-toolbar.d.ts +7 -0
  567. package/dist/components/tiptap/tiptap-toolbar.d.ts.map +1 -0
  568. package/dist/components/tiptap/tiptap-utils.d.ts +13 -0
  569. package/dist/components/tiptap/tiptap-utils.d.ts.map +1 -0
  570. package/dist/components/tiptap/tiptap.styles.d.ts +12 -0
  571. package/dist/components/tiptap/tiptap.styles.d.ts.map +1 -0
  572. package/dist/components/tiptap/variable-tag-node-view.d.ts +17 -0
  573. package/dist/components/tiptap/variable-tag-node-view.d.ts.map +1 -0
  574. package/dist/components/tiptap-content.d.ts +2 -0
  575. package/dist/components/tiptap-content.js +2 -0
  576. package/dist/components/tiptap-editor.d.ts +2 -0
  577. package/dist/components/tiptap-editor.js +2 -0
  578. package/dist/components/tiptap-input.d.ts +2 -0
  579. package/dist/components/tiptap-input.js +2 -0
  580. package/dist/components/toggle/index.d.ts +2 -0
  581. package/dist/components/toggle/index.d.ts.map +1 -0
  582. package/dist/components/toggle/pk-toggle.d.ts +28 -0
  583. package/dist/components/toggle/pk-toggle.d.ts.map +1 -0
  584. package/dist/components/toggle/pk-toggle.js +2 -0
  585. package/dist/components/toggle/pk-toggle.styles.d.ts +2 -0
  586. package/dist/components/toggle/pk-toggle.styles.d.ts.map +1 -0
  587. package/dist/components/toggle-group/index.d.ts +2 -0
  588. package/dist/components/toggle-group/index.d.ts.map +1 -0
  589. package/dist/components/toggle-group/pk-toggle-group.d.ts +43 -0
  590. package/dist/components/toggle-group/pk-toggle-group.d.ts.map +1 -0
  591. package/dist/components/toggle-group/pk-toggle-group.js +2 -0
  592. package/dist/components/toggle-group/pk-toggle-group.styles.d.ts +2 -0
  593. package/dist/components/toggle-group/pk-toggle-group.styles.d.ts.map +1 -0
  594. package/dist/components/toggle-group.d.ts +2 -0
  595. package/dist/components/toggle-group.js +2 -0
  596. package/dist/components/toggle.d.ts +2 -0
  597. package/dist/components/toggle.js +2 -0
  598. package/dist/components/tooltip/index.d.ts +2 -0
  599. package/dist/components/tooltip/index.d.ts.map +1 -0
  600. package/dist/components/tooltip/pk-tooltip.d.ts +73 -0
  601. package/dist/components/tooltip/pk-tooltip.d.ts.map +1 -0
  602. package/dist/components/tooltip/pk-tooltip.js +2 -0
  603. package/dist/components/tooltip/pk-tooltip.styles.d.ts +2 -0
  604. package/dist/components/tooltip/pk-tooltip.styles.d.ts.map +1 -0
  605. package/dist/components/tooltip.d.ts +2 -0
  606. package/dist/components/tooltip.js +2 -0
  607. package/dist/create-register-components.d.ts +7 -0
  608. package/dist/create-register-components.d.ts.map +1 -0
  609. package/dist/events/overlay-lifecycle.d.ts +27 -0
  610. package/dist/events/overlay-lifecycle.d.ts.map +1 -0
  611. package/dist/events/pk-clear.d.ts +10 -0
  612. package/dist/events/pk-clear.d.ts.map +1 -0
  613. package/dist/events/pk-copy.d.ts +18 -0
  614. package/dist/events/pk-copy.d.ts.map +1 -0
  615. package/dist/events/pk-create.d.ts +11 -0
  616. package/dist/events/pk-create.d.ts.map +1 -0
  617. package/dist/events/pk-invalid.d.ts +10 -0
  618. package/dist/events/pk-invalid.d.ts.map +1 -0
  619. package/dist/events/pk-reposition.d.ts +10 -0
  620. package/dist/events/pk-reposition.d.ts.map +1 -0
  621. package/dist/icons/checkbox-indicators.d.ts +6 -0
  622. package/dist/icons/checkbox-indicators.d.ts.map +1 -0
  623. package/dist/icons/index.d.ts +4 -0
  624. package/dist/icons/index.d.ts.map +1 -0
  625. package/dist/icons/index.js +4 -0
  626. package/dist/icons/render.d.ts +7 -0
  627. package/dist/icons/render.d.ts.map +1 -0
  628. package/dist/icons/translation-icon.d.ts +2 -0
  629. package/dist/icons/translation-icon.d.ts.map +1 -0
  630. package/dist/index.d.ts +52 -0
  631. package/dist/index.d.ts.map +1 -0
  632. package/dist/index.js +218 -0
  633. package/dist/index.js.map +1 -0
  634. package/dist/internal/control-aria.d.ts +31 -0
  635. package/dist/internal/control-aria.d.ts.map +1 -0
  636. package/dist/internal/field-aria.d.ts +19 -0
  637. package/dist/internal/field-aria.d.ts.map +1 -0
  638. package/dist/internal/field-labels.d.ts +5 -0
  639. package/dist/internal/field-labels.d.ts.map +1 -0
  640. package/dist/internal/has-slot.d.ts +30 -0
  641. package/dist/internal/has-slot.d.ts.map +1 -0
  642. package/dist/internal/implicit-form-submit.d.ts +15 -0
  643. package/dist/internal/implicit-form-submit.d.ts.map +1 -0
  644. package/dist/internal/resolve-element-by-id.d.ts +3 -0
  645. package/dist/internal/resolve-element-by-id.d.ts.map +1 -0
  646. package/dist/internal/sync-listbox-separators.d.ts +3 -0
  647. package/dist/internal/sync-listbox-separators.d.ts.map +1 -0
  648. package/dist/plugin-kit.css +583 -0
  649. package/dist/plugin-kit.d.ts +9 -0
  650. package/dist/plugin-kit.d.ts.map +1 -0
  651. package/dist/plugin-kit.js +267 -0
  652. package/dist/plugin-kit.js.map +1 -0
  653. package/dist/plugin-kit.loader.d.ts +2 -0
  654. package/dist/plugin-kit.loader.d.ts.map +1 -0
  655. package/dist/register-components.d.ts +3 -0
  656. package/dist/register-components.d.ts.map +1 -0
  657. package/dist/register-components.js +2 -0
  658. package/dist/register-pk.generated.d.ts +103 -0
  659. package/dist/register-pk.generated.d.ts.map +1 -0
  660. package/dist/register.d.ts +85 -0
  661. package/dist/register.d.ts.map +1 -0
  662. package/dist/register.js +146 -0
  663. package/dist/register.js.map +1 -0
  664. package/dist/styles/overlay-content.css +64 -0
  665. package/dist/styles/popup-content-animation.styles.d.ts +9 -0
  666. package/dist/styles/popup-content-animation.styles.d.ts.map +1 -0
  667. package/dist/tokens.css +408 -0
  668. package/dist/utilities/autoloader.d.ts +8 -0
  669. package/dist/utilities/autoloader.d.ts.map +1 -0
  670. package/dist/utilities/base-path.d.ts +3 -0
  671. package/dist/utilities/base-path.d.ts.map +1 -0
  672. package/dist/utilities/defined.d.ts +17 -0
  673. package/dist/utilities/defined.d.ts.map +1 -0
  674. package/dist/utilities/fouce-strategy.d.ts +43 -0
  675. package/dist/utilities/fouce-strategy.d.ts.map +1 -0
  676. package/dist/utilities/fouce.css +108 -0
  677. package/dist/utils/animate-with-class.d.ts +7 -0
  678. package/dist/utils/animate-with-class.d.ts.map +1 -0
  679. package/dist/utils/config.d.ts +15 -0
  680. package/dist/utils/config.d.ts.map +1 -0
  681. package/dist/utils/copy-to-clipboard.d.ts +5 -0
  682. package/dist/utils/copy-to-clipboard.d.ts.map +1 -0
  683. package/dist/utils/craft-host-modal.d.ts +19 -0
  684. package/dist/utils/craft-host-modal.d.ts.map +1 -0
  685. package/dist/utils/date-matchers.d.ts +29 -0
  686. package/dist/utils/date-matchers.d.ts.map +1 -0
  687. package/dist/utils/date.d.ts +23 -0
  688. package/dist/utils/date.d.ts.map +1 -0
  689. package/dist/utils/documentScrollStability.d.ts +11 -0
  690. package/dist/utils/documentScrollStability.d.ts.map +1 -0
  691. package/dist/utils/floating-ui.d.ts +14 -0
  692. package/dist/utils/floating-ui.d.ts.map +1 -0
  693. package/dist/utils/highlight-text.d.ts +7 -0
  694. package/dist/utils/highlight-text.d.ts.map +1 -0
  695. package/dist/utils/host-date.d.ts +8 -0
  696. package/dist/utils/host-date.d.ts.map +1 -0
  697. package/dist/utils/inline-markdown.d.ts +6 -0
  698. package/dist/utils/inline-markdown.d.ts.map +1 -0
  699. package/dist/utils/listbox-keyboard.d.ts +25 -0
  700. package/dist/utils/listbox-keyboard.d.ts.map +1 -0
  701. package/dist/utils/menu-keyboard.d.ts +15 -0
  702. package/dist/utils/menu-keyboard.d.ts.map +1 -0
  703. package/dist/utils/mount-shadow-app.d.ts +31 -0
  704. package/dist/utils/mount-shadow-app.d.ts.map +1 -0
  705. package/dist/utils/overlay-recovery.d.ts +39 -0
  706. package/dist/utils/overlay-recovery.d.ts.map +1 -0
  707. package/dist/utils/popup-placement-animation.d.ts +26 -0
  708. package/dist/utils/popup-placement-animation.d.ts.map +1 -0
  709. package/dist/utils/popup-pointer.d.ts +15 -0
  710. package/dist/utils/popup-pointer.d.ts.map +1 -0
  711. package/dist/utils/portal.d.ts +16 -0
  712. package/dist/utils/portal.d.ts.map +1 -0
  713. package/dist/utils/supports-popover.d.ts +3 -0
  714. package/dist/utils/supports-popover.d.ts.map +1 -0
  715. package/dist/utils/time-options.d.ts +16 -0
  716. package/dist/utils/time-options.d.ts.map +1 -0
  717. package/dist/utils/top-layer.d.ts +34 -0
  718. package/dist/utils/top-layer.d.ts.map +1 -0
  719. package/dist/utils/week-info.d.ts +14 -0
  720. package/dist/utils/week-info.d.ts.map +1 -0
  721. package/dist/validators/custom-error-validator.d.ts +3 -0
  722. package/dist/validators/custom-error-validator.d.ts.map +1 -0
  723. package/dist/validators/index.d.ts +6 -0
  724. package/dist/validators/index.d.ts.map +1 -0
  725. package/dist/validators/mirror-validator.d.ts +4 -0
  726. package/dist/validators/mirror-validator.d.ts.map +1 -0
  727. package/dist/validators/required-validator.d.ts +7 -0
  728. package/dist/validators/required-validator.d.ts.map +1 -0
  729. package/dist/validators/types.d.ts +12 -0
  730. package/dist/validators/types.d.ts.map +1 -0
  731. package/dist-loader/chunks/animate-with-class-DT0jwaR_.js +40 -0
  732. package/dist-loader/chunks/button-group-item.styles-Dwakbyx5.js +145 -0
  733. package/dist-loader/chunks/codemirror-CSgOT0QM.js +23675 -0
  734. package/dist-loader/chunks/field-labels-D3lKQ2nq.js +12 -0
  735. package/dist-loader/chunks/floating-ui-87vslRWW.js +1220 -0
  736. package/dist-loader/chunks/has-slot-BGJeJdHr.js +72 -0
  737. package/dist-loader/chunks/icons-B1i-oRoD.js +429 -0
  738. package/dist-loader/chunks/lit-Dnn7gEi2.js +891 -0
  739. package/dist-loader/chunks/mirror-validator-C5XrXPaq.js +30 -0
  740. package/dist-loader/chunks/overlay-lifecycle-C3tSQ3UR.js +42 -0
  741. package/dist-loader/chunks/pk-a11y-Cx5RZvhu.js +274 -0
  742. package/dist-loader/chunks/pk-base-BlxAYXJD.js +705 -0
  743. package/dist-loader/chunks/pk-button-BlSs4e6V.js +846 -0
  744. package/dist-loader/chunks/pk-calendar-RXCDDhLI.js +1403 -0
  745. package/dist-loader/chunks/pk-checkbox-hJCj8In8.js +273 -0
  746. package/dist-loader/chunks/pk-clear-BMZUzwDt.js +13 -0
  747. package/dist-loader/chunks/pk-color-input-BfNtLznP.js +393 -0
  748. package/dist-loader/chunks/pk-combobox-1PJBcIrV.js +2006 -0
  749. package/dist-loader/chunks/pk-date-picker-D4vCtbw-.js +708 -0
  750. package/dist-loader/chunks/pk-dialog-D1RZjwQN.js +630 -0
  751. package/dist-loader/chunks/pk-dropdown-item-BJIhQ0Mw.js +543 -0
  752. package/dist-loader/chunks/pk-dropdown-menu-I1s3TBiA.js +731 -0
  753. package/dist-loader/chunks/pk-field-BnKPT_Kk.js +5842 -0
  754. package/dist-loader/chunks/pk-input-Oarjv7Vc.js +715 -0
  755. package/dist-loader/chunks/pk-lightswitch-D-UrNM3y.js +427 -0
  756. package/dist-loader/chunks/pk-option-CCZebfif.js +308 -0
  757. package/dist-loader/chunks/pk-popup-BNRyCsVX.js +553 -0
  758. package/dist-loader/chunks/pk-select-BcbtjIoP.js +1120 -0
  759. package/dist-loader/chunks/pk-spinner-Di9O69-m.js +145 -0
  760. package/dist-loader/chunks/pk-textarea-CC6WXpIu.js +334 -0
  761. package/dist-loader/chunks/pk-time-picker-BtGXo-KJ.js +225 -0
  762. package/dist-loader/chunks/pk-tooltip-JJRxVXYD.js +465 -0
  763. package/dist-loader/chunks/popup-content-animation.styles-S6CK-zPp.js +115 -0
  764. package/dist-loader/chunks/popup-placement-animation-WlEXnS85.js +58 -0
  765. package/dist-loader/chunks/popup-pointer-BC4n_sNb.js +19 -0
  766. package/dist-loader/chunks/registry-CmL0rH9r.js +55 -0
  767. package/dist-loader/chunks/render-DApFfV9S.js +14 -0
  768. package/dist-loader/chunks/required-validator-0XwZtX9k.js +27 -0
  769. package/dist-loader/chunks/rolldown-runtime-CzwdidQP.js +13 -0
  770. package/dist-loader/chunks/supports-popover-COjbi2RP.js +5 -0
  771. package/dist-loader/chunks/svg-Boar0Kf1.js +34 -0
  772. package/dist-loader/chunks/sync-listbox-separators-Bcja51HC.js +147 -0
  773. package/dist-loader/chunks/tiptap-Db7MTUH1.js +22888 -0
  774. package/dist-loader/chunks/tiptap.styles-DAH_90Fi.js +1628 -0
  775. package/dist-loader/components/button/button.js +2 -0
  776. package/dist-loader/components/button-group/button-group-separator.js +58 -0
  777. package/dist-loader/components/button-group/button-group-text.js +46 -0
  778. package/dist-loader/components/button-group/button-group.js +419 -0
  779. package/dist-loader/components/calendar/calendar.js +2 -0
  780. package/dist-loader/components/checkbox/checkbox.js +2 -0
  781. package/dist-loader/components/checkbox-select/checkbox-select.js +217 -0
  782. package/dist-loader/components/code-editor/code-editor.js +376 -0
  783. package/dist-loader/components/color-input/color-input.js +2 -0
  784. package/dist-loader/components/combobox/combobox.js +2 -0
  785. package/dist-loader/components/copy-button/copy-button.js +135 -0
  786. package/dist-loader/components/date-picker/date-picker.js +2 -0
  787. package/dist-loader/components/dialog/dialog.js +2 -0
  788. package/dist-loader/components/dropdown-menu/dropdown-item.js +2 -0
  789. package/dist-loader/components/dropdown-menu/dropdown-label.js +45 -0
  790. package/dist-loader/components/dropdown-menu/dropdown-menu.js +2 -0
  791. package/dist-loader/components/dropdown-menu/dropdown-separator.js +33 -0
  792. package/dist-loader/components/editable-table/editable-table.js +1522 -0
  793. package/dist-loader/components/field/field.js +2 -0
  794. package/dist-loader/components/icon/icon.js +17 -0
  795. package/dist-loader/components/input/input.js +2 -0
  796. package/dist-loader/components/input-group/input-group-addon.js +98 -0
  797. package/dist-loader/components/input-group/input-group-button.js +52 -0
  798. package/dist-loader/components/input-group/input-group-input.js +132 -0
  799. package/dist-loader/components/input-group/input-group-text.js +37 -0
  800. package/dist-loader/components/input-group/input-group-textarea.js +110 -0
  801. package/dist-loader/components/input-group/input-group.js +234 -0
  802. package/dist-loader/components/lightswitch/lightswitch.js +2 -0
  803. package/dist-loader/components/popover/popover.js +372 -0
  804. package/dist-loader/components/popup/popup.js +2 -0
  805. package/dist-loader/components/radio-group/radio-group.js +247 -0
  806. package/dist-loader/components/radio-group/radio.js +229 -0
  807. package/dist-loader/components/scroll-area/scroll-area.js +398 -0
  808. package/dist-loader/components/select/option-group.js +69 -0
  809. package/dist-loader/components/select/option.js +2 -0
  810. package/dist-loader/components/select/select.js +2 -0
  811. package/dist-loader/components/separator/separator.js +86 -0
  812. package/dist-loader/components/spinner/spinner.js +2 -0
  813. package/dist-loader/components/status/status.js +89 -0
  814. package/dist-loader/components/tabs/tab-heading.js +47 -0
  815. package/dist-loader/components/tabs/tab-panel.js +83 -0
  816. package/dist-loader/components/tabs/tab.js +256 -0
  817. package/dist-loader/components/tabs/tabs.js +619 -0
  818. package/dist-loader/components/textarea/textarea.js +2 -0
  819. package/dist-loader/components/time-picker/time-picker.js +2 -0
  820. package/dist-loader/components/tiptap/tiptap-content.js +72 -0
  821. package/dist-loader/components/tiptap/tiptap-editor.js +1078 -0
  822. package/dist-loader/components/tiptap/tiptap-input.js +244 -0
  823. package/dist-loader/components/toggle/toggle.js +253 -0
  824. package/dist-loader/components/toggle-group/toggle-group.js +172 -0
  825. package/dist-loader/components/tooltip/tooltip.js +2 -0
  826. package/dist-loader/plugin-kit.css +583 -0
  827. package/dist-loader/plugin-kit.d.ts +9 -0
  828. package/dist-loader/plugin-kit.d.ts.map +1 -0
  829. package/dist-loader/plugin-kit.loader.d.ts +2 -0
  830. package/dist-loader/plugin-kit.loader.d.ts.map +1 -0
  831. package/dist-loader/plugin-kit.loader.js +527 -0
  832. package/dist-loader/styles/overlay-content.css +64 -0
  833. package/dist-loader/tokens.css +408 -0
  834. package/dist-loader/utilities/autoloader.d.ts +8 -0
  835. package/dist-loader/utilities/autoloader.d.ts.map +1 -0
  836. package/dist-loader/utilities/base-path.d.ts +3 -0
  837. package/dist-loader/utilities/base-path.d.ts.map +1 -0
  838. package/dist-loader/utilities/defined.d.ts +17 -0
  839. package/dist-loader/utilities/defined.d.ts.map +1 -0
  840. package/dist-loader/utilities/fouce-strategy.d.ts +43 -0
  841. package/dist-loader/utilities/fouce-strategy.d.ts.map +1 -0
  842. package/dist-loader/utilities/fouce.css +108 -0
  843. package/package.json +961 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pk-tiptap-editor-umIuEaXh.js","names":[],"sources":["../../src/components/tiptap/tiptap-editor-host.ts","../../src/components/tiptap/tiptap-utils.ts","../../src/components/tiptap/tiptap-toolbar.ts","../../src/components/tiptap/pk-tiptap-editor.styles.ts","../../src/components/tiptap/pk-tiptap-editor.ts"],"sourcesContent":["import { Editor, type Extensions } from '@tiptap/core';\nimport {\n createTiptapExtensions,\n normalizeContentArray,\n valueToContent,\n} from '@verbb/plugin-kit-tiptap-core';\n\nexport function serializeTiptapDocumentContent(content: unknown): string {\n return JSON.stringify(normalizeContentArray(content));\n}\n\n/** Normalize React/HTML `value` into the JSON string the editor stores and emits. */\nexport function serializeTiptapDocumentValue(raw: string | unknown[] | null | undefined): string {\n if (raw == null) {\n return '[]';\n }\n\n if (typeof raw === 'string') {\n return raw;\n }\n\n if (Array.isArray(raw)) {\n return JSON.stringify(raw);\n }\n\n return '[]';\n}\n\nexport function parseTiptapDocumentValue(raw: string | unknown[] | null | undefined): unknown[] {\n if (raw == null || raw === '') {\n return [];\n }\n\n // React often passes a document array prop — accept it without JSON.parse.\n if (Array.isArray(raw)) {\n return raw;\n }\n\n if (typeof raw !== 'string') {\n return [];\n }\n\n try {\n const parsed = JSON.parse(raw);\n return Array.isArray(parsed) ? parsed : [];\n } catch {\n return [];\n }\n}\n\nexport type TiptapEditorHostOptions = {\n element: HTMLElement;\n extensions?: Extensions;\n content: unknown;\n editable: boolean;\n trailingCursorText?: string;\n minHeight?: string;\n onUpdate?: (content: unknown[]) => void;\n};\n\nexport class TiptapEditorHost {\n editor: Editor | null = null;\n\n private lastEmitted: string | null = null;\n\n /** Skip TipTap `onUpdate` while applying controlled prop content — otherwise setContent\n * re-emits pk-change → React setValue → value prop → setContent … forever. */\n private suppressUpdateEmission = false;\n\n mount({\n element,\n extensions,\n content,\n editable,\n trailingCursorText = '\\u2060',\n minHeight,\n onUpdate,\n }: TiptapEditorHostOptions): void {\n const doc = valueToContent(content, { trailingCursorText });\n\n this.editor = new Editor({\n element,\n extensions: extensions ?? createTiptapExtensions({ trailingCursorText }),\n content: doc,\n editable,\n onUpdate: ({ editor }) => {\n const normalized = normalizeContentArray(editor.getJSON().content);\n const serialized = JSON.stringify(normalized);\n this.lastEmitted = serialized;\n\n if (this.suppressUpdateEmission) {\n return;\n }\n\n onUpdate?.(normalized);\n },\n });\n\n if (minHeight) {\n this.editor.view.dom.style.minHeight = minHeight;\n }\n }\n\n setContent(content: unknown, options: { trailingCursorText?: string; respectFocus?: boolean } = {}): void {\n if (!this.editor) {\n return;\n }\n\n const { trailingCursorText = '\\u2060', respectFocus = true } = options;\n\n if (respectFocus && this.editor.isFocused) {\n return;\n }\n\n const doc = valueToContent(content, { trailingCursorText });\n const incoming = JSON.stringify(doc?.content ?? []);\n const current = JSON.stringify(this.editor.getJSON().content ?? []);\n\n if (incoming === current || incoming === this.lastEmitted) {\n return;\n }\n\n this.suppressUpdateEmission = true;\n try {\n this.editor.commands.setContent(doc ?? { type: 'doc', content: [] });\n } finally {\n this.suppressUpdateEmission = false;\n }\n }\n\n destroy(): void {\n this.editor?.destroy();\n this.editor = null;\n this.lastEmitted = null;\n this.suppressUpdateEmission = false;\n }\n}\n","import type {\n ElementSelectorHost,\n LinkOptionsInput,\n ToolbarNode,\n} from '@verbb/plugin-kit-tiptap-core';\nimport { parseToolbarConfig } from '@verbb/plugin-kit-tiptap-core';\n\ndeclare global {\n interface Window {\n Craft?: {\n createElementSelectorModal?: ElementSelectorHost['openElementSelector'];\n };\n }\n}\n\nexport function createCraftElementSelectorHost(): ElementSelectorHost {\n return {\n openElementSelector: (elementType, options) => {\n const open = window.Craft?.createElementSelectorModal;\n\n if (!open) {\n throw new Error('Craft element selector is not available in this environment.');\n }\n\n open(elementType, options);\n },\n };\n}\n\nexport function parseLinkOptionsAttribute(raw: string | null): LinkOptionsInput | undefined {\n if (!raw) {\n return undefined;\n }\n\n try {\n return JSON.parse(raw) as LinkOptionsInput;\n } catch {\n return undefined;\n }\n}\n\nexport function parseButtonsAttribute(raw: string | null | undefined): string[] {\n if (!raw) {\n return ['bold', 'italic'];\n }\n\n return raw\n .split(',')\n .map((button) => button.trim())\n .filter(Boolean);\n}\n\nexport function parseToolbarAttribute(\n toolbarRaw: string | ToolbarNode[] | null | undefined,\n buttonsRaw: string | string[] | null | undefined,\n): ToolbarNode[] {\n if (Array.isArray(toolbarRaw)) {\n return parseToolbarConfig(toolbarRaw);\n }\n\n if (typeof toolbarRaw === 'string' && toolbarRaw.trim()) {\n return parseToolbarConfig(toolbarRaw);\n }\n\n if (Array.isArray(buttonsRaw)) {\n return parseToolbarConfig(buttonsRaw.join(','));\n }\n\n return parseToolbarConfig(buttonsRaw ?? 'bold,italic');\n}\n","import {\n alignCenter,\n alignJustify,\n alignLeft,\n alignRight,\n arrowRotateLeft,\n arrowRotateRight,\n bold,\n bracketsCurly,\n chevronDown,\n code,\n fileDashedLine,\n h1,\n h2,\n h3,\n h4,\n h5,\n h6,\n heading,\n highlighter,\n italic,\n link,\n listOl,\n listUl,\n minus,\n paragraph,\n quoteRight,\n strikethrough,\n subscript,\n superscript,\n table,\n textSlash,\n underline,\n renderIconHtml,\n} from '../../icons/index.js';\n\nexport const TOOLBAR_CHEVRON_HTML = renderIconHtml(chevronDown);\n\nexport const TOOLBAR_ICONS: Record<string, string> = {\n bold: renderIconHtml(bold),\n italic: renderIconHtml(italic),\n underline: renderIconHtml(underline),\n strikethrough: renderIconHtml(strikethrough),\n subscript: renderIconHtml(subscript),\n superscript: renderIconHtml(superscript),\n code: renderIconHtml(bracketsCurly),\n 'code-block': renderIconHtml(code),\n highlight: renderIconHtml(highlighter),\n h1: renderIconHtml(h1),\n h2: renderIconHtml(h2),\n h3: renderIconHtml(h3),\n h4: renderIconHtml(h4),\n h5: renderIconHtml(h5),\n h6: renderIconHtml(h6),\n heading: renderIconHtml(heading),\n paragraph: renderIconHtml(paragraph),\n 'unordered-list': renderIconHtml(listUl),\n 'ordered-list': renderIconHtml(listOl),\n blockquote: renderIconHtml(quoteRight),\n 'align-left': renderIconHtml(alignLeft),\n 'align-center': renderIconHtml(alignCenter),\n 'align-right': renderIconHtml(alignRight),\n 'align-justify': renderIconHtml(alignJustify),\n 'clear-format': renderIconHtml(textSlash),\n hr: renderIconHtml(minus),\n 'line-break': renderIconHtml(fileDashedLine),\n link: renderIconHtml(link),\n table: renderIconHtml(table),\n undo: renderIconHtml(arrowRotateLeft),\n redo: renderIconHtml(arrowRotateRight),\n};\n\nexport const TOOLBAR_LABELS: Record<string, string> = {\n bold: 'Bold',\n italic: 'Italic',\n underline: 'Underline',\n strikethrough: 'Strikethrough',\n subscript: 'Subscript',\n superscript: 'Superscript',\n code: 'Inline code',\n 'code-block': 'Code block',\n highlight: 'Highlight',\n h1: 'Heading 1',\n h2: 'Heading 2',\n h3: 'Heading 3',\n h4: 'Heading 4',\n h5: 'Heading 5',\n h6: 'Heading 6',\n paragraph: 'Paragraph',\n 'unordered-list': 'Bullet list',\n 'ordered-list': 'Numbered list',\n blockquote: 'Blockquote',\n 'align-left': 'Align left',\n 'align-center': 'Align center',\n 'align-right': 'Align right',\n 'align-justify': 'Justify',\n 'clear-format': 'Clear format',\n hr: 'Horizontal rule',\n 'line-break': 'Line break',\n link: 'Link',\n table: 'Table',\n undo: 'Undo',\n redo: 'Redo',\n};\n\nexport function getToolbarMenuItemLabel(buttonName: string): string {\n return TOOLBAR_LABELS[buttonName] ?? buttonName;\n}\n\n/** Prefix icon for `pk-dropdown-item` — SVG must carry `slot=\"prefix\"` directly. */\nexport function createToolbarPrefixIcon(buttonName: string): SVGSVGElement | null {\n const iconHtml = TOOLBAR_ICONS[buttonName];\n\n if (!iconHtml) {\n return null;\n }\n\n const template = document.createElement('template');\n template.innerHTML = iconHtml.trim();\n const icon = template.content.firstElementChild;\n\n if (!(icon instanceof SVGSVGElement)) {\n return null;\n }\n\n icon.setAttribute('slot', 'prefix');\n icon.setAttribute('aria-hidden', 'true');\n icon.setAttribute('width', '12');\n icon.setAttribute('height', '12');\n icon.classList.add('pk-dropdown-item__prefix-icon');\n\n return icon;\n}\n","import { css } from 'lit';\n\nexport const pkTiptapEditorStyles = css`\n @layer pk-component {\n :host {\n display: block;\n width: 100%;\n font-family: var(--pk-font-family);\n }\n\n .shell {\n overflow: hidden;\n border: var(--pk-input-border);\n border-radius: var(--pk-radius-md);\n background: #fff;\n }\n\n :host([invalid]) .shell,\n :host(:state(user-invalid)) .shell {\n border-color: var(--pk-color-rose-600);\n }\n\n .toolbar {\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n border-bottom: 1px solid rgba(96, 125, 159, 0.4);\n background: #fff;\n box-shadow: 0 2px 3px rgba(49, 49, 93, 0.07);\n }\n\n .toolbar-item {\n display: inline-flex;\n }\n\n .toolbar-item pk-tooltip {\n display: contents;\n }\n\n .toolbar-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 2rem;\n height: 2rem;\n margin: 0;\n padding: 0;\n border: 0;\n border-radius: var(--pk-radius-md);\n background: transparent;\n color: #1c2e36;\n cursor: pointer;\n }\n\n .toolbar-btn:hover:not(:disabled) {\n background: rgb(241, 245, 249);\n }\n\n .toolbar-btn[data-state='active'] {\n background: rgb(226, 232, 240);\n }\n\n .toolbar-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .toolbar-btn svg {\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n }\n\n .toolbar-btn--menu {\n width: auto;\n min-width: 2rem;\n gap: 0.125rem;\n padding: 0 0.375rem;\n }\n\n .toolbar-btn__trigger-label {\n font-size: 0.625rem;\n font-weight: 700;\n line-height: 1;\n letter-spacing: 0.02em;\n text-transform: uppercase;\n }\n\n .toolbar-btn__chevron {\n display: inline-flex;\n flex-shrink: 0;\n opacity: 0.7;\n }\n\n .toolbar-btn__chevron svg {\n width: 0.5rem;\n height: 0.5rem;\n }\n\n .toolbar-separator {\n align-self: center;\n flex-shrink: 0;\n width: 1px;\n height: 1.25rem;\n margin: 0 0.125rem;\n background: rgba(96, 125, 159, 0.35);\n }\n\n .toolbar-btn__label {\n font-size: 0.625rem;\n font-weight: 600;\n line-height: 1;\n text-transform: uppercase;\n letter-spacing: 0.02em;\n }\n\n /* Full toolbar replace (slot=toolbar on host when hasCustomToolbar). */\n .toolbar ::slotted([slot='toolbar']) {\n display: contents;\n }\n\n /* Append lane inside the stock toolbar — one flex item per slotted root (same gap). */\n .toolbar ::slotted([slot='toolbar-end']) {\n display: inline-flex;\n align-items: center;\n }\n\n .editor-mount {\n position: relative;\n }\n\n .content-error {\n display: flex;\n gap: 0.5rem;\n padding: 0.5rem 1rem;\n border-bottom: 1px solid var(--pk-color-rose-200);\n background: var(--pk-color-rose-50);\n color: var(--pk-color-rose-800);\n font-size: var(--pk-font-size-sm);\n }\n\n .mirror-input {\n display: none;\n }\n\n /* No trigger slot — collapse the host so it does not reserve shell space.\n Toolbar refresh while open is still gated by linkDialogBusy / open. */\n .link-dialog {\n display: contents;\n }\n\n .link-dialog__fields {\n display: flex;\n flex-direction: column;\n gap: 1rem;\n }\n\n .link-bubble {\n position: absolute;\n z-index: 250;\n display: flex;\n align-items: center;\n gap: 0;\n width: max-content;\n max-width: calc(100% - 1rem);\n padding: 0;\n border: 0;\n border-radius: var(--pk-radius-md);\n background: #1c2e36;\n color: #fff;\n font-size: 12px;\n line-height: 1.5;\n overflow: visible;\n pointer-events: auto;\n white-space: nowrap;\n }\n\n .link-bubble__arrow {\n position: absolute;\n left: 50%;\n bottom: -0.25rem;\n width: 0.5rem;\n height: 0.5rem;\n background: #1c2e36;\n transform: translateX(-50%) rotate(45deg);\n pointer-events: none;\n }\n\n .link-bubble__url,\n .link-bubble__action {\n box-sizing: border-box;\n padding: 6px 8px;\n font-size: 12px;\n line-height: 1.5;\n }\n\n .link-bubble__url {\n display: inline-flex;\n align-items: center;\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .link-bubble__divider {\n flex-shrink: 0;\n align-self: center;\n width: 1px;\n height: 12px;\n background: #616d73;\n }\n\n .link-bubble__action {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin: 0;\n border: 0;\n border-radius: var(--pk-radius-sm);\n background: transparent;\n color: #fff;\n font-family: inherit;\n font-weight: inherit;\n white-space: nowrap;\n cursor: pointer;\n outline: none;\n appearance: none;\n -webkit-appearance: none;\n min-height: 0;\n transition: color 0.15s ease;\n }\n\n .link-bubble__action:hover {\n color: rgb(255 255 255 / 0.7);\n }\n }\n`;\n","import { html, nothing } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport type { PropertyValues } from 'lit';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\nimport {\n applyLinkToEditor,\n createTiptapExtensions,\n getCraftLinkOptions,\n getFatalTiptapContentError,\n getLinkEditState,\n getLinkOptionsElementSiteId,\n getLinkOpenInNewTab,\n getSelectedText,\n getToolbarGroupDefaultIcon,\n getToolbarGroupMenuItems,\n getToolbarGroupTriggerState,\n isFormattingToolbarPreset,\n isHeadingsOnlyToolbarPreset,\n isTiptapButtonActive,\n isToolbarButtonActive,\n openCraftElementLinkSelector,\n runToolbarButton,\n toolbarIncludesButton,\n unsetLinkFromEditor,\n type LinkElementConfig,\n type LinkOptionsInput,\n type ToolbarGroup,\n type ToolbarNode,\n} from '@verbb/plugin-kit-tiptap-core';\nimport { getMarkRange, posToDOMRect } from '@tiptap/core';\n\nimport { formControlStyles } from '../../base/form-control.styles.js';\nimport { PkFormAssociatedElement } from '../../base/pk-form-associated-element.js';\nimport { uniqueId } from '../../a11y/focus.js';\nimport { MirrorValidator } from '../../validators/index.js';\nimport {\n link,\n triangleExclamation,\n renderIconHtml,\n} from '../../icons/index.js';\n\nimport '../button/pk-button.js';\nimport '../checkbox/pk-checkbox.js';\nimport '../dialog/pk-dialog.js';\nimport '../dropdown-menu/pk-dropdown-item.js';\nimport '../field/pk-field.js';\nimport '../input/pk-input.js';\nimport '../dropdown-menu/pk-dropdown-menu.js';\nimport '../dropdown-menu/pk-dropdown-separator.js';\nimport '../tooltip/pk-tooltip.js';\nimport type { PkButton } from '../button/pk-button.js';\nimport type { PkCheckbox } from '../checkbox/pk-checkbox.js';\nimport type { PkDialog } from '../dialog/pk-dialog.js';\nimport type { PkDropdownMenu } from '../dropdown-menu/pk-dropdown-menu.js';\nimport type { PkInput } from '../input/pk-input.js';\nimport { TiptapEditorHost, parseTiptapDocumentValue, serializeTiptapDocumentContent, serializeTiptapDocumentValue } from './tiptap-editor-host.js';\nimport { createCraftElementSelectorHost, parseLinkOptionsAttribute, parseToolbarAttribute } from './tiptap-utils.js';\nimport {\n TOOLBAR_CHEVRON_HTML,\n TOOLBAR_ICONS,\n TOOLBAR_LABELS,\n createToolbarPrefixIcon,\n getToolbarMenuItemLabel,\n} from './tiptap-toolbar.js';\nimport { createVariableTagDomNodeView } from './variable-tag-node-view.js';\nimport { pkTiptapEditorStyles } from './pk-tiptap-editor.styles.js';\nimport { tiptapProseMirrorStyles } from './tiptap.styles.js';\n\ntype LinkDialogSeed = {\n url?: string;\n text?: string;\n openInNewTab?: boolean;\n from?: number;\n to?: number;\n};\n\n/**\n * TipTap document editor with a Craft-styled toolbar.\n *\n * @slot toolbar - Replace the entire default toolbar (opt-in via light-DOM presence).\n * @slot toolbar-end - Append controls after stock toolbar buttons (same flex gap).\n */\n@customElement('pk-tiptap-editor')\nexport class PkTiptapEditor extends PkFormAssociatedElement {\n static override styles = [formControlStyles, pkTiptapEditorStyles, tiptapProseMirrorStyles];\n\n static override get validators() {\n return [...super.validators, MirrorValidator()];\n }\n\n override assumeInteractionOn = ['blur', 'input'];\n\n @query('.editor-mount')\n private editorMount!: HTMLDivElement;\n\n @query('.mirror-input')\n override input!: HTMLInputElement;\n\n @query('.link-dialog')\n private linkDialog?: PkDialog;\n\n @query('pk-input.link-dialog__url-input')\n private linkUrlInput?: PkInput;\n\n @query('pk-input.link-dialog__text-input')\n private linkTextInput?: PkInput;\n\n @query('pk-checkbox')\n private linkNewTabCheckbox?: PkCheckbox;\n\n @query('pk-button.link-dialog__submit')\n private linkSubmitButton?: PkButton;\n\n private readonly linkUrlInputId = uniqueId('pk-tiptap-link-url');\n\n private readonly linkTextInputId = uniqueId('pk-tiptap-link-text');\n\n private readonly host = new TiptapEditorHost();\n\n private _value: string | null = null;\n\n /**\n * Flat toolbar button list. HTML uses a comma-separated attribute; React may\n * pass a `string[]`. Named `buttons` (not `buttonsAttr`) so React can set the\n * property — a getter-only `buttons` previously threw on assign.\n */\n @property({\n attribute: 'buttons',\n converter: {\n fromAttribute: (value: string | null) => value ?? 'bold,italic',\n toAttribute: (value: string | string[] | null | undefined) => {\n if (value == null) {\n return 'bold,italic';\n }\n\n return Array.isArray(value) ? value.join(',') : value;\n },\n },\n })\n buttons: string | string[] = 'bold,italic';\n\n /** Structured toolbar config — JSON string attribute, or a node array from React. */\n @property({\n attribute: 'toolbar',\n converter: {\n fromAttribute: (value: string | null) => value,\n toAttribute: (value: string | ToolbarNode[] | null | undefined) => {\n if (value == null) {\n return null;\n }\n\n return typeof value === 'string' ? value : JSON.stringify(value);\n },\n },\n })\n toolbar: string | ToolbarNode[] | null = null;\n\n @property({ attribute: 'link-options' })\n linkOptions: string | null = null;\n\n @property({ attribute: 'link-selector-storage-key-prefix' })\n linkSelectorStorageKeyPrefix?: string;\n\n @property({ type: Number })\n rows = 4;\n\n @property()\n placeholder = '';\n\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * Formie / React configure bridge — called when a chip is activated for editing.\n * Prefer this over listening for `pk-variable-tag-configure` from React.\n */\n @property({ attribute: false })\n variableTagConfigure: ((detail: import('./variable-tag-node-view.js').PkVariableTagConfigureDetail) => void) | null = null;\n\n @property({ attribute: 'invalid-content-message' })\n invalidContentMessage = '';\n\n /** Show `pk-tooltip` hints on toolbar buttons (default: on). */\n @property({ type: Boolean, attribute: 'toolbar-tooltips' })\n toolbarTooltips = true;\n\n private linkDialogBusy = false;\n\n private linkDialogSeed: LinkDialogSeed = {};\n\n @state()\n private linkDialogTitle = 'Insert Link';\n\n @state()\n private linkDialogSubmitLabel = 'Insert';\n\n @state()\n private linkDialogMounted = false;\n\n @state()\n private linkBubbleVisible = false;\n\n @state()\n private linkBubbleHref = '';\n\n @state()\n private linkBubbleTop = 0;\n\n @state()\n private linkBubbleLeft = 0;\n\n private hasCustomToolbar = false;\n\n private readonly linkButtonId = uniqueId('pk-tiptap-link-btn');\n\n private readonly toolbarButtonIds = new Map<string, string>();\n\n private readonly toolbarGroupIds = new Map<string, string>();\n\n private selectionListenerAttached = false;\n\n get value(): string {\n if (this.valueHasChanged) {\n return this._value ?? '[]';\n }\n\n return this._value ?? this.defaultValue ?? '[]';\n }\n\n /**\n * Document JSON string. Also accepts a TipTap node array (common from React)\n * and serializes it — arrays previously bypassed JSON.parse and mounted empty.\n */\n @state()\n set value(val: string | unknown[] | null) {\n const next = serializeTiptapDocumentValue(val);\n\n if (this._value === next) {\n return;\n }\n\n this.valueHasChanged = true;\n this._value = next;\n }\n\n @property({ attribute: 'value', reflect: true })\n defaultValue: string | null = '[]';\n\n get editor() {\n return this.host.editor;\n }\n\n get toolbarNodes(): ToolbarNode[] {\n const buttonsRaw = Array.isArray(this.buttons) ? this.buttons.join(',') : this.buttons;\n\n return parseToolbarAttribute(this.toolbar, buttonsRaw)\n .filter((node) => node.type !== 'button' || node.name !== 'variableTag');\n }\n\n /** Resolved flat button names from the active toolbar config. */\n get buttonNames(): string[] {\n return this.toolbarNodes\n .filter((node): node is Extract<ToolbarNode, { type: 'button' }> => node.type === 'button')\n .map((node) => node.name);\n }\n\n private toolbarHasLink(): boolean {\n return toolbarIncludesButton(this.toolbarNodes, 'link');\n }\n\n private resolveLinkOptions(): LinkOptionsInput | undefined {\n return parseLinkOptionsAttribute(this.linkOptions);\n }\n\n private get contentError(): string {\n return this.resolveContentError();\n }\n\n protected override syncFormValue(): void {\n this.setValue(this.value || '[]');\n\n if (this.input) {\n this.input.value = this.value || '[]';\n }\n }\n\n protected override resetToDefaultValue(): void {\n this.valueHasChanged = false;\n this._value = null;\n this.syncEditorContent();\n }\n\n protected override restoreFormState(state: string | File | FormData | null): void {\n if (typeof state === 'string') {\n this.value = state;\n this.syncEditorContent();\n }\n }\n\n override connectedCallback(): void {\n super.connectedCallback();\n this.hasCustomToolbar = Boolean(this.querySelector('[slot=\"toolbar\"]'));\n }\n\n override disconnectedCallback(): void {\n this.linkDialog?.forceOverlayReset();\n this.linkDialogBusy = false;\n this.host.destroy();\n this.selectionListenerAttached = false;\n super.disconnectedCallback();\n }\n\n override updated(changed: PropertyValues): void {\n if (changed.has('value') && !changed.has('defaultValue')) {\n this.syncEditorContent();\n }\n\n if (changed.has('defaultValue') && !this.valueHasChanged) {\n this.syncEditorContent();\n }\n\n if (changed.has('disabled') || changed.has('readonly')) {\n this.host.editor?.setEditable(!this.disabled && !this.readonly);\n }\n\n super.updated(changed);\n }\n\n override firstUpdated(): void {\n queueMicrotask(() => {\n this.mountEditor();\n this.syncFormValue();\n });\n }\n\n private resolveContentError(): string {\n const detected = getFatalTiptapContentError(this.value);\n return detected ? (this.invalidContentMessage || detected) : '';\n }\n\n private mountEditor(): void {\n const content = this.contentError ? null : parseTiptapDocumentValue(this.value);\n const normalizedRows = Math.max(1, Number(this.rows || 0));\n const minHeight = `${(normalizedRows * 24) + 32}px`;\n\n this.host.mount({\n element: this.editorMount,\n extensions: createTiptapExtensions({\n trailingCursorText: '\\u2060',\n variableTagNodeView: createVariableTagDomNodeView(),\n }),\n content,\n editable: !this.disabled && !this.readonly && !this.contentError,\n trailingCursorText: '\\u2060',\n minHeight,\n onUpdate: (nextContent) => {\n const serialized = serializeTiptapDocumentContent(nextContent);\n this.value = serialized;\n\n if (this.input) {\n this.input.value = serialized;\n }\n\n this.syncFormValue();\n // Emit JSON string (matches `value` prop) — arrays caused Formie controlled\n // fields to write mismatched types and re-enter sync forever.\n this.emitValueChange(serialized);\n },\n });\n\n queueMicrotask(() => {\n this.attachSelectionListeners();\n });\n }\n\n private attachSelectionListeners(): void {\n const editor = this.host.editor;\n\n if (!editor || this.selectionListenerAttached) {\n return;\n }\n\n const refreshToolbar = () => {\n if (this.linkDialogBusy || this.linkDialog?.open) {\n this.linkBubbleVisible = false;\n return;\n }\n\n this.updateLinkBubble();\n\n queueMicrotask(() => {\n if (this.isConnected && !this.linkDialogBusy && !this.linkDialog?.open) {\n this.requestUpdate();\n }\n });\n };\n\n editor.on('selectionUpdate', refreshToolbar);\n editor.on('transaction', refreshToolbar);\n editor.on('focus', refreshToolbar);\n editor.on('blur', () => {\n this.linkBubbleVisible = false;\n this.requestUpdate();\n });\n this.selectionListenerAttached = true;\n }\n\n private updateLinkBubble(): void {\n const editor = this.host.editor;\n\n if (\n !editor\n || this.disabled\n || this.readonly\n || this.linkDialogBusy\n || this.linkDialog?.open\n || !editor.isFocused\n || !editor.isActive('link')\n ) {\n this.linkBubbleVisible = false;\n return;\n }\n\n const linkType = editor.state.schema.marks.link;\n const range = getMarkRange(editor.state.selection.$from, linkType);\n\n if (!range) {\n this.linkBubbleVisible = false;\n return;\n }\n\n const linkRect = posToDOMRect(editor.view, range.from, range.to);\n const mountRect = this.editorMount.getBoundingClientRect();\n const bubbleOffset = 8;\n\n this.linkBubbleHref = String(editor.getAttributes('link').href ?? '');\n this.linkBubbleTop = linkRect.top - mountRect.top - bubbleOffset;\n this.linkBubbleLeft = linkRect.left - mountRect.left + (linkRect.width / 2);\n this.linkBubbleVisible = true;\n }\n\n private handleLinkBubbleEdit = (event: Event): void => {\n event.preventDefault();\n\n const editor = this.host.editor;\n\n if (!editor) {\n return;\n }\n\n const state = getLinkEditState(editor);\n this.linkBubbleVisible = false;\n this.openLinkDialog({\n url: state.href,\n text: state.text,\n openInNewTab: state.openInNewTab,\n from: state.from,\n to: state.to,\n });\n };\n\n private handleLinkBubbleUnlink = (event: Event): void => {\n event.preventDefault();\n\n const editor = this.host.editor;\n\n if (!editor) {\n return;\n }\n\n unsetLinkFromEditor(editor);\n this.linkBubbleVisible = false;\n };\n\n private renderLinkBubble() {\n return html`\n <div\n class=\"link-bubble\"\n role=\"toolbar\"\n aria-label=\"Link actions\"\n tabindex=\"0\"\n style=${`top:${this.linkBubbleTop}px;left:${this.linkBubbleLeft}px;transform:translate(-50%, -100%);`}\n >\n <span class=\"link-bubble__arrow\" aria-hidden=\"true\"></span>\n <span class=\"link-bubble__url\" title=${this.linkBubbleHref}>${this.linkBubbleHref}</span>\n <span class=\"link-bubble__divider\" aria-hidden=\"true\"></span>\n <button\n type=\"button\"\n class=\"link-bubble__action\"\n @mousedown=${(event: Event) => event.preventDefault()}\n @click=${this.handleLinkBubbleEdit}\n >Edit</button>\n <span class=\"link-bubble__divider\" aria-hidden=\"true\"></span>\n <button\n type=\"button\"\n class=\"link-bubble__action\"\n @mousedown=${(event: Event) => event.preventDefault()}\n @click=${this.handleLinkBubbleUnlink}\n >Unlink</button>\n </div>\n `;\n }\n\n private syncEditorContent(): void {\n const content = this.contentError ? null : parseTiptapDocumentValue(this.value);\n this.host.setContent(content, { trailingCursorText: '\\u2060' });\n\n if (this.input) {\n this.input.value = this.value || '[]';\n }\n }\n\n private emitValueChange(value: string): void {\n this.dispatchEvent(new CustomEvent('pk-change', {\n detail: { value },\n bubbles: true,\n composed: true,\n }));\n this.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));\n }\n\n private handleToolbarCommand(buttonName: string): void {\n const editor = this.host.editor;\n\n if (!editor) {\n return;\n }\n\n runToolbarButton(editor, buttonName);\n }\n\n private openLinkMenu(): void {\n const editor = this.host.editor;\n\n if (!editor) {\n return;\n }\n\n const selected = getSelectedText(editor);\n const { from, to } = editor.state.selection;\n\n const menu = this.shadowRoot?.querySelector<PkDropdownMenu>(\n `pk-dropdown-menu[for=\"${this.linkButtonId}\"]`,\n );\n\n void (async () => {\n await menu?.whenClosed();\n this.openLinkDialog(from !== to ? { text: selected, from, to } : undefined);\n })();\n }\n\n private openLinkDialog(initial?: LinkDialogSeed): void {\n const editor = this.host.editor;\n const url = initial?.url ?? '';\n\n this.linkDialogBusy = true;\n this.linkBubbleVisible = false;\n this.linkDialogSeed = {\n url,\n text: initial?.text ?? '',\n openInNewTab: initial?.openInNewTab ?? (editor ? getLinkOpenInNewTab(editor) : false),\n from: initial?.from,\n to: initial?.to,\n };\n this.linkDialogTitle = url.trim() ? 'Update Link' : 'Insert Link';\n this.linkDialogSubmitLabel = url.trim() ? 'Update' : 'Insert';\n\n if (!this.linkDialogMounted) {\n this.linkDialogMounted = true;\n }\n\n // Mount first, then open after the dropdown has fully demoted (caller awaits\n // whenClosed). Busy flag still suppresses toolbar refresh during show animation.\n queueMicrotask(async () => {\n await this.updateComplete;\n await this.linkDialog?.updateComplete;\n this.syncLinkDialogFields();\n // Prefer show() over flipping `open` before firstUpdated — that path only\n // call showModal() and skips PkShowEvent / enter animation.\n await this.linkDialog?.show();\n });\n }\n\n private closeLinkDialog(): void {\n void this.linkDialog?.hide('close-button');\n }\n\n private handleLinkDialogAfterHide = (): void => {\n this.linkDialogBusy = false;\n\n queueMicrotask(() => {\n if (this.isConnected && !this.linkDialog?.open) {\n this.requestUpdate();\n }\n });\n };\n\n private syncLinkDialogFields(): void {\n const seed = this.linkDialogSeed;\n\n if (this.linkUrlInput) {\n this.linkUrlInput.value = seed.url ?? '';\n }\n\n if (this.linkTextInput) {\n this.linkTextInput.value = seed.text ?? '';\n }\n\n if (this.linkNewTabCheckbox) {\n this.linkNewTabCheckbox.checked = Boolean(seed.openInNewTab);\n }\n\n this.updateLinkDialogSubmitState();\n }\n\n private updateLinkDialogSubmitState(): void {\n const canSubmit = Boolean(this.linkUrlInput?.value.trim());\n\n if (this.linkSubmitButton) {\n this.linkSubmitButton.disabled = !canSubmit;\n }\n }\n\n private handleLinkUrlInput = (): void => {\n this.updateLinkDialogSubmitState();\n };\n\n private handleLinkDialogKeyDown = (event: KeyboardEvent): void => {\n if (event.key !== 'Enter') {\n return;\n }\n\n const path = event.composedPath();\n\n if (path.some((node) => node instanceof HTMLElement && node.localName === 'pk-checkbox')) {\n return;\n }\n\n if (path.some((node) => node instanceof HTMLElement && node.localName === 'pk-button')) {\n return;\n }\n\n if (path.some((node) => node instanceof HTMLButtonElement)) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n this.submitLinkDialog();\n };\n\n private handleLinkDialogSubmit = (): void => {\n this.submitLinkDialog();\n };\n\n private submitLinkDialog(): void {\n const editor = this.host.editor;\n const url = this.linkUrlInput?.value.trim() ?? '';\n\n if (!editor || !url) {\n return;\n }\n\n applyLinkToEditor(editor, {\n url,\n text: this.linkTextInput?.value ?? '',\n openInNewTab: Boolean(this.linkNewTabCheckbox?.checked),\n from: this.linkDialogSeed.from,\n to: this.linkDialogSeed.to,\n });\n\n this.closeLinkDialog();\n }\n\n private isLinkActive(): boolean {\n const editor = this.host.editor;\n return editor ? isTiptapButtonActive(editor, 'link') : false;\n }\n\n private renderLinkDialog() {\n return html`\n <pk-dialog\n class=\"link-dialog\"\n size=\"wide\"\n label=${this.linkDialogTitle}\n @pk-after-hide=${this.handleLinkDialogAfterHide}\n @keydown=${this.handleLinkDialogKeyDown}\n >\n <div class=\"link-dialog__fields\">\n <pk-field label=\"URL\" required .for=${this.linkUrlInputId}>\n <pk-input\n id=${this.linkUrlInputId}\n class=\"link-dialog__url-input\"\n type=\"url\"\n placeholder=\"https://\"\n autofocus\n @input=${this.handleLinkUrlInput}\n ></pk-input>\n </pk-field>\n <pk-field label=\"Text\" .for=${this.linkTextInputId}>\n <pk-input\n id=${this.linkTextInputId}\n class=\"link-dialog__text-input\"\n type=\"text\"\n ></pk-input>\n </pk-field>\n <pk-checkbox>Open link in new tab</pk-checkbox>\n </div>\n <pk-button slot=\"footer\" data-dialog-close>Cancel</pk-button>\n <pk-button\n slot=\"footer\"\n class=\"link-dialog__submit\"\n variant=\"primary\"\n disabled\n @click=${this.handleLinkDialogSubmit}\n >\n ${this.linkDialogSubmitLabel}\n </pk-button>\n </pk-dialog>\n `;\n }\n\n private getToolbarButtonId(buttonName: string): string {\n let id = this.toolbarButtonIds.get(buttonName);\n\n if (!id) {\n id = uniqueId(`pk-tiptap-toolbar-${buttonName}`);\n this.toolbarButtonIds.set(buttonName, id);\n }\n\n return id;\n }\n\n private getToolbarButtonLabel(buttonName: string): string {\n return TOOLBAR_LABELS[buttonName] ?? buttonName;\n }\n\n private renderToolbarTooltip(buttonId: string, label: string) {\n if (!this.toolbarTooltips) {\n return nothing;\n }\n\n return html`\n <pk-tooltip for=${buttonId} content=${label} placement=\"top\"></pk-tooltip>\n `;\n }\n\n private renderToolbarButton(buttonName: string) {\n const editor = this.host.editor;\n const icon = TOOLBAR_ICONS[buttonName];\n const label = this.getToolbarButtonLabel(buttonName);\n const buttonId = this.getToolbarButtonId(buttonName);\n const active = editor ? isTiptapButtonActive(editor, buttonName) : false;\n\n return html`\n <div class=\"toolbar-item\">\n <button\n id=${buttonId}\n type=\"button\"\n class=\"toolbar-btn\"\n aria-label=${label}\n ?disabled=${this.disabled || this.readonly}\n data-state=${active ? 'active' : nothing}\n @click=${() => this.handleToolbarCommand(buttonName)}\n >\n ${icon ? unsafeSVG(icon) : html`<span class=\"toolbar-btn__label\">${label}</span>`}\n </button>\n ${this.renderToolbarTooltip(buttonId, label)}\n </div>\n `;\n }\n\n private handleCraftLink(config: LinkElementConfig): void {\n const editor = this.host.editor;\n\n if (!editor) {\n return;\n }\n\n openCraftElementLinkSelector({\n config,\n elementSiteId: getLinkOptionsElementSiteId(this.resolveLinkOptions()),\n linkSelectorStorageKeyPrefix: this.linkSelectorStorageKeyPrefix,\n getSelectedText: () => getSelectedText(editor),\n onSelect: ({ url, text }) => { this.openLinkDialog({ url, text }); },\n host: createCraftElementSelectorHost(),\n });\n }\n\n private getToolbarGroupId(groupKey: string): string {\n let id = this.toolbarGroupIds.get(groupKey);\n\n if (!id) {\n id = uniqueId('pk-tiptap-toolbar-group');\n this.toolbarGroupIds.set(groupKey, id);\n }\n\n return id;\n }\n\n private renderToolbarSeparator() {\n return html`<span class=\"toolbar-separator\" aria-hidden=\"true\"></span>`;\n }\n\n private renderGroupTriggerContent(group: ToolbarGroup, triggerLabel: string, iconName: string) {\n const icon = TOOLBAR_ICONS[iconName];\n const showTextLabel = Boolean(group.label);\n\n if (showTextLabel && triggerLabel) {\n return html`\n <span class=\"toolbar-btn__trigger-label\">${triggerLabel}</span>\n <span class=\"toolbar-btn__chevron\">${unsafeSVG(TOOLBAR_CHEVRON_HTML)}</span>\n `;\n }\n\n return html`\n ${icon ? unsafeSVG(icon) : html`<span class=\"toolbar-btn__trigger-label\">${triggerLabel}</span>`}\n <span class=\"toolbar-btn__chevron\">${unsafeSVG(TOOLBAR_CHEVRON_HTML)}</span>\n `;\n }\n\n private renderToolbarGroup(group: ToolbarGroup, groupKey: string) {\n const editor = this.host.editor;\n const groupId = this.getToolbarGroupId(groupKey);\n const trigger = editor ? getToolbarGroupTriggerState(editor, group) : {\n activeName: null,\n label: group.label ?? '',\n isActive: false,\n icon: group.icon ?? getToolbarGroupDefaultIcon(group),\n };\n const menuItems = getToolbarGroupMenuItems(group);\n const tooltipLabel = group.label\n ?? (isHeadingsOnlyToolbarPreset(group.preset) ? 'Headings'\n : isFormattingToolbarPreset(group.preset) ? 'Formatting'\n : group.preset === 'lists' ? 'Lists'\n : group.preset === 'align' ? 'Alignment'\n : 'More');\n\n return html`\n <div class=\"toolbar-item\">\n <button\n id=${groupId}\n type=\"button\"\n class=\"toolbar-btn toolbar-btn--menu\"\n aria-label=${tooltipLabel}\n aria-haspopup=\"menu\"\n ?disabled=${this.disabled || this.readonly}\n data-state=${trigger.isActive ? 'active' : nothing}\n >\n ${this.renderGroupTriggerContent(group, trigger.label, trigger.icon)}\n </button>\n ${this.renderToolbarTooltip(groupId, tooltipLabel)}\n <pk-dropdown-menu for=${groupId} placement=\"bottom-start\">\n ${menuItems.map((entry, itemIndex) => {\n if (entry.type === 'separator') {\n return html`<pk-dropdown-separator key=${`${groupKey}-sep-${itemIndex}`}></pk-dropdown-separator>`;\n }\n\n const itemName = entry.name;\n const active = editor ? isToolbarButtonActive(editor, itemName) : false;\n const prefixIcon = createToolbarPrefixIcon(itemName);\n const itemLabel = getToolbarMenuItemLabel(itemName);\n\n return html`\n <pk-dropdown-item\n key=${`${groupKey}-${itemName}-${itemIndex}`}\n ?data-active=${active || nothing}\n @click=${() => this.handleToolbarCommand(itemName)}\n >\n ${prefixIcon ?? nothing}\n ${itemLabel}\n </pk-dropdown-item>\n `;\n })}\n </pk-dropdown-menu>\n </div>\n `;\n }\n\n private renderToolbarNode(node: ToolbarNode, index: number) {\n if (node.type === 'separator') {\n return this.renderToolbarSeparator();\n }\n\n if (node.type === 'group') {\n return this.renderToolbarGroup(node.group, `group-${index}`);\n }\n\n if (node.name === 'link') {\n return this.renderLinkToolbarButton();\n }\n\n return this.renderToolbarButton(node.name);\n }\n\n private renderDefaultToolbar() {\n // `toolbar-end` — append custom controls (Formie variable picker, etc.) into the\n // stock toolbar flex/gap. Prefer over replacing the whole bar via slot=\"toolbar\".\n return html`\n <div class=\"toolbar\" part=\"toolbar\">\n ${this.toolbarNodes.map((node, index) => this.renderToolbarNode(node, index))}\n <slot name=\"toolbar-end\"></slot>\n </div>\n `;\n }\n\n private renderLinkToolbarButton() {\n const editor = this.host.editor;\n const craftOptions = getCraftLinkOptions(this.resolveLinkOptions());\n const label = this.getToolbarButtonLabel('link');\n const active = this.isLinkActive();\n\n return html`\n <div class=\"toolbar-item\">\n <button\n id=${this.linkButtonId}\n type=\"button\"\n class=\"toolbar-btn\"\n aria-label=${label}\n aria-haspopup=\"menu\"\n ?disabled=${this.disabled || this.readonly}\n data-state=${active ? 'active' : nothing}\n >\n ${unsafeSVG(TOOLBAR_ICONS.link)}\n </button>\n ${this.renderToolbarTooltip(this.linkButtonId, label)}\n <pk-dropdown-menu for=${this.linkButtonId} placement=\"bottom-start\">\n ${craftOptions.map((option) => html`\n <pk-dropdown-item @click=${() => this.handleCraftLink(option)}>\n ${option.optionTitle}\n </pk-dropdown-item>\n `)}\n ${craftOptions.length > 0 ? html`<pk-dropdown-separator></pk-dropdown-separator>` : nothing}\n <pk-dropdown-item @click=${() => this.openLinkMenu()}>Insert Link</pk-dropdown-item>\n <pk-dropdown-item\n ?disabled=${!active}\n @click=${() => editor && unsetLinkFromEditor(editor)}\n >Unlink</pk-dropdown-item>\n </pk-dropdown-menu>\n </div>\n `;\n }\n\n override render() {\n return html`\n <div class=\"shell\" part=\"shell\">\n ${this.hasCustomToolbar\n ? html`<slot name=\"toolbar\"></slot>`\n : this.renderDefaultToolbar()}\n\n <div class=\"editor-mount\" part=\"editor\">\n ${this.contentError ? html`\n <div class=\"content-error\">\n <span>${unsafeSVG(renderIconHtml(triangleExclamation))}</span>\n <span>${this.contentError}</span>\n </div>\n ` : nothing}\n ${this.toolbarHasLink() && this.linkBubbleVisible ? this.renderLinkBubble() : nothing}\n </div>\n\n <input class=\"mirror-input\" type=\"text\" .value=${this.value} readonly tabindex=\"-1\" aria-hidden=\"true\" />\n ${this.toolbarHasLink() && this.linkDialogMounted ? this.renderLinkDialog() : nothing}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-tiptap-editor': PkTiptapEditor;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,250 @@
1
+ import { t as __decorate } from "./decorate-W02hmVTt.js";
2
+ import { t as PkFormAssociatedElement } from "./pk-form-associated-element-DmZKgNPL.js";
3
+ import { t as MirrorValidator } from "./mirror-validator-DCjNYrrx.js";
4
+ import { t as formControlStyles } from "./form-control.styles-BQdimE5o.js";
5
+ import { i as createVariableTagDomNodeView, n as tiptapInputProseMirrorStyles } from "./tiptap.styles-BytOpP0H.js";
6
+ import { css, html } from "lit";
7
+ import { customElement, property, query, state } from "lit/decorators.js";
8
+ import { Editor } from "@tiptap/core";
9
+ import { contentToValue, createTiptapInputExtensions, dedupeVariableOptions, flattenVariableOptions, inputValueToContent } from "@verbb/plugin-kit-tiptap-core";
10
+ //#region src/components/tiptap/pk-tiptap-input.styles.ts
11
+ var pkTiptapInputStyles = css`
12
+ @layer pk-component {
13
+ :host {
14
+ display: block;
15
+ width: 100%;
16
+ font-family: var(--pk-font-family);
17
+ font-size: var(--pk-font-size-base);
18
+ line-height: 1.4;
19
+ }
20
+
21
+ /* Same chrome as pk-input .input — border/radius live on the shell. */
22
+ .shell {
23
+ box-sizing: border-box;
24
+ border: var(--pk-input-border);
25
+ border-radius: var(--pk-input-border-radius, var(--pk-radius-sm));
26
+ background: var(--pk-input-bg);
27
+ overflow: hidden;
28
+ }
29
+
30
+ :host([invalid]) .shell,
31
+ :host(:state(user-invalid)) .shell {
32
+ border-color: var(--pk-color-rose-600);
33
+ }
34
+
35
+ /* Editable-table cells (v1): flush TipTap shell — chips sit in the row, not a boxed field. */
36
+ :host([fit-cell]),
37
+ :host([data-editable-table-input]) {
38
+ display: block;
39
+ height: 100%;
40
+ min-height: 100%;
41
+ box-sizing: border-box;
42
+ }
43
+
44
+ :host([fit-cell]) .shell,
45
+ :host([data-editable-table-input]) .shell {
46
+ border: none;
47
+ border-radius: 0;
48
+ background: transparent;
49
+ box-shadow: none;
50
+ height: 100%;
51
+ min-height: 100%;
52
+ }
53
+
54
+ /* Read-only display (lists, picker cards): v1 skipped input chrome when readOnly. */
55
+ :host([readonly]) .shell {
56
+ border: none;
57
+ border-radius: 0;
58
+ background: transparent;
59
+ box-shadow: none;
60
+ overflow: visible;
61
+ }
62
+
63
+ :host([fit-cell][invalid]) .shell,
64
+ :host([fit-cell]:state(user-invalid)) .shell,
65
+ :host([data-editable-table-input][invalid]) .shell,
66
+ :host([data-editable-table-input]:state(user-invalid)) .shell {
67
+ border: none;
68
+ box-shadow: inset 0 0 0 1px var(--pk-color-rose-600);
69
+ }
70
+
71
+ .editor-mount {
72
+ display: block;
73
+ min-width: 0;
74
+ }
75
+
76
+ .mirror-input {
77
+ display: none;
78
+ }
79
+ }
80
+ `;
81
+ //#endregion
82
+ //#region src/components/tiptap/pk-tiptap-input.ts
83
+ var PkTiptapInput = class PkTiptapInput extends PkFormAssociatedElement {
84
+ constructor(..._args) {
85
+ super(..._args);
86
+ this.assumeInteractionOn = ["blur", "input"];
87
+ this.editor = null;
88
+ this.lastEmitted = null;
89
+ this.suppressUpdateEmission = false;
90
+ this._value = null;
91
+ this.variableCategories = {};
92
+ this.variableTagConfigure = null;
93
+ this.readonly = false;
94
+ this.invalid = false;
95
+ this.fitCell = false;
96
+ this.defaultValue = "";
97
+ }
98
+ static {
99
+ this.styles = [
100
+ formControlStyles,
101
+ pkTiptapInputStyles,
102
+ tiptapInputProseMirrorStyles
103
+ ];
104
+ }
105
+ static get validators() {
106
+ return [...super.validators, MirrorValidator()];
107
+ }
108
+ get value() {
109
+ if (this.valueHasChanged) return this._value ?? "";
110
+ return this._value ?? this.defaultValue ?? "";
111
+ }
112
+ set value(val) {
113
+ const next = val ?? "";
114
+ if (this._value === next) return;
115
+ this.valueHasChanged = true;
116
+ this._value = next;
117
+ }
118
+ get editorInstance() {
119
+ return this.editor;
120
+ }
121
+ resolveVariableLists() {
122
+ const topLevel = dedupeVariableOptions(Object.values(this.variableCategories ?? {}).flatMap((items) => {
123
+ return Array.isArray(items) ? items : [];
124
+ }));
125
+ return {
126
+ topLevel,
127
+ all: flattenVariableOptions(topLevel)
128
+ };
129
+ }
130
+ resolveEditorContent() {
131
+ const { topLevel, all } = this.resolveVariableLists();
132
+ return inputValueToContent(this.value, topLevel, all);
133
+ }
134
+ syncFormValue() {
135
+ this.setValue(this.value || "");
136
+ if (this.input) this.input.value = this.value || "";
137
+ }
138
+ resetToDefaultValue() {
139
+ this.valueHasChanged = false;
140
+ this._value = null;
141
+ this.syncEditorContent(true);
142
+ }
143
+ restoreFormState(state) {
144
+ if (typeof state === "string") {
145
+ this.value = state;
146
+ this.syncEditorContent(true);
147
+ }
148
+ }
149
+ disconnectedCallback() {
150
+ this.editor?.destroy();
151
+ this.editor = null;
152
+ super.disconnectedCallback();
153
+ }
154
+ updated(changed) {
155
+ if (changed.has("value") && !changed.has("defaultValue")) this.syncEditorContent();
156
+ if (changed.has("defaultValue") && !this.valueHasChanged) this.syncEditorContent();
157
+ if (changed.has("variableCategories") && this.editor) this.syncEditorContent(true);
158
+ if (changed.has("disabled") || changed.has("readonly")) this.editor?.setEditable(!this.disabled && !this.readonly);
159
+ super.updated(changed);
160
+ }
161
+ firstUpdated() {
162
+ this.mountEditor();
163
+ this.syncFormValue();
164
+ }
165
+ mountEditor() {
166
+ const content = this.resolveEditorContent();
167
+ this.editor = new Editor({
168
+ element: this.editorMount,
169
+ extensions: createTiptapInputExtensions({ variableTagNodeView: createVariableTagDomNodeView() }),
170
+ content,
171
+ editable: !this.disabled && !this.readonly,
172
+ onUpdate: ({ editor }) => {
173
+ const nextValue = contentToValue(editor.getJSON().content);
174
+ this.lastEmitted = nextValue;
175
+ if (this.suppressUpdateEmission) return;
176
+ this.value = nextValue;
177
+ if (this.input) this.input.value = nextValue;
178
+ this.syncFormValue();
179
+ this.emitValueChange(nextValue);
180
+ }
181
+ });
182
+ }
183
+ syncEditorContent(force = false) {
184
+ if (!this.editor) return;
185
+ if (!force && !this.readonly && this.editor.isFocused) return;
186
+ const nextContent = this.resolveEditorContent();
187
+ const currentContent = this.editor.getJSON();
188
+ if (JSON.stringify(nextContent) === JSON.stringify(currentContent)) return;
189
+ if (!force && this.lastEmitted === this.value) return;
190
+ this.suppressUpdateEmission = true;
191
+ try {
192
+ this.editor.commands.setContent(nextContent ?? {
193
+ type: "doc",
194
+ content: []
195
+ });
196
+ } finally {
197
+ this.suppressUpdateEmission = false;
198
+ }
199
+ }
200
+ emitValueChange(value) {
201
+ this.dispatchEvent(new CustomEvent("pk-change", {
202
+ detail: { value },
203
+ bubbles: true,
204
+ composed: true
205
+ }));
206
+ this.dispatchEvent(new Event("input", {
207
+ bubbles: true,
208
+ composed: true
209
+ }));
210
+ this.dispatchEvent(new Event("change", {
211
+ bubbles: true,
212
+ composed: true
213
+ }));
214
+ }
215
+ render() {
216
+ return html`
217
+ <div class="shell" part="shell">
218
+ <div class="editor-mount" part="editor"></div>
219
+ <input class="mirror-input" type="text" .value=${this.value} readonly tabindex="-1" aria-hidden="true" />
220
+ </div>
221
+ `;
222
+ }
223
+ };
224
+ __decorate([query(".editor-mount")], PkTiptapInput.prototype, "editorMount", void 0);
225
+ __decorate([query(".mirror-input")], PkTiptapInput.prototype, "input", void 0);
226
+ __decorate([property({ attribute: false })], PkTiptapInput.prototype, "variableCategories", void 0);
227
+ __decorate([property({ attribute: false })], PkTiptapInput.prototype, "variableTagConfigure", void 0);
228
+ __decorate([property({
229
+ type: Boolean,
230
+ reflect: true
231
+ })], PkTiptapInput.prototype, "readonly", void 0);
232
+ __decorate([property({
233
+ type: Boolean,
234
+ reflect: true
235
+ })], PkTiptapInput.prototype, "invalid", void 0);
236
+ __decorate([property({
237
+ type: Boolean,
238
+ reflect: true,
239
+ attribute: "fit-cell"
240
+ })], PkTiptapInput.prototype, "fitCell", void 0);
241
+ __decorate([state()], PkTiptapInput.prototype, "value", null);
242
+ __decorate([property({
243
+ attribute: "value",
244
+ reflect: true
245
+ })], PkTiptapInput.prototype, "defaultValue", void 0);
246
+ PkTiptapInput = __decorate([customElement("pk-tiptap-input")], PkTiptapInput);
247
+ //#endregion
248
+ export { PkTiptapInput as t };
249
+
250
+ //# sourceMappingURL=pk-tiptap-input-CXcYXbRa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pk-tiptap-input-CXcYXbRa.js","names":[],"sources":["../../src/components/tiptap/pk-tiptap-input.styles.ts","../../src/components/tiptap/pk-tiptap-input.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const pkTiptapInputStyles = css`\n @layer pk-component {\n :host {\n display: block;\n width: 100%;\n font-family: var(--pk-font-family);\n font-size: var(--pk-font-size-base);\n line-height: 1.4;\n }\n\n /* Same chrome as pk-input .input — border/radius live on the shell. */\n .shell {\n box-sizing: border-box;\n border: var(--pk-input-border);\n border-radius: var(--pk-input-border-radius, var(--pk-radius-sm));\n background: var(--pk-input-bg);\n overflow: hidden;\n }\n\n :host([invalid]) .shell,\n :host(:state(user-invalid)) .shell {\n border-color: var(--pk-color-rose-600);\n }\n\n /* Editable-table cells (v1): flush TipTap shell — chips sit in the row, not a boxed field. */\n :host([fit-cell]),\n :host([data-editable-table-input]) {\n display: block;\n height: 100%;\n min-height: 100%;\n box-sizing: border-box;\n }\n\n :host([fit-cell]) .shell,\n :host([data-editable-table-input]) .shell {\n border: none;\n border-radius: 0;\n background: transparent;\n box-shadow: none;\n height: 100%;\n min-height: 100%;\n }\n\n /* Read-only display (lists, picker cards): v1 skipped input chrome when readOnly. */\n :host([readonly]) .shell {\n border: none;\n border-radius: 0;\n background: transparent;\n box-shadow: none;\n overflow: visible;\n }\n\n :host([fit-cell][invalid]) .shell,\n :host([fit-cell]:state(user-invalid)) .shell,\n :host([data-editable-table-input][invalid]) .shell,\n :host([data-editable-table-input]:state(user-invalid)) .shell {\n border: none;\n box-shadow: inset 0 0 0 1px var(--pk-color-rose-600);\n }\n\n .editor-mount {\n display: block;\n min-width: 0;\n }\n\n .mirror-input {\n display: none;\n }\n }\n`;\n","import { html } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\nimport type { PropertyValues } from 'lit';\nimport {\n contentToValue,\n createTiptapInputExtensions,\n dedupeVariableOptions,\n flattenVariableOptions,\n inputValueToContent,\n type VariableOption,\n} from '@verbb/plugin-kit-tiptap-core';\nimport { Editor } from '@tiptap/core';\n\nimport { formControlStyles } from '../../base/form-control.styles.js';\nimport { PkFormAssociatedElement } from '../../base/pk-form-associated-element.js';\nimport { MirrorValidator } from '../../validators/index.js';\nimport { createVariableTagDomNodeView } from './variable-tag-node-view.js';\nimport { pkTiptapInputStyles } from './pk-tiptap-input.styles.js';\nimport { tiptapInputProseMirrorStyles } from './tiptap.styles.js';\n\n/** Category map keyed like Formie / kit v1 (`fieldsVariables`, `formVariables`, …). */\nexport type PkTiptapVariableCategories = Record<string, VariableOption[]>;\n\n@customElement('pk-tiptap-input')\nexport class PkTiptapInput extends PkFormAssociatedElement {\n // Compact input chrome only — do not pull in editor `tiptapProseMirrorStyles`\n // (padding: 1rem) or single-line fields look massively padded.\n static override styles = [formControlStyles, pkTiptapInputStyles, tiptapInputProseMirrorStyles];\n\n static override get validators() {\n return [...super.validators, MirrorValidator()];\n }\n\n override assumeInteractionOn = ['blur', 'input'];\n\n @query('.editor-mount')\n private editorMount!: HTMLDivElement;\n\n @query('.mirror-input')\n override input!: HTMLInputElement;\n\n private editor: Editor | null = null;\n\n private lastEmitted: string | null = null;\n\n /** Avoid setContent → onUpdate → pk-change loops with controlled React values. */\n private suppressUpdateEmission = false;\n\n private _value: string | null = null;\n\n /**\n * Variable options used to resolve chip labels when hydrating from `{token}` strings.\n * Without this, saved field tokens fall back to UID title-casing after reload.\n */\n @property({ attribute: false })\n variableCategories: PkTiptapVariableCategories = {};\n\n /**\n * Formie / React configure bridge — called when a chip is activated for editing.\n * Prefer this over listening for `pk-variable-tag-configure` from React.\n */\n @property({ attribute: false })\n variableTagConfigure: ((detail: import('./variable-tag-node-view.js').PkVariableTagConfigureDetail) => void) | null = null;\n\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /** Flush + fill parent cell (editable tables). */\n @property({ type: Boolean, reflect: true, attribute: 'fit-cell' })\n fitCell = false;\n\n get value(): string {\n if (this.valueHasChanged) {\n return this._value ?? '';\n }\n\n return this._value ?? this.defaultValue ?? '';\n }\n\n @state()\n set value(val: string | null) {\n const next = val ?? '';\n\n if (this._value === next) {\n return;\n }\n\n this.valueHasChanged = true;\n this._value = next;\n }\n\n @property({ attribute: 'value', reflect: true })\n defaultValue: string | null = '';\n\n get editorInstance() {\n return this.editor;\n }\n\n private resolveVariableLists(): {\n topLevel: VariableOption[];\n all: VariableOption[];\n } {\n const topLevel = dedupeVariableOptions(\n Object.values(this.variableCategories ?? {}).flatMap((items) => {\n return Array.isArray(items) ? items : [];\n }),\n );\n\n return {\n topLevel,\n all: flattenVariableOptions(topLevel),\n };\n }\n\n private resolveEditorContent() {\n const { topLevel, all } = this.resolveVariableLists();\n return inputValueToContent(this.value, topLevel, all);\n }\n\n protected override syncFormValue(): void {\n this.setValue(this.value || '');\n\n if (this.input) {\n this.input.value = this.value || '';\n }\n }\n\n protected override resetToDefaultValue(): void {\n this.valueHasChanged = false;\n this._value = null;\n this.syncEditorContent(true);\n }\n\n protected override restoreFormState(state: string | File | FormData | null): void {\n if (typeof state === 'string') {\n this.value = state;\n this.syncEditorContent(true);\n }\n }\n\n override disconnectedCallback(): void {\n this.editor?.destroy();\n this.editor = null;\n super.disconnectedCallback();\n }\n\n override updated(changed: PropertyValues): void {\n if (changed.has('value') && !changed.has('defaultValue')) {\n this.syncEditorContent();\n }\n\n if (changed.has('defaultValue') && !this.valueHasChanged) {\n this.syncEditorContent();\n }\n\n // Categories often arrive with the field after first paint — re-hydrate labels.\n if (changed.has('variableCategories') && this.editor) {\n this.syncEditorContent(true);\n }\n\n if (changed.has('disabled') || changed.has('readonly')) {\n this.editor?.setEditable(!this.disabled && !this.readonly);\n }\n\n super.updated(changed);\n }\n\n override firstUpdated(): void {\n this.mountEditor();\n this.syncFormValue();\n }\n\n private mountEditor(): void {\n const content = this.resolveEditorContent();\n\n this.editor = new Editor({\n element: this.editorMount,\n extensions: createTiptapInputExtensions({\n variableTagNodeView: createVariableTagDomNodeView(),\n }),\n content,\n editable: !this.disabled && !this.readonly,\n onUpdate: ({ editor }) => {\n const nextValue = contentToValue(editor.getJSON().content);\n this.lastEmitted = nextValue;\n\n if (this.suppressUpdateEmission) {\n return;\n }\n\n this.value = nextValue;\n\n if (this.input) {\n this.input.value = nextValue;\n }\n\n this.syncFormValue();\n this.emitValueChange(nextValue);\n },\n });\n }\n\n private syncEditorContent(force = false): void {\n if (!this.editor) {\n return;\n }\n\n if (!force && !this.readonly && this.editor.isFocused) {\n return;\n }\n\n const nextContent = this.resolveEditorContent();\n const currentContent = this.editor.getJSON();\n\n if (JSON.stringify(nextContent) === JSON.stringify(currentContent)) {\n return;\n }\n\n // Same token string with newly available categories still needs a force remount\n // so chip labels upgrade from UID fallback → option labels.\n if (!force && this.lastEmitted === this.value) {\n return;\n }\n\n this.suppressUpdateEmission = true;\n try {\n this.editor.commands.setContent(nextContent ?? { type: 'doc', content: [] });\n } finally {\n this.suppressUpdateEmission = false;\n }\n }\n\n private emitValueChange(value: string): void {\n this.dispatchEvent(new CustomEvent('pk-change', {\n detail: { value },\n bubbles: true,\n composed: true,\n }));\n this.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));\n }\n\n override render() {\n return html`\n <div class=\"shell\" part=\"shell\">\n <div class=\"editor-mount\" part=\"editor\"></div>\n <input class=\"mirror-input\" type=\"text\" .value=${this.value} readonly tabindex=\"-1\" aria-hidden=\"true\" />\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'pk-tiptap-input': PkTiptapInput;\n }\n}\n"],"mappings":"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"}