@nubisco/ui 4.1.3 → 5.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 (301) hide show
  1. package/dist/{AiLabel-VbZiFHAZ.js → AiLabel-Ci7eROcw.js} +1 -1
  2. package/dist/{AiLabel-DZ9GkGqL.cjs → AiLabel-DtM5ZCQC.cjs} +1 -1
  3. package/dist/{Banner-7XsX8ibI.js → Banner-C5Erb75B.js} +1 -1
  4. package/dist/{Banner-DI5fA8Ow.cjs → Banner-JubX-4yR.cjs} +1 -1
  5. package/dist/{BlueprintControls-CJAKrQ6U.js → BlueprintControls-BkwhsHI8.js} +1 -1
  6. package/dist/{BlueprintControls-aF11uokn.cjs → BlueprintControls-CdvNvRkW.cjs} +1 -1
  7. package/dist/{BlueprintMinimap-C-gCkMIW.cjs → BlueprintMinimap-BIBsnBFs.cjs} +1 -1
  8. package/dist/{BlueprintMinimap-C-65UzhM.js → BlueprintMinimap-QAw6aiCc.js} +1 -1
  9. package/dist/{BottomPanel-B-dhgMWB.js → BottomPanel-BoBCdANz.js} +1 -1
  10. package/dist/{BottomPanel-CmVH0Hsf.cjs → BottomPanel-dbllmH2v.cjs} +1 -1
  11. package/dist/Button-Dwv0rx46.cjs +1 -0
  12. package/dist/{Button-Cegx6vaT.js → Button-Q8MBLMvG.js} +12 -4
  13. package/dist/{Card-Cs-7jXxG.cjs → Card-Cn5OS4q-.cjs} +1 -1
  14. package/dist/{Card-TjV_N8RU.js → Card-eM6DEphF.js} +1 -1
  15. package/dist/{Checkbox-BJrnykX9.js → Checkbox-DG82KK8V.js} +1 -1
  16. package/dist/{Checkbox-D9qW3gph.cjs → Checkbox-vFN3fLyr.cjs} +1 -1
  17. package/dist/{CheckboxGroup-CUSPscyy.js → CheckboxGroup-5pmdu9fe.js} +1 -1
  18. package/dist/{CheckboxGroup-mWcKUeq9.cjs → CheckboxGroup-Cyj2NUtI.cjs} +1 -1
  19. package/dist/{ColorStrip-CR1JDzwX.js → ColorStrip-BBTJU1Ox.js} +47 -45
  20. package/dist/ColorStrip-D3nbTyfs.cjs +1 -0
  21. package/dist/{Confirm-pgn2HajX.js → Confirm-C-HRTF0s.js} +23 -52
  22. package/dist/Confirm-w3Ig0L5j.cjs +1 -0
  23. package/dist/{DataTable-c0ltF6wT.js → DataTable-BVxSUB-h.js} +3 -3
  24. package/dist/{DataTable-BbiDmA1X.cjs → DataTable-Cnyh04sD.cjs} +1 -1
  25. package/dist/{DatePicker-YJ8-ViVK.js → DatePicker-BimOzKti.js} +1 -1
  26. package/dist/{DatePicker-C8_qR25v.cjs → DatePicker-CMPgr4Hp.cjs} +1 -1
  27. package/dist/{EmptyState-DVg8l-bl.js → EmptyState-CwMG-NeI.js} +1 -1
  28. package/dist/{EmptyState-henL7JH6.cjs → EmptyState-Cz91HAKF.cjs} +1 -1
  29. package/dist/{FileUploader-Lzy4bFn7.cjs → FileUploader-BJdRC-Kp.cjs} +1 -1
  30. package/dist/{FileUploader-BLwR6H3f.js → FileUploader-BO2cDUwP.js} +2 -2
  31. package/dist/ImageCropper-D7mr-xRE.cjs +1 -0
  32. package/dist/{ImageCropper-BT9lfFrs.js → ImageCropper-DEaGU0cZ.js} +74 -53
  33. package/dist/{InfoHint-DesESwdO.cjs → InfoHint-BNpqLVSX.cjs} +1 -1
  34. package/dist/{InfoHint-JwhhBFZP.js → InfoHint-C663u_NL.js} +1 -1
  35. package/dist/{InlineEdit-CZEt1vhH.cjs → InlineEdit-D95I45Vt.cjs} +1 -1
  36. package/dist/{InlineEdit-DNMF_40m.js → InlineEdit-DrhJ0AX2.js} +1 -1
  37. package/dist/{Message-Daj6hLC4.cjs → Message-Ax7rnAQl.cjs} +1 -1
  38. package/dist/{Message-BuG5t7bu.js → Message-DqUW3GHc.js} +1 -1
  39. package/dist/Modal-B1CQyPNo.js +206 -0
  40. package/dist/Modal-DvukGfHg.cjs +1 -0
  41. package/dist/{NotificationCenter-DL_Tshyb.js → NotificationCenter-Duu3XZC3.js} +3 -3
  42. package/dist/{NotificationCenter-D51ty3Lq.cjs → NotificationCenter-oOzClQI-.cjs} +1 -1
  43. package/dist/{NumberInput-Vc2wzK62.cjs → NumberInput-DKZsdWLv.cjs} +1 -1
  44. package/dist/{NumberInput-6R8FkJc-.js → NumberInput-_ff3Xi2r.js} +2 -2
  45. package/dist/{Pagination-B6a62qvI.js → Pagination-6bF88x_p.js} +3 -3
  46. package/dist/{Pagination-CkBe9Naz.cjs → Pagination-EipK6BGe.cjs} +1 -1
  47. package/dist/{Panel-BVtGI7YH.js → Panel-D3s_MKfd.js} +1 -1
  48. package/dist/{Panel-DQfmVtie.cjs → Panel-qDfyu_0v.cjs} +1 -1
  49. package/dist/{ProgressBar-fAaKT9lD.cjs → ProgressBar-CbqsSdZZ.cjs} +1 -1
  50. package/dist/{ProgressBar-DjejtCKA.js → ProgressBar-aF2zBoRA.js} +2 -2
  51. package/dist/{Radio-CQveGtXr.js → Radio-BnI7bi9Y.js} +2 -2
  52. package/dist/{Radio-DSvkUCxV.cjs → Radio-BqjtCaST.cjs} +1 -1
  53. package/dist/{ReorderList-Bai4yaIG.cjs → ReorderList-DLQ3rVnX.cjs} +1 -1
  54. package/dist/{ReorderList-Be-qicSf.js → ReorderList-DpytAupm.js} +1 -1
  55. package/dist/{Select-swFFQIMN.js → Select-B5t5QtVe.js} +1 -1
  56. package/dist/{Select-ClCyOqQI.cjs → Select-dAYn2iZO.cjs} +1 -1
  57. package/dist/{Shell-B8YmApR6.cjs → Shell-9lzopP-w.cjs} +1 -1
  58. package/dist/{Shell-Dr7LHIqk.js → Shell-B3jhTiNP.js} +99 -96
  59. package/dist/{ShellPanel-I0ZMGQ4K.js → ShellPanel-B3vZcQhX.js} +1 -1
  60. package/dist/{ShellPanel-CnN9orWH.cjs → ShellPanel-ChujN0eX.cjs} +1 -1
  61. package/dist/{SidebarLink-y2If8dtl.js → SidebarLink-B_CGHs0b.js} +1 -1
  62. package/dist/{SidebarLink-CngTvuB6.cjs → SidebarLink-CZrDLC8g.cjs} +1 -1
  63. package/dist/{SidebarMenuItem-DoyuIs3w.cjs → SidebarMenuItem-Dc6oh2Nc.cjs} +1 -1
  64. package/dist/{SidebarMenuItem-DBINoxeA.js → SidebarMenuItem-Dpqr9e0A.js} +1 -1
  65. package/dist/{Skeleton-D8CHd_4p.cjs → Skeleton-DP9iM6Ku.cjs} +1 -1
  66. package/dist/{Skeleton-CC7LVdxd.js → Skeleton-sox6qUDk.js} +1 -1
  67. package/dist/Slider-BNiQaaVa.cjs +1 -0
  68. package/dist/{Slider-lOhGG7UX.js → Slider-C0761rBk.js} +47 -33
  69. package/dist/{StepperStep-w1SSX7t7.cjs → StepperStep-B9JEE6WJ.cjs} +1 -1
  70. package/dist/{StepperStep-DNXUj71b.js → StepperStep-DFeOJ1ju.js} +1 -1
  71. package/dist/{Tabs-W_4iyGVx.js → Tabs-CQP9zwDw.js} +1 -1
  72. package/dist/{Tabs-Clg7lzy5.cjs → Tabs-Dp27EDrK.cjs} +1 -1
  73. package/dist/{TextInput-CGD_wFwo.cjs → TextInput-D4jBlYm9.cjs} +2 -2
  74. package/dist/{TextInput-CxC2HVj6.js → TextInput-DNrd12uS.js} +2 -2
  75. package/dist/{Toast-DueO27yl.cjs → Toast-BBsrCQK8.cjs} +1 -1
  76. package/dist/{Toast-QXobTGZM.js → Toast-cisfK5Zd.js} +1 -1
  77. package/dist/{Toaster-DcA6PJPt.js → Toaster-C1Uyr6O7.js} +1 -1
  78. package/dist/{Toaster-DY8o_iiy.cjs → Toaster-Dz_o--LF.cjs} +1 -1
  79. package/dist/{TreeNode-DS1XJGty.cjs → TreeNode-DB7ipWCg.cjs} +1 -1
  80. package/dist/{TreeNode-BI-Azvhe.js → TreeNode-a0MHLI27.js} +1 -1
  81. package/dist/{Walkthrough-DHtLDsOk.cjs → Walkthrough-YD3YYxxM.cjs} +1 -1
  82. package/dist/{Walkthrough-l7HOZths.js → Walkthrough-qaQ1rved.js} +2 -2
  83. package/dist/all.cjs +1 -1
  84. package/dist/all.mjs +137 -135
  85. package/dist/component-styles.json +1 -1
  86. package/dist/components/AiLabel.cjs +1 -1
  87. package/dist/components/AiLabel.mjs +1 -1
  88. package/dist/components/AiLabel.vue.d.ts.map +1 -1
  89. package/dist/components/Banner.cjs +1 -1
  90. package/dist/components/Banner.mjs +1 -1
  91. package/dist/components/Banner.vue.d.ts.map +1 -1
  92. package/dist/components/BlueprintControls.cjs +1 -1
  93. package/dist/components/BlueprintControls.mjs +1 -1
  94. package/dist/components/BlueprintMinimap.cjs +1 -1
  95. package/dist/components/BlueprintMinimap.mjs +1 -1
  96. package/dist/components/BlueprintMinimap.vue.d.ts.map +1 -1
  97. package/dist/components/Board.vue.d.ts.map +1 -1
  98. package/dist/components/BottomPanel.cjs +1 -1
  99. package/dist/components/BottomPanel.mjs +1 -1
  100. package/dist/components/BottomPanel.vue.d.ts.map +1 -1
  101. package/dist/components/Button.cjs +1 -1
  102. package/dist/components/Button.d.ts +25 -1
  103. package/dist/components/Button.mjs +1 -1
  104. package/dist/components/Button.vue.d.ts +1 -1
  105. package/dist/components/Button.vue.d.ts.map +1 -1
  106. package/dist/components/Calendar.vue.d.ts.map +1 -1
  107. package/dist/components/Card.cjs +1 -1
  108. package/dist/components/Card.mjs +1 -1
  109. package/dist/components/Card.vue.d.ts.map +1 -1
  110. package/dist/components/Checkbox.cjs +1 -1
  111. package/dist/components/Checkbox.mjs +1 -1
  112. package/dist/components/Checkbox.vue.d.ts.map +1 -1
  113. package/dist/components/CheckboxGroup.cjs +1 -1
  114. package/dist/components/CheckboxGroup.mjs +1 -1
  115. package/dist/components/ColorStrip.cjs +1 -1
  116. package/dist/components/ColorStrip.mjs +1 -1
  117. package/dist/components/ColorStrip.vue.d.ts.map +1 -1
  118. package/dist/components/CommandPalette.vue.d.ts.map +1 -1
  119. package/dist/components/Confirm.cjs +1 -1
  120. package/dist/components/Confirm.mjs +1 -1
  121. package/dist/components/Confirm.vue.d.ts +1 -1
  122. package/dist/components/Confirm.vue.d.ts.map +1 -1
  123. package/dist/components/DataTable.cjs +1 -1
  124. package/dist/components/DataTable.mjs +1 -1
  125. package/dist/components/DataTable.vue.d.ts.map +1 -1
  126. package/dist/components/DatePicker.cjs +1 -1
  127. package/dist/components/DatePicker.mjs +1 -1
  128. package/dist/components/DatePicker.vue.d.ts.map +1 -1
  129. package/dist/components/EmptyState.cjs +1 -1
  130. package/dist/components/EmptyState.mjs +1 -1
  131. package/dist/components/EmptyState.vue.d.ts.map +1 -1
  132. package/dist/components/FileUploader.cjs +1 -1
  133. package/dist/components/FileUploader.mjs +1 -1
  134. package/dist/components/FileUploader.vue.d.ts.map +1 -1
  135. package/dist/components/ImageCropper.cjs +1 -1
  136. package/dist/components/ImageCropper.mjs +1 -1
  137. package/dist/components/ImageCropper.vue.d.ts.map +1 -1
  138. package/dist/components/InfoHint.cjs +1 -1
  139. package/dist/components/InfoHint.mjs +1 -1
  140. package/dist/components/InfoHint.vue.d.ts.map +1 -1
  141. package/dist/components/InlineEdit.cjs +1 -1
  142. package/dist/components/InlineEdit.mjs +1 -1
  143. package/dist/components/InlineEdit.vue.d.ts.map +1 -1
  144. package/dist/components/Menu.vue.d.ts.map +1 -1
  145. package/dist/components/MenuItem.vue.d.ts.map +1 -1
  146. package/dist/components/Message.cjs +1 -1
  147. package/dist/components/Message.mjs +1 -1
  148. package/dist/components/Message.vue.d.ts.map +1 -1
  149. package/dist/components/Modal.cjs +1 -1
  150. package/dist/components/Modal.d.ts +39 -0
  151. package/dist/components/Modal.mjs +1 -1
  152. package/dist/components/Modal.vue.d.ts +3 -0
  153. package/dist/components/Modal.vue.d.ts.map +1 -1
  154. package/dist/components/NotificationCenter.cjs +1 -1
  155. package/dist/components/NotificationCenter.mjs +1 -1
  156. package/dist/components/NotificationCenter.vue.d.ts.map +1 -1
  157. package/dist/components/NotificationCenterItem.vue.d.ts.map +1 -1
  158. package/dist/components/NumberInput.cjs +1 -1
  159. package/dist/components/NumberInput.mjs +1 -1
  160. package/dist/components/NumberInput.vue.d.ts.map +1 -1
  161. package/dist/components/Pagination.cjs +1 -1
  162. package/dist/components/Pagination.mjs +1 -1
  163. package/dist/components/Pagination.vue.d.ts.map +1 -1
  164. package/dist/components/Panel.cjs +1 -1
  165. package/dist/components/Panel.mjs +1 -1
  166. package/dist/components/Panel.vue.d.ts.map +1 -1
  167. package/dist/components/ProgressBar.cjs +1 -1
  168. package/dist/components/ProgressBar.mjs +1 -1
  169. package/dist/components/ProgressBar.vue.d.ts.map +1 -1
  170. package/dist/components/Radio.cjs +1 -1
  171. package/dist/components/Radio.mjs +1 -1
  172. package/dist/components/Radio.vue.d.ts.map +1 -1
  173. package/dist/components/ReorderList.cjs +1 -1
  174. package/dist/components/ReorderList.mjs +1 -1
  175. package/dist/components/ReorderList.vue.d.ts.map +1 -1
  176. package/dist/components/Select.cjs +1 -1
  177. package/dist/components/Select.mjs +1 -1
  178. package/dist/components/Select.vue.d.ts.map +1 -1
  179. package/dist/components/Shell.cjs +1 -1
  180. package/dist/components/Shell.mjs +1 -1
  181. package/dist/components/Shell.vue.d.ts.map +1 -1
  182. package/dist/components/ShellPanel.cjs +1 -1
  183. package/dist/components/ShellPanel.mjs +1 -1
  184. package/dist/components/ShellPanel.vue.d.ts.map +1 -1
  185. package/dist/components/SidebarLink.cjs +1 -1
  186. package/dist/components/SidebarLink.mjs +1 -1
  187. package/dist/components/SidebarLink.vue.d.ts.map +1 -1
  188. package/dist/components/SidebarMenuItem.cjs +1 -1
  189. package/dist/components/SidebarMenuItem.mjs +1 -1
  190. package/dist/components/SidebarMenuItem.vue.d.ts.map +1 -1
  191. package/dist/components/Skeleton.cjs +1 -1
  192. package/dist/components/Skeleton.mjs +1 -1
  193. package/dist/components/Skeleton.vue.d.ts.map +1 -1
  194. package/dist/components/Slider.cjs +1 -1
  195. package/dist/components/Slider.d.ts +8 -0
  196. package/dist/components/Slider.mjs +1 -1
  197. package/dist/components/Slider.vue.d.ts +1 -0
  198. package/dist/components/Slider.vue.d.ts.map +1 -1
  199. package/dist/components/StepperStep.cjs +1 -1
  200. package/dist/components/StepperStep.mjs +1 -1
  201. package/dist/components/StepperStep.vue.d.ts.map +1 -1
  202. package/dist/components/Tabs.cjs +1 -1
  203. package/dist/components/Tabs.mjs +1 -1
  204. package/dist/components/Tabs.vue.d.ts.map +1 -1
  205. package/dist/components/TextInput.cjs +1 -1
  206. package/dist/components/TextInput.mjs +1 -1
  207. package/dist/components/TextInput.vue.d.ts.map +1 -1
  208. package/dist/components/Toast.cjs +1 -1
  209. package/dist/components/Toast.mjs +1 -1
  210. package/dist/components/Toast.vue.d.ts.map +1 -1
  211. package/dist/components/Toaster.cjs +1 -1
  212. package/dist/components/Toaster.mjs +1 -1
  213. package/dist/components/TreeNode.cjs +1 -1
  214. package/dist/components/TreeNode.mjs +1 -1
  215. package/dist/components/TreeNode.vue.d.ts.map +1 -1
  216. package/dist/components/UserMenu.vue.d.ts.map +1 -1
  217. package/dist/components/Walkthrough.cjs +1 -1
  218. package/dist/components/Walkthrough.mjs +1 -1
  219. package/dist/components/Walkthrough.vue.d.ts.map +1 -1
  220. package/dist/composables/useAppearance.composable.cjs +1 -0
  221. package/dist/composables/useAppearance.composable.d.ts +131 -0
  222. package/dist/composables/useAppearance.composable.d.ts.map +1 -0
  223. package/dist/composables/useAppearance.composable.mjs +65 -0
  224. package/dist/composables/useConfirm.composable.cjs +1 -1
  225. package/dist/composables/useConfirm.composable.mjs +2 -1
  226. package/dist/composables/useFocusTrap.composable.cjs +1 -0
  227. package/dist/composables/useFocusTrap.composable.d.ts +91 -0
  228. package/dist/composables/useFocusTrap.composable.d.ts.map +1 -0
  229. package/dist/composables/useFocusTrap.composable.mjs +98 -0
  230. package/dist/composables/useNamedTheme.composable.cjs +1 -0
  231. package/dist/composables/useNamedTheme.composable.d.ts +98 -0
  232. package/dist/composables/useNamedTheme.composable.d.ts.map +1 -0
  233. package/dist/composables/useNamedTheme.composable.mjs +68 -0
  234. package/dist/index.cjs +1 -1
  235. package/dist/index.mjs +44 -42
  236. package/dist/main.d.ts +4 -0
  237. package/dist/main.d.ts.map +1 -1
  238. package/dist/plugins/vite/index.d.ts.map +1 -1
  239. package/dist/plugins/vite/index.js +59 -0
  240. package/dist/styles/AiLabel.css +1 -1
  241. package/dist/styles/Banner.css +1 -1
  242. package/dist/styles/BlueprintMinimap.css +1 -1
  243. package/dist/styles/Board.css +1 -1
  244. package/dist/styles/BottomPanel.css +1 -1
  245. package/dist/styles/Button.css +1 -1
  246. package/dist/styles/Calendar.css +1 -1
  247. package/dist/styles/Card.css +1 -1
  248. package/dist/styles/Checkbox.css +1 -1
  249. package/dist/styles/ColorStrip.css +1 -1
  250. package/dist/styles/CommandPalette.css +1 -1
  251. package/dist/styles/Confirm.css +1 -1
  252. package/dist/styles/DataTable.css +1 -1
  253. package/dist/styles/DatePicker.css +1 -1
  254. package/dist/styles/EmptyState.css +1 -1
  255. package/dist/styles/FileUploader.css +1 -1
  256. package/dist/styles/ImageCropper.css +1 -1
  257. package/dist/styles/InfoHint.css +1 -1
  258. package/dist/styles/InlineEdit.css +1 -1
  259. package/dist/styles/Menu.css +1 -1
  260. package/dist/styles/MenuItem.css +1 -1
  261. package/dist/styles/Message.css +1 -1
  262. package/dist/styles/Modal.css +1 -1
  263. package/dist/styles/NotificationCenter.css +1 -1
  264. package/dist/styles/NotificationCenterItem.css +1 -1
  265. package/dist/styles/NumberInput.css +1 -1
  266. package/dist/styles/Pagination.css +1 -1
  267. package/dist/styles/Panel.css +1 -1
  268. package/dist/styles/ProgressBar.css +1 -1
  269. package/dist/styles/Radio.css +1 -1
  270. package/dist/styles/ReorderList.css +1 -1
  271. package/dist/styles/Select.css +1 -1
  272. package/dist/styles/Shell.css +1 -1
  273. package/dist/styles/ShellPanel.css +1 -1
  274. package/dist/styles/SidebarLink.css +1 -1
  275. package/dist/styles/SidebarMenuItem.css +1 -1
  276. package/dist/styles/Skeleton.css +1 -1
  277. package/dist/styles/Slider.css +1 -1
  278. package/dist/styles/StepperStep.css +1 -1
  279. package/dist/styles/Tabs.css +1 -1
  280. package/dist/styles/TextInput.css +1 -1
  281. package/dist/styles/Toast.css +1 -1
  282. package/dist/styles/TreeNode.css +1 -1
  283. package/dist/styles/UserMenu.css +1 -1
  284. package/dist/styles/Walkthrough.css +1 -1
  285. package/dist/ui.css +45 -45
  286. package/package.json +7 -4
  287. package/src/plugins/vite/index.ts +62 -0
  288. package/src/styles/_appearance.scss +144 -0
  289. package/src/styles/_theme-api.scss +193 -0
  290. package/src/styles/_theme.scss +91 -5
  291. package/src/styles/index.scss +8 -0
  292. package/src/styles/logic/_radius.scss +146 -0
  293. package/src/styles/logic/index.scss +1 -0
  294. package/src/styles/presets/_classic-fields.scss +55 -0
  295. package/dist/Button-Dqtcr4i0.cjs +0 -1
  296. package/dist/ColorStrip-CAcR1O_R.cjs +0 -1
  297. package/dist/Confirm-CW160zEF.cjs +0 -1
  298. package/dist/ImageCropper-B0J5wwza.cjs +0 -1
  299. package/dist/Modal-8lgeNWj8.cjs +0 -1
  300. package/dist/Modal-iN94HtKE.js +0 -156
  301. package/dist/Slider-CxrK7cAU.cjs +0 -1
@@ -1,2 +1,2 @@
1
- import { t as e } from "../TextInput-CxC2HVj6.js";
1
+ import { t as e } from "../TextInput-DNrd12uS.js";
2
2
  export { e as NbTextInput, e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"TextInput.vue.d.ts","sourceRoot":"","sources":["../../src/components/TextInput.vue"],"names":[],"mappings":"AAgjBA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAO9D,MAAM,WAAW,eAAgB,SAAQ,uBAAuB;IAC9D,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;CACrC;AAED,KAAK,WAAW,GAAG,eAAe,CAAC;AAyFnC,KAAK,gBAAgB,GAAG;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AA2BF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAgYxD,QAAA,IAAI,OAAO,IAAU,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAY,CAAE;AACjI,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC1C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC9C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC9C;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAQ9C,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;UAzhBP,MAAM;SACP,MAAM,GAAG,MAAM;UAOd,MAAM;;;;SANP,MAAM,GAAG,MAAM;;;UACd,MAAM,GAAG,MAAM;eAcV,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM;eAbxB,MAAM;eAEN,OAAO;6EAwhBnB,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"TextInput.vue.d.ts","sourceRoot":"","sources":["../../src/components/TextInput.vue"],"names":[],"mappings":"AA4mBA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAO9D,MAAM,WAAW,eAAgB,SAAQ,uBAAuB;IAC9D,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;CACrC;AAED,KAAK,WAAW,GAAG,eAAe,CAAC;AAyFnC,KAAK,gBAAgB,GAAG;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AA2BF,KAAK,iBAAiB,GAAG,WAAW,GAAG,gBAAgB,CAAC;AAgYxD,QAAA,IAAI,OAAO,IAAU,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAY,CAAE;AACjI,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC1C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC9C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC9C;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAQ9C,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;UAzhBP,MAAM;SACP,MAAM,GAAG,MAAM;UAOd,MAAM;;;;SANP,MAAM,GAAG,MAAM;;;UACd,MAAM,GAAG,MAAM;eAcV,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM;eAbxB,MAAM;eAEN,OAAO;6EAwhBnB,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../Toast-DueO27yl.cjs`);exports.NbToast=e.t,exports.default=e.t;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../Toast-BBsrCQK8.cjs`);exports.NbToast=e.t,exports.default=e.t;
@@ -1,2 +1,2 @@
1
- import { t as e } from "../Toast-QXobTGZM.js";
1
+ import { t as e } from "../Toast-cisfK5Zd.js";
2
2
  export { e as NbToast, e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.vue.d.ts","sourceRoot":"","sources":["../../src/components/Toast.vue"],"names":[],"mappings":"AAkeA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;AAEpE,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB;AAED,KAAK,WAAW,GAAG;IACf,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,SAAS,CAAA;IACf;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;IAClC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,KAAK,CAAA;IACzC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAC;AA8PJ,QAAA,MAAM,YAAY;;;;;;;WApSN,MAAM;UAiBP,OAAO,GAAG,QAAQ,GAAG,MAAM;aAlBxB,aAAa;gBA4BV,MAAM;cAlBR,MAAM;SACX,SAAS;cASJ,WAAW,GAAG,QAAQ,GAAG,KAAK;iBAM3B,MAAM;aAQV,OAAO;YAER,OAAO;WAER,MAAM;6EAmQhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"Toast.vue.d.ts","sourceRoot":"","sources":["../../src/components/Toast.vue"],"names":[],"mappings":"AAmeA,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAA;AAEpE,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB;AAED,KAAK,WAAW,GAAG;IACf,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,SAAS,CAAA;IACf;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;IAClC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,KAAK,CAAA;IACzC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAC;AA8PJ,QAAA,MAAM,YAAY;;;;;;;WApSN,MAAM;UAiBP,OAAO,GAAG,QAAQ,GAAG,MAAM;aAlBxB,aAAa;gBA4BV,MAAM;cAlBR,MAAM;SACX,SAAS;cASJ,WAAW,GAAG,QAAQ,GAAG,KAAK;iBAM3B,MAAM;aAQV,OAAO;YAER,OAAO;WAER,MAAM;6EAmQhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../Toaster-DY8o_iiy.cjs`);exports.NbToaster=e.t,exports.default=e.t;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../Toaster-Dz_o--LF.cjs`);exports.NbToaster=e.t,exports.default=e.t;
@@ -1,2 +1,2 @@
1
- import { t as e } from "../Toaster-DcA6PJPt.js";
1
+ import { t as e } from "../Toaster-C1Uyr6O7.js";
2
2
  export { e as NbToaster, e as default };
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../TreeNode-DS1XJGty.cjs`);exports.NbTreeNode=e.t,exports.default=e.t;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../TreeNode-DB7ipWCg.cjs`);exports.NbTreeNode=e.t,exports.default=e.t;
@@ -1,2 +1,2 @@
1
- import { t as e } from "../TreeNode-BI-Azvhe.js";
1
+ import { t as e } from "../TreeNode-a0MHLI27.js";
2
2
  export { e as NbTreeNode, e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"TreeNode.vue.d.ts","sourceRoot":"","sources":["../../src/components/TreeNode.vue"],"names":[],"mappings":"AAocA,OAAO,KAAK,EAAE,cAAc,EAAmC,MAAM,UAAU,CAAA;AAsU/E,QAAA,IAAI,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAY,CAAE;AACpE,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC3C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAKhD,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;6EAId,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"TreeNode.vue.d.ts","sourceRoot":"","sources":["../../src/components/TreeNode.vue"],"names":[],"mappings":"AAgdA,OAAO,KAAK,EAAE,cAAc,EAAmC,MAAM,UAAU,CAAA;AAsU/E,QAAA,IAAI,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAY,CAAE;AACpE,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC3C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAKhD,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;6EAId,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserMenu.vue.d.ts","sourceRoot":"","sources":["../../src/components/UserMenu.vue"],"names":[],"mappings":"AA6fA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAyHpE,iBAAS,MAAM,SASd;AAED,iBAAS,KAAK,SAIb;AAkZD,QAAA,IAAI,OAAO;;;CAAU,EAAE,QAAQ;;CAAW,EAAE,QAAQ,IAAY,CAAE;AAClE,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAQ9C,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAKd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"UserMenu.vue.d.ts","sourceRoot":"","sources":["../../src/components/UserMenu.vue"],"names":[],"mappings":"AAkgBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAyHpE,iBAAS,MAAM,SASd;AAED,iBAAS,KAAK,SAIb;AAkZD,QAAA,IAAI,OAAO;;;CAAU,EAAE,QAAQ;;CAAW,EAAE,QAAQ,IAAY,CAAE;AAClE,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAQ9C,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAKd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -1 +1 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../Walkthrough-DHtLDsOk.cjs`);exports.NbWalkthrough=e.t,exports.default=e.t;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../Walkthrough-YD3YYxxM.cjs`);exports.NbWalkthrough=e.t,exports.default=e.t;
@@ -1,2 +1,2 @@
1
- import { t as e } from "../Walkthrough-l7HOZths.js";
1
+ import { t as e } from "../Walkthrough-qaQ1rved.js";
2
2
  export { e as NbWalkthrough, e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"Walkthrough.vue.d.ts","sourceRoot":"","sources":["../../src/components/Walkthrough.vue"],"names":[],"mappings":"AAyrBA,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAiRxB,iBAAS,MAAM,SAOd;AAED,iBAAS,MAAM,SAGd;AAED,iBAAe,YAAY,kBAI1B;AAED,iBAAe,MAAM,kBAKpB;AAkWD,QAAA,IAAI,OAAO;;;;CAAU,EAAE,OAAO;;;;CAAU,EAAE,QAAQ;;;;;;;CAAY,CAAE;AAChE,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC3C;IAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GACzC;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAOhD,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAKd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"Walkthrough.vue.d.ts","sourceRoot":"","sources":["../../src/components/Walkthrough.vue"],"names":[],"mappings":"AA2rBA,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,iBAAiB,CAAA;AAiRxB,iBAAS,MAAM,SAOd;AAED,iBAAS,MAAM,SAGd;AAED,iBAAe,YAAY,kBAI1B;AAED,iBAAe,MAAM,kBAKpB;AAkWD,QAAA,IAAI,OAAO;;;;CAAU,EAAE,OAAO;;;;CAAU,EAAE,QAAQ;;;;;;;CAAY,CAAE;AAChE,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC3C;IAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GACzC;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAOhD,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAKd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../chunk-D-qHiVGv.cjs`);let e=require(`vue`);var t={storageKey:`nubisco.appearance`,defaultAppearance:`square`,attribute:`data-nb-appearance`,persist:!0},n={...t},r=!1,i=(0,e.ref)(t.defaultAppearance);function a(e){return e===`square`||e===`rounded`}function o(){if(!n.persist)return null;try{if(typeof localStorage>`u`)return null;let e=localStorage.getItem(n.storageKey);return a(e)?e:null}catch{return null}}function s(e){if(n.persist)try{if(typeof localStorage>`u`)return;localStorage.setItem(n.storageKey,e)}catch{}}function c(){typeof document>`u`||document.documentElement.setAttribute(n.attribute,i.value)}var l=null;function u(){i.value=o()??n.defaultAppearance,c(),l?.(),l=(0,e.watch)(i,e=>{s(e),c()}),r=!0}function d(e={}){n={...n,...e},u()}function f(){return r||u(),{appearance:(0,e.readonly)(i),isRounded:(0,e.computed)(()=>i.value===`rounded`),setAppearance:e=>{i.value=e},toggle:()=>{i.value=i.value===`rounded`?`square`:`rounded`}}}function p(e=`square`){return{attribute:n.attribute,value:e}}function m(){l?.(),l=null,n={...t},i.value=t.defaultAppearance,r=!1}exports.appearanceAttribute=p,exports.configureAppearance=d,exports.resetAppearance=m,exports.useAppearance=f;
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Square or rounded, for the whole library, independently of light and dark.
3
+ *
4
+ * This is a sibling of `useTheme()` and deliberately looks like it: one global
5
+ * piece of state, a `configure*` function for boot-time wiring, a controller
6
+ * for components, an attribute on `<html>` so that teleported overlays inherit
7
+ * it, and storage access that cannot throw the application down. Two knobs
8
+ * that behave the same way are easier to hold than two knobs that each invent
9
+ * their own conventions.
10
+ *
11
+ * The two settings are genuinely independent. Changing appearance does not
12
+ * touch the colour-mode preference and does not repaint the theme; changing
13
+ * the theme does not reset appearance. They are stored under different keys
14
+ * and written to different attributes, so neither can clobber the other.
15
+ *
16
+ * ## Square is the default, and it is the compatible one
17
+ *
18
+ * The library's geometry is square today: panels, menus, modals, buttons and
19
+ * fields all render at 0. `square` reproduces that exactly, so an application
20
+ * that upgrades and calls nothing gets the pixels it had before. `rounded` is
21
+ * an explicit opt-in.
22
+ *
23
+ * Rounding is not a modernisation and is not a default in waiting. The square
24
+ * treatment is part of what makes this library recognisable, and it stays
25
+ * supported and unchanged for anyone who wants it.
26
+ */
27
+ import { type ComputedRef, type Ref } from 'vue';
28
+ /** The two appearances. There is no `system` here: the OS has no opinion. */
29
+ export type TAppearance = 'square' | 'rounded';
30
+ export interface IAppearanceOptions {
31
+ /**
32
+ * localStorage key the preference is persisted under. Namespace it per
33
+ * application (`'analytics.appearance'`), so two Nubisco products served
34
+ * from the same origin do not fight over one value.
35
+ */
36
+ storageKey?: string;
37
+ /**
38
+ * Appearance to use when nothing is stored yet. Defaults to `square`, which
39
+ * is the geometry every existing application already has.
40
+ */
41
+ defaultAppearance?: TAppearance;
42
+ /**
43
+ * Attribute placed on `<html>`. Matches the selector the library's rounded
44
+ * scale is emitted under; override only if an application has its own
45
+ * stylesheet keyed on something else.
46
+ */
47
+ attribute?: string;
48
+ /**
49
+ * Whether the preference is read from and written to storage at all.
50
+ *
51
+ * An application that drives appearance from its own settings backend wants
52
+ * this off: with persistence on, a stored value from a previous visit wins
53
+ * over the `defaultAppearance` the application just passed, which looks like
54
+ * the library overriding the application. Off, `configureAppearance()` is
55
+ * the only thing that decides.
56
+ */
57
+ persist?: boolean;
58
+ }
59
+ export interface IAppearanceController {
60
+ /** The current appearance. */
61
+ appearance: Readonly<Ref<TAppearance>>;
62
+ /** True while rounded, for a control that marks it. */
63
+ isRounded: ComputedRef<boolean>;
64
+ /** Pin an appearance. */
65
+ setAppearance: (value: TAppearance) => void;
66
+ /** Flip to the other one, for a single-button toggle. */
67
+ toggle: () => void;
68
+ }
69
+ /**
70
+ * Chooses the appearance before the first `useAppearance()`.
71
+ *
72
+ * Call it once, at application start, next to the other boot-time wiring:
73
+ *
74
+ * ```ts
75
+ * import { configureAppearance } from '@nubisco/ui'
76
+ *
77
+ * configureAppearance({ defaultAppearance: 'rounded' })
78
+ * ```
79
+ *
80
+ * With `persist` left on, a value the user chose in a previous visit wins over
81
+ * `defaultAppearance`; that is the point of persisting it. An application that
82
+ * owns the setting itself should pass `persist: false` and call
83
+ * `setAppearance()` from its own state, so nothing in storage can override it.
84
+ *
85
+ * Calling it later re-reads storage and repaints, which is what a test or an
86
+ * application switching identity mid-session wants. It is not a per-component
87
+ * knob: appearance is one global piece of state, exactly like the document it
88
+ * paints.
89
+ */
90
+ export declare function configureAppearance(next?: IAppearanceOptions): void;
91
+ /**
92
+ * Square or rounded geometry, at runtime, without a rebuild or a reload.
93
+ *
94
+ * ```vue
95
+ * const { appearance, isRounded, setAppearance, toggle } = useAppearance()
96
+ * ```
97
+ *
98
+ * The library ships both radius scales and switches between them on a single
99
+ * attribute, so all this owns is the decision about which one is present and
100
+ * where the preference is stored. Switching changes geometry only: every
101
+ * height, padding and font size is identical in both, so nothing reflows.
102
+ */
103
+ export declare function useAppearance(): IAppearanceController;
104
+ /**
105
+ * The attribute and value the server should render on `<html>` so that the
106
+ * first paint already has the right geometry.
107
+ *
108
+ * Appearance is a client preference living in `localStorage`, which a server
109
+ * cannot read, so server rendering can only emit the application's default.
110
+ * Emitting it is still worth doing: it makes the markup match what
111
+ * `configureAppearance()` will apply on hydration, so there is no attribute
112
+ * change on the first frame for the square default, and for an application
113
+ * whose default is rounded it removes the square-to-rounded flash entirely.
114
+ *
115
+ * ```ts
116
+ * const { attribute, value } = appearanceAttribute('rounded')
117
+ * // -> <html data-nb-appearance="rounded">
118
+ * ```
119
+ *
120
+ * A user whose stored preference differs from the server default still gets
121
+ * one correction on hydration. That is the same trade the theme class makes,
122
+ * and the same fix applies: an inline script before first paint, reading the
123
+ * same storage key.
124
+ */
125
+ export declare function appearanceAttribute(value?: TAppearance): {
126
+ attribute: string;
127
+ value: TAppearance;
128
+ };
129
+ /** Test helper: forgets configuration and state. */
130
+ export declare function resetAppearance(): void;
131
+ //# sourceMappingURL=useAppearance.composable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAppearance.composable.d.ts","sourceRoot":"","sources":["../../src/composables/useAppearance.composable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAkC,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAEhF,6EAA6E;AAC7E,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAA;AAE9C,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,WAAW,CAAA;IAC/B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,8BAA8B;IAC9B,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;IACtC,uDAAuD;IACvD,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC/B,yBAAyB;IACzB,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;IAC3C,yDAAyD;IACzD,MAAM,EAAE,MAAM,IAAI,CAAA;CACnB;AA4ED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,kBAAuB,GAAG,IAAI,CAGvE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,IAAI,qBAAqB,CAarD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,GAAE,WAAsB,GAAG;IAClE,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,WAAW,CAAA;CACnB,CAEA;AAED,oDAAoD;AACpD,wBAAgB,eAAe,IAAI,IAAI,CAMtC"}
@@ -0,0 +1,65 @@
1
+ import { computed as e, readonly as t, ref as n, watch as r } from "vue";
2
+ //#region src/composables/useAppearance.composable.ts
3
+ var i = {
4
+ storageKey: "nubisco.appearance",
5
+ defaultAppearance: "square",
6
+ attribute: "data-nb-appearance",
7
+ persist: !0
8
+ }, a = { ...i }, o = !1, s = n(i.defaultAppearance);
9
+ function c(e) {
10
+ return e === "square" || e === "rounded";
11
+ }
12
+ function l() {
13
+ if (!a.persist) return null;
14
+ try {
15
+ if (typeof localStorage > "u") return null;
16
+ let e = localStorage.getItem(a.storageKey);
17
+ return c(e) ? e : null;
18
+ } catch {
19
+ return null;
20
+ }
21
+ }
22
+ function u(e) {
23
+ if (a.persist) try {
24
+ if (typeof localStorage > "u") return;
25
+ localStorage.setItem(a.storageKey, e);
26
+ } catch {}
27
+ }
28
+ function d() {
29
+ typeof document > "u" || document.documentElement.setAttribute(a.attribute, s.value);
30
+ }
31
+ var f = null;
32
+ function p() {
33
+ s.value = l() ?? a.defaultAppearance, d(), f?.(), f = r(s, (e) => {
34
+ u(e), d();
35
+ }), o = !0;
36
+ }
37
+ function m(e = {}) {
38
+ a = {
39
+ ...a,
40
+ ...e
41
+ }, p();
42
+ }
43
+ function h() {
44
+ return o || p(), {
45
+ appearance: t(s),
46
+ isRounded: e(() => s.value === "rounded"),
47
+ setAppearance: (e) => {
48
+ s.value = e;
49
+ },
50
+ toggle: () => {
51
+ s.value = s.value === "rounded" ? "square" : "rounded";
52
+ }
53
+ };
54
+ }
55
+ function g(e = "square") {
56
+ return {
57
+ attribute: a.attribute,
58
+ value: e
59
+ };
60
+ }
61
+ function _() {
62
+ f?.(), f = null, a = { ...i }, s.value = i.defaultAppearance, o = !1;
63
+ }
64
+ //#endregion
65
+ export { g as appearanceAttribute, m as configureAppearance, _ as resetAppearance, h as useAppearance };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../chunk-D-qHiVGv.cjs`);const e=require(`./useReducedMotion.composable.cjs`),t=require(`../Icon-C8R_r_In.cjs`),n=require(`../Grid-DVT8lBHr.cjs`),r=require(`../Confirm-CW160zEF.cjs`);let i=require(`vue`);var a=900,o=class extends Error{constructor(){super(`confirm timed out`),this.name=`ConfirmTimeout`}},s=`This is taking longer than expected. It may still be running. Check before trying again.`,c=(0,i.shallowRef)(null),l=(0,i.ref)(!1),u=(0,i.ref)(!1),d=(0,i.ref)(!1),f=(0,i.ref)(void 0),p=[],m=null,h=null,g=null,_=null;function v(){return e.prefersReducedMotion()?0:200}function y(){_&&clearTimeout(_),_=null}function b(e){if(e instanceof Error&&e.message)return e.message;let t=String(e);return t===`[object Object]`?`Something went wrong.`:t}function x(){g=null;let e=p.shift()??null;c.value=e,l.value=!!e}function S(e,t){return!e.done&&e.attempt===t&&c.value===e}function C(e,t=c.value){!t||t.done||t===c.value&&(t.done=!0,y(),l.value=!1,u.value=!1,d.value=!1,f.value=void 0,t.resolve(e),g&&clearTimeout(g),g=setTimeout(x,v()))}function w(e,t){return new Promise((n,r)=>{let i=setTimeout(()=>r(new o),t);e.then(e=>{clearTimeout(i),n(e)},e=>{clearTimeout(i),r(e)})})}async function T(){let e=c.value;if(!e||e.done||u.value||d.value)return;let{onConfirm:t,formatError:n,timeout:r,timeoutMessage:i,successLabel:l}=e.options;if(!t){C(!0,e);return}let p=++e.attempt;u.value=!0,f.value=void 0;try{let n=Promise.resolve(t());if(await(r&&r>0?w(n,r):n),!S(e,p))return;u.value=!1,l?(d.value=!0,_=setTimeout(()=>C(!0,e),a)):C(!0,e)}catch(t){if(!S(e,p))return;u.value=!1,f.value=t instanceof o?i??s:(n??b)(t)}}function E(e){let t={...e??{title:``}};return delete t.onConfirm,delete t.formatError,delete t.body,t}var D=(0,i.defineComponent)({name:`NbConfirmHost`,setup(){return()=>{let e=c.value?.options??null,t=e?.body;return(0,i.h)(r.t,{...E(e),open:l.value,busy:u.value,succeeded:d.value,error:f.value??``,onConfirm:T,onCancel:()=>C(!1)},t?{default:()=>t()}:void 0)}}});function O(){if(!m){if(typeof document>`u`)throw Error(`[NbConfirm] confirm() needs a DOM. It cannot run during server-side rendering or in a non-browser environment. Call it from an event handler, not from setup().`);h=document.createElement(`div`),h.setAttribute(`data-nb-confirm-host`,``),document.body.appendChild(h),m=(0,i.createApp)(D),m.component(`NbIcon`,t.t),m.component(`NbGrid`,n.t),m.config.warnHandler=(e,t,n)=>{if(e.includes(`Failed to resolve component`)){console.error(`[NbConfirm] ${e} The dialog runs in its own Vue app, so a sibling resolved by name has to be registered in useConfirm.composable.ts. Import it in NbConfirm instead where you can.`);return}console.warn(`[NbConfirm] ${e}${n}`)},m.mount(h)}}function k(e){return O(),new Promise(t=>{let n={options:e,resolve:t,attempt:0,done:!1};if(c.value){p.push(n);return}c.value=n,l.value=!0})}function A(){g&&=(clearTimeout(g),null),y();let e=[...p];p.length=0;let t=c.value;for(let n of t?[t,...e]:e)n.done=!0;t?.resolve(!1);for(let t of e)t.resolve(!1);c.value=null,l.value=!1,u.value=!1,d.value=!1,f.value=void 0,m?.unmount(),m=null,h?.remove(),h=null}function j(){return k}exports.dismissConfirms=A,exports.useConfirm=j;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../chunk-D-qHiVGv.cjs`);const e=require(`./useReducedMotion.composable.cjs`),t=require(`../Icon-C8R_r_In.cjs`),n=require(`../Grid-DVT8lBHr.cjs`);require(`../Modal-DvukGfHg.cjs`);const r=require(`../Confirm-w3Ig0L5j.cjs`);let i=require(`vue`);var a=900,o=class extends Error{constructor(){super(`confirm timed out`),this.name=`ConfirmTimeout`}},s=`This is taking longer than expected. It may still be running. Check before trying again.`,c=(0,i.shallowRef)(null),l=(0,i.ref)(!1),u=(0,i.ref)(!1),d=(0,i.ref)(!1),f=(0,i.ref)(void 0),p=[],m=null,h=null,g=null,_=null;function v(){return e.prefersReducedMotion()?0:200}function y(){_&&clearTimeout(_),_=null}function b(e){if(e instanceof Error&&e.message)return e.message;let t=String(e);return t===`[object Object]`?`Something went wrong.`:t}function x(){g=null;let e=p.shift()??null;c.value=e,l.value=!!e}function S(e,t){return!e.done&&e.attempt===t&&c.value===e}function C(e,t=c.value){!t||t.done||t===c.value&&(t.done=!0,y(),l.value=!1,u.value=!1,d.value=!1,f.value=void 0,t.resolve(e),g&&clearTimeout(g),g=setTimeout(x,v()))}function w(e,t){return new Promise((n,r)=>{let i=setTimeout(()=>r(new o),t);e.then(e=>{clearTimeout(i),n(e)},e=>{clearTimeout(i),r(e)})})}async function T(){let e=c.value;if(!e||e.done||u.value||d.value)return;let{onConfirm:t,formatError:n,timeout:r,timeoutMessage:i,successLabel:l}=e.options;if(!t){C(!0,e);return}let p=++e.attempt;u.value=!0,f.value=void 0;try{let n=Promise.resolve(t());if(await(r&&r>0?w(n,r):n),!S(e,p))return;u.value=!1,l?(d.value=!0,_=setTimeout(()=>C(!0,e),a)):C(!0,e)}catch(t){if(!S(e,p))return;u.value=!1,f.value=t instanceof o?i??s:(n??b)(t)}}function E(e){let t={...e??{title:``}};return delete t.onConfirm,delete t.formatError,delete t.body,t}var D=(0,i.defineComponent)({name:`NbConfirmHost`,setup(){return()=>{let e=c.value?.options??null,t=e?.body;return(0,i.h)(r.t,{...E(e),open:l.value,busy:u.value,succeeded:d.value,error:f.value??``,onConfirm:T,onCancel:()=>C(!1)},t?{default:()=>t()}:void 0)}}});function O(){if(!m){if(typeof document>`u`)throw Error(`[NbConfirm] confirm() needs a DOM. It cannot run during server-side rendering or in a non-browser environment. Call it from an event handler, not from setup().`);h=document.createElement(`div`),h.setAttribute(`data-nb-confirm-host`,``),document.body.appendChild(h),m=(0,i.createApp)(D),m.component(`NbIcon`,t.t),m.component(`NbGrid`,n.t),m.config.warnHandler=(e,t,n)=>{if(e.includes(`Failed to resolve component`)){console.error(`[NbConfirm] ${e} The dialog runs in its own Vue app, so a sibling resolved by name has to be registered in useConfirm.composable.ts. Import it in NbConfirm instead where you can.`);return}console.warn(`[NbConfirm] ${e}${n}`)},m.mount(h)}}function k(e){return O(),new Promise(t=>{let n={options:e,resolve:t,attempt:0,done:!1};if(c.value){p.push(n);return}c.value=n,l.value=!0})}function A(){g&&=(clearTimeout(g),null),y();let e=[...p];p.length=0;let t=c.value;for(let n of t?[t,...e]:e)n.done=!0;t?.resolve(!1);for(let t of e)t.resolve(!1);c.value=null,l.value=!1,u.value=!1,d.value=!1,f.value=void 0,m?.unmount(),m=null,h?.remove(),h=null}function j(){return k}exports.dismissConfirms=A,exports.useConfirm=j;
@@ -1,7 +1,8 @@
1
1
  import { prefersReducedMotion as e } from "./useReducedMotion.composable.mjs";
2
2
  import { t } from "../Icon-rREAqsu0.js";
3
3
  import { t as n } from "../Grid-CVNb1HcS.js";
4
- import { t as r } from "../Confirm-pgn2HajX.js";
4
+ import "../Modal-B1CQyPNo.js";
5
+ import { t as r } from "../Confirm-C-HRTF0s.js";
5
6
  import { createApp as i, defineComponent as a, h as o, ref as s, shallowRef as c } from "vue";
6
7
  //#region src/composables/useConfirm.composable.ts
7
8
  var l = 900, u = class extends Error {
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../chunk-D-qHiVGv.cjs`);let e=require(`vue`);var t=[`a[href]:not([tabindex="-1"])`,`area[href]:not([tabindex="-1"])`,`button:not([disabled]):not([tabindex="-1"])`,`input:not([disabled]):not([type="hidden"]):not([tabindex="-1"])`,`select:not([disabled]):not([tabindex="-1"])`,`textarea:not([disabled]):not([tabindex="-1"])`,`summary:not([tabindex="-1"])`,`audio[controls]:not([tabindex="-1"])`,`video[controls]:not([tabindex="-1"])`,`iframe:not([tabindex="-1"])`,`[contenteditable]:not([contenteditable="false"]):not([tabindex="-1"])`,`[tabindex]:not([tabindex="-1"])`].map(e=>`${e}:not([hidden]):not([aria-hidden="true"])`).join(`,`);function n(e){return e?Array.from(e.querySelectorAll(t)).filter(e=>e.getAttribute(`aria-disabled`)!==`true`):[]}function r(){return typeof document>`u`?[]:Array.from(document.querySelectorAll(`[aria-modal="true"]`))}function i(e){if(!e)return!1;let t=r();return t.length===0||t[t.length-1]===e}function a(t){let{container:r,active:a,initialFocus:o,floatingSelector:s}=t;function c(e){let t=s?.();return!t||!e?!1:!!e.closest(t)}function l(e){let t=r();return!!t&&!!e&&t.contains(e)}function u(){return n(r())}function d(){r()?.focus()}function f(){let e=u()[0];e?e.focus():d()}let p=null;function m(){let e=p;p=null,e?.isConnected&&e.focus()}function h(){p=document.activeElement instanceof HTMLElement?document.activeElement:null}function g(e){if(e.key!==`Tab`||!a())return;let t=r();if(!t||!i(t)||c(document.activeElement))return;let n=u(),o=document.activeElement;if(n.length===0){e.preventDefault(),l(o)||d();return}let s=n[0],f=n[n.length-1];e.shiftKey&&(o===s||!l(o))?(e.preventDefault(),f.focus()):!e.shiftKey&&o===f?(e.preventDefault(),s.focus()):l(o)||(e.preventDefault(),s.focus())}function _(e){if(!a())return;let t=e.relatedTarget;if(t instanceof Element){if(l(t)||c(t))return}else if(t!==null)return;requestAnimationFrame(()=>{if(!a())return;let e=document.activeElement;l(e)||c(e)||e&&e!==document.body&&!e.isConnected||i(r())&&f()})}typeof document<`u`&&(document.addEventListener(`keydown`,g,!0),document.addEventListener(`focusout`,_,!0));async function v(){if(await(0,e.nextTick)(),!a())return;let t=o?.()??null;t?t.focus():f()}return(0,e.watch)(a,(e,t)=>{e!==t&&(e?(h(),v()):m())}),(0,e.onMounted)(()=>{a()&&(h(),v())}),(0,e.onUnmounted)(()=>{typeof document<`u`&&(document.removeEventListener(`keydown`,g,!0),document.removeEventListener(`focusout`,_,!0)),m()}),{focusInside:f,restoreFocus:m}}exports.FOCUSABLE_SELECTOR=t,exports.focusablesWithin=n,exports.isTopmostSurface=i,exports.openModalSurfaces=r,exports.useFocusTrap=a;
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Keeping keyboard focus inside the surface in front of the user.
3
+ *
4
+ * A modal surface is only modal to the eye. The scrim paints over the page but
5
+ * does nothing to the tab order, so Tab walks straight out of the dialog and
6
+ * onto the document behind it: the user is typing into a form they cannot see,
7
+ * and a screen reader is reading a page the scrim says is unavailable. NbModal
8
+ * shipped in exactly that state while its own documentation promised a focus
9
+ * trap, and the showcase reproduced it in one keypress.
10
+ *
11
+ * The rules were already written twice in this library, to two different
12
+ * standards. NbConfirm has the thorough version (arbitrary slot content,
13
+ * teleported popups, a pending state with nothing left to focus); NbWalkthrough
14
+ * has a five-selector approximation; NbModal, the component both of the others
15
+ * are built to sit inside, had none. What "focusable" means is not a per
16
+ * component opinion, so it lives here once and the surfaces share it.
17
+ *
18
+ * The trap is deliberately not an `inert` attribute on the rest of the
19
+ * document. `inert` is the better primitive, but it applies to siblings of the
20
+ * dialog, and this library teleports overlays to `<body>` next to an
21
+ * application root it does not own and must not mutate.
22
+ */
23
+ /**
24
+ * What the browser will stop on with Tab, as far as a dialog needs to care.
25
+ *
26
+ * The long tail matters because a dialog body takes arbitrary content: a
27
+ * preview of the record being deleted is often an `<iframe>`, an embedded
28
+ * player, an image map or a rich-text field, and every one of those is a tab
29
+ * stop the trap has to know about or the cycle breaks at the dialog edge.
30
+ * Elements that are focusable but explicitly removed from the tab order
31
+ * (`tabindex="-1"`, which is how a dialog box itself holds focus) are
32
+ * excluded, as are controls hidden from assistive technology or from the page.
33
+ */
34
+ export declare const FOCUSABLE_SELECTOR: string;
35
+ /**
36
+ * The tab stops inside `root`, in document order.
37
+ *
38
+ * `aria-disabled` is filtered as well as `disabled`, because a control that
39
+ * reports itself unavailable to assistive technology should not be the thing
40
+ * the trap parks focus on, and our own buttons use it for the states a native
41
+ * `disabled` would make unreachable.
42
+ */
43
+ export declare function focusablesWithin(root: HTMLElement | null): HTMLElement[];
44
+ /** Every `aria-modal` surface currently on screen, in document order. */
45
+ export declare function openModalSurfaces(): HTMLElement[];
46
+ /**
47
+ * Whether `el` is the last `aria-modal` surface in the document, which for
48
+ * teleported overlays is the one painted on top.
49
+ *
50
+ * Two dialogs open at once (a confirm raised from inside a modal, which is a
51
+ * supported composition) both listen on the document, so without this test one
52
+ * Tab is answered twice and the older instance wins: focus jumps to a dialog
53
+ * the user cannot see.
54
+ */
55
+ export declare function isTopmostSurface(el: HTMLElement | null): boolean;
56
+ export interface IFocusTrapOptions {
57
+ /** The element focus is held inside. Read live: it mounts after `active`. */
58
+ container: () => HTMLElement | null;
59
+ /** Whether the trap should currently be holding focus. */
60
+ active: () => boolean;
61
+ /**
62
+ * Where focus goes when the trap activates. Defaults to the first tab stop,
63
+ * falling back to the container itself. Return `null` to take the default.
64
+ *
65
+ * A destructive dialog overrides this to land on Cancel: the confirm button
66
+ * is one Space away from whatever is focused when a dialog appears, and a
67
+ * surface that steals focus onto a destructive default turns a stray
68
+ * keypress into a deletion.
69
+ */
70
+ initialFocus?: () => HTMLElement | null;
71
+ /**
72
+ * A selector for teleported popups that belong to this surface, such as a
73
+ * select listbox rendered to `<body>` by a control inside the dialog. Focus
74
+ * inside one of those is not an escape and must not be dragged back.
75
+ */
76
+ floatingSelector?: () => string;
77
+ }
78
+ /**
79
+ * Holds keyboard focus inside a surface for as long as it is active, and hands
80
+ * it back to whatever opened it afterwards.
81
+ *
82
+ * Returns nothing to call in the common case: it wires itself to the component
83
+ * scope, follows `active()`, and cleans up on unmount. `restoreFocus` is
84
+ * exposed for the host that is destroyed outright rather than closed, where
85
+ * there is no state change left for the watcher to see.
86
+ */
87
+ export declare function useFocusTrap(options: IFocusTrapOptions): {
88
+ focusInside: () => void;
89
+ restoreFocus: () => void;
90
+ };
91
+ //# sourceMappingURL=useFocusTrap.composable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFocusTrap.composable.d.ts","sourceRoot":"","sources":["../../src/composables/useFocusTrap.composable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,QAenB,CAAA;AAEZ;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,WAAW,EAAE,CAKxE;AAED,yEAAyE;AACzE,wBAAgB,iBAAiB,IAAI,WAAW,EAAE,CAKjD;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAIhE;AAED,MAAM,WAAW,iBAAiB;IAChC,6EAA6E;IAC7E,SAAS,EAAE,MAAM,WAAW,GAAG,IAAI,CAAA;IACnC,0DAA0D;IAC1D,MAAM,EAAE,MAAM,OAAO,CAAA;IACrB;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAA;IACvC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,MAAM,CAAA;CAChC;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,iBAAiB,GAAG;IACxD,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB,CAgLA"}
@@ -0,0 +1,98 @@
1
+ import { nextTick as e, onMounted as t, onUnmounted as n, watch as r } from "vue";
2
+ //#region src/composables/useFocusTrap.composable.ts
3
+ var i = [
4
+ "a[href]:not([tabindex=\"-1\"])",
5
+ "area[href]:not([tabindex=\"-1\"])",
6
+ "button:not([disabled]):not([tabindex=\"-1\"])",
7
+ "input:not([disabled]):not([type=\"hidden\"]):not([tabindex=\"-1\"])",
8
+ "select:not([disabled]):not([tabindex=\"-1\"])",
9
+ "textarea:not([disabled]):not([tabindex=\"-1\"])",
10
+ "summary:not([tabindex=\"-1\"])",
11
+ "audio[controls]:not([tabindex=\"-1\"])",
12
+ "video[controls]:not([tabindex=\"-1\"])",
13
+ "iframe:not([tabindex=\"-1\"])",
14
+ "[contenteditable]:not([contenteditable=\"false\"]):not([tabindex=\"-1\"])",
15
+ "[tabindex]:not([tabindex=\"-1\"])"
16
+ ].map((e) => `${e}:not([hidden]):not([aria-hidden="true"])`).join(",");
17
+ function a(e) {
18
+ return e ? Array.from(e.querySelectorAll(i)).filter((e) => e.getAttribute("aria-disabled") !== "true") : [];
19
+ }
20
+ function o() {
21
+ return typeof document > "u" ? [] : Array.from(document.querySelectorAll("[aria-modal=\"true\"]"));
22
+ }
23
+ function s(e) {
24
+ if (!e) return !1;
25
+ let t = o();
26
+ return t.length === 0 || t[t.length - 1] === e;
27
+ }
28
+ function c(i) {
29
+ let { container: o, active: c, initialFocus: l, floatingSelector: u } = i;
30
+ function d(e) {
31
+ let t = u?.();
32
+ return !t || !e ? !1 : !!e.closest(t);
33
+ }
34
+ function f(e) {
35
+ let t = o();
36
+ return !!t && !!e && t.contains(e);
37
+ }
38
+ function p() {
39
+ return a(o());
40
+ }
41
+ function m() {
42
+ o()?.focus();
43
+ }
44
+ function h() {
45
+ let e = p()[0];
46
+ e ? e.focus() : m();
47
+ }
48
+ let g = null;
49
+ function _() {
50
+ let e = g;
51
+ g = null, e?.isConnected && e.focus();
52
+ }
53
+ function v() {
54
+ g = document.activeElement instanceof HTMLElement ? document.activeElement : null;
55
+ }
56
+ function y(e) {
57
+ if (e.key !== "Tab" || !c()) return;
58
+ let t = o();
59
+ if (!t || !s(t) || d(document.activeElement)) return;
60
+ let n = p(), r = document.activeElement;
61
+ if (n.length === 0) {
62
+ e.preventDefault(), f(r) || m();
63
+ return;
64
+ }
65
+ let i = n[0], a = n[n.length - 1];
66
+ e.shiftKey && (r === i || !f(r)) ? (e.preventDefault(), a.focus()) : !e.shiftKey && r === a ? (e.preventDefault(), i.focus()) : f(r) || (e.preventDefault(), i.focus());
67
+ }
68
+ function b(e) {
69
+ if (!c()) return;
70
+ let t = e.relatedTarget;
71
+ if (t instanceof Element) {
72
+ if (f(t) || d(t)) return;
73
+ } else if (t !== null) return;
74
+ requestAnimationFrame(() => {
75
+ if (!c()) return;
76
+ let e = document.activeElement;
77
+ f(e) || d(e) || e && e !== document.body && !e.isConnected || s(o()) && h();
78
+ });
79
+ }
80
+ typeof document < "u" && (document.addEventListener("keydown", y, !0), document.addEventListener("focusout", b, !0));
81
+ async function x() {
82
+ if (await e(), !c()) return;
83
+ let t = l?.() ?? null;
84
+ t ? t.focus() : h();
85
+ }
86
+ return r(c, (e, t) => {
87
+ e !== t && (e ? (v(), x()) : _());
88
+ }), t(() => {
89
+ c() && (v(), x());
90
+ }), n(() => {
91
+ typeof document < "u" && (document.removeEventListener("keydown", y, !0), document.removeEventListener("focusout", b, !0)), _();
92
+ }), {
93
+ focusInside: h,
94
+ restoreFocus: _
95
+ };
96
+ }
97
+ //#endregion
98
+ export { i as FOCUSABLE_SELECTOR, a as focusablesWithin, s as isTopmostSurface, o as openModalSurfaces, c as useFocusTrap };
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`../chunk-D-qHiVGv.cjs`);let e=require(`vue`);var t={storageKey:`nubisco.named-theme`,defaultTheme:null,attribute:`data-nb-theme`,themes:null,persist:!0},n={...t},r=!1,i=(0,e.ref)(t.defaultTheme);function a(e){return typeof e==`string`&&/^[a-z0-9-]{1,64}$/.test(e)}function o(e){return!n.themes||n.themes.includes(e)}function s(){if(!n.persist)return null;try{if(typeof localStorage>`u`)return null;let e=localStorage.getItem(n.storageKey);return e===null||e===``?null:a(e)&&o(e)?e:null}catch{return null}}function c(e){if(n.persist)try{if(typeof localStorage>`u`)return;e===null?localStorage.removeItem(n.storageKey):localStorage.setItem(n.storageKey,e)}catch{}}function l(){if(typeof document>`u`)return;let e=i.value;e===null?document.documentElement.removeAttribute(n.attribute):document.documentElement.setAttribute(n.attribute,e)}var u=null;function d(){let t=s(),d=n.defaultTheme;i.value=t??(d!==null&&a(d)&&o(d)?d:null),l(),u?.(),u=(0,e.watch)(i,e=>{c(e),l()}),r=!0}function f(e={}){n={...n,...e,themes:e.themes??n.themes},d()}function p(){return r||d(),{namedTheme:(0,e.readonly)(i),isCustom:(0,e.computed)(()=>i.value!==null),setNamedTheme:e=>{if(e===null){i.value=null;return}!a(e)||!o(e)||(i.value=e)}}}function m(){u?.(),u=null,n={...t},i.value=t.defaultTheme,r=!1,typeof document<`u`&&document.documentElement.removeAttribute(t.attribute)}exports.configureNamedTheme=f,exports.isValidThemeId=a,exports.resetNamedTheme=m,exports.useNamedTheme=p;
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Selecting one of several named colour themes at runtime.
3
+ *
4
+ * The third of three independent axes, and deliberately the same shape as the
5
+ * other two:
6
+ *
7
+ * | Axis | Written to | Owner |
8
+ * | ----------- | ---------------------- | ------------------ |
9
+ * | Colour mode | `.dark` on `<html>` | `useTheme()` |
10
+ * | Appearance | `data-nb-appearance` | `useAppearance()` |
11
+ * | Named theme | `data-nb-theme` | this file |
12
+ *
13
+ * They never touch each other. A theme carries colour only: it supplies both a
14
+ * light and a dark half and the existing `.dark` class chooses between them, so
15
+ * switching theme cannot reset the mode, and switching mode cannot reset the
16
+ * theme. Neither disturbs the corner geometry.
17
+ *
18
+ * ## It does not know your palette
19
+ *
20
+ * This applies an identifier and nothing else. The values live in CSS, emitted
21
+ * by the SCSS a consumer imports, so adding a theme is one import plus one
22
+ * string. Nothing here has to be told what "ocean" looks like, and a consumer
23
+ * never restates a palette in JavaScript to make one selectable.
24
+ *
25
+ * Human-readable labels for a theme picker are the application's business and
26
+ * stay out of the styling contract: keep them in your own list, keyed by id.
27
+ */
28
+ import { type ComputedRef, type Ref } from 'vue';
29
+ /**
30
+ * A theme identifier, or `null` for the library's built-in default.
31
+ *
32
+ * Any string a stylesheet defines is valid, so this is not a closed union: the
33
+ * whole point is that a consumer can add a theme without changing this file.
34
+ */
35
+ export type TNamedTheme = string | null;
36
+ export interface INamedThemeOptions {
37
+ /**
38
+ * localStorage key the selection is persisted under. Namespace it per
39
+ * application, so two Nubisco products on one origin do not fight over it.
40
+ */
41
+ storageKey?: string;
42
+ /** Theme to select when nothing is stored. `null` is the built-in default. */
43
+ defaultTheme?: TNamedTheme;
44
+ /** Attribute placed on `<html>`. Matches the selector the SCSS emits. */
45
+ attribute?: string;
46
+ /**
47
+ * Identifiers this application ships. When given, a stored value outside the
48
+ * list is ignored rather than applied.
49
+ *
50
+ * This is not decoration. The stored value is attacker-influenced in the
51
+ * sense that it survives from any earlier version of the app, and applying an
52
+ * unknown id writes an arbitrary string into a DOM attribute. Listing what
53
+ * exists means a stale or junk value falls back to the default instead.
54
+ */
55
+ themes?: readonly string[];
56
+ /**
57
+ * Whether the selection is read from and written to storage at all. Turn it
58
+ * off when the application drives the theme from its own settings, so a
59
+ * stored value cannot override what it just asked for.
60
+ */
61
+ persist?: boolean;
62
+ }
63
+ export interface INamedThemeController {
64
+ /** The selected identifier, or `null` for the default theme. */
65
+ namedTheme: Readonly<Ref<TNamedTheme>>;
66
+ /** True while a named theme is active. */
67
+ isCustom: ComputedRef<boolean>;
68
+ /** Select a theme, or `null` to return to the default. */
69
+ setNamedTheme: (value: TNamedTheme) => void;
70
+ }
71
+ /**
72
+ * Whether a value is usable as a theme id.
73
+ *
74
+ * The same shape the SCSS validates, for the same reason: this string is
75
+ * written into a DOM attribute, so it is checked rather than trusted.
76
+ */
77
+ export declare function isValidThemeId(value: unknown): value is string;
78
+ /**
79
+ * Names the themes this application ships, and picks the starting one.
80
+ *
81
+ * ```ts
82
+ * configureNamedTheme({ themes: ['ocean', 'forest'], defaultTheme: 'ocean' })
83
+ * ```
84
+ */
85
+ export declare function configureNamedTheme(next?: INamedThemeOptions): void;
86
+ /**
87
+ * The selected colour theme.
88
+ *
89
+ * ```vue
90
+ * const { namedTheme, setNamedTheme } = useNamedTheme()
91
+ * ```
92
+ *
93
+ * An unknown or malformed id is refused rather than written to the document.
94
+ */
95
+ export declare function useNamedTheme(): INamedThemeController;
96
+ /** Test helper: forgets configuration and selection. */
97
+ export declare function resetNamedTheme(): void;
98
+ //# sourceMappingURL=useNamedTheme.composable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNamedTheme.composable.d.ts","sourceRoot":"","sources":["../../src/composables/useNamedTheme.composable.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAkC,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAA;AAEhF;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,CAAA;AAEvC,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,WAAW,CAAA;IAC1B,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,gEAAgE;IAChE,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;IACtC,0CAA0C;IAC1C,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;IAC9B,0DAA0D;IAC1D,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;CAC5C;AAiBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAE9D;AAuED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,kBAAuB,GAAG,IAAI,CAGvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,IAAI,qBAAqB,CAerD;AAED,wDAAwD;AACxD,wBAAgB,eAAe,IAAI,IAAI,CAQtC"}