@nubisco/ui 4.1.4 → 5.1.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.
- package/dist/{AiLabel-VbZiFHAZ.js → AiLabel-Ci7eROcw.js} +1 -1
- package/dist/{AiLabel-DZ9GkGqL.cjs → AiLabel-DtM5ZCQC.cjs} +1 -1
- package/dist/{Banner-7XsX8ibI.js → Banner-C5Erb75B.js} +1 -1
- package/dist/{Banner-DI5fA8Ow.cjs → Banner-JubX-4yR.cjs} +1 -1
- package/dist/{BlueprintControls-CJAKrQ6U.js → BlueprintControls-BkwhsHI8.js} +1 -1
- package/dist/{BlueprintControls-aF11uokn.cjs → BlueprintControls-CdvNvRkW.cjs} +1 -1
- package/dist/{BlueprintMinimap-C-gCkMIW.cjs → BlueprintMinimap-BIBsnBFs.cjs} +1 -1
- package/dist/{BlueprintMinimap-C-65UzhM.js → BlueprintMinimap-QAw6aiCc.js} +1 -1
- package/dist/{BottomPanel-B-dhgMWB.js → BottomPanel-BoBCdANz.js} +1 -1
- package/dist/{BottomPanel-CmVH0Hsf.cjs → BottomPanel-dbllmH2v.cjs} +1 -1
- package/dist/Button-Dwv0rx46.cjs +1 -0
- package/dist/{Button-Cegx6vaT.js → Button-Q8MBLMvG.js} +12 -4
- package/dist/{Card-Cs-7jXxG.cjs → Card-Cn5OS4q-.cjs} +1 -1
- package/dist/{Card-TjV_N8RU.js → Card-eM6DEphF.js} +1 -1
- package/dist/{Checkbox-BJrnykX9.js → Checkbox-DG82KK8V.js} +1 -1
- package/dist/{Checkbox-D9qW3gph.cjs → Checkbox-vFN3fLyr.cjs} +1 -1
- package/dist/{CheckboxGroup-CUSPscyy.js → CheckboxGroup-5pmdu9fe.js} +1 -1
- package/dist/{CheckboxGroup-mWcKUeq9.cjs → CheckboxGroup-Cyj2NUtI.cjs} +1 -1
- package/dist/{ColorStrip-CR1JDzwX.js → ColorStrip-BBTJU1Ox.js} +47 -45
- package/dist/ColorStrip-D3nbTyfs.cjs +1 -0
- package/dist/CommandPalette-CPJKTiDt.cjs +1 -0
- package/dist/CommandPalette-iaEdat_y.js +223 -0
- package/dist/{Confirm-pgn2HajX.js → Confirm-C-HRTF0s.js} +23 -52
- package/dist/Confirm-w3Ig0L5j.cjs +1 -0
- package/dist/{DataTable-c0ltF6wT.js → DataTable-BVxSUB-h.js} +3 -3
- package/dist/{DataTable-BbiDmA1X.cjs → DataTable-Cnyh04sD.cjs} +1 -1
- package/dist/{DatePicker-YJ8-ViVK.js → DatePicker-BimOzKti.js} +1 -1
- package/dist/{DatePicker-C8_qR25v.cjs → DatePicker-CMPgr4Hp.cjs} +1 -1
- package/dist/{EmptyState-DVg8l-bl.js → EmptyState-CwMG-NeI.js} +1 -1
- package/dist/{EmptyState-henL7JH6.cjs → EmptyState-Cz91HAKF.cjs} +1 -1
- package/dist/{FileUploader-Lzy4bFn7.cjs → FileUploader-BJdRC-Kp.cjs} +1 -1
- package/dist/{FileUploader-BLwR6H3f.js → FileUploader-BO2cDUwP.js} +2 -2
- package/dist/{ImageCropper-CpEGFPKb.cjs → ImageCropper-D7mr-xRE.cjs} +1 -1
- package/dist/{ImageCropper-BX2BnJai.js → ImageCropper-DEaGU0cZ.js} +1 -1
- package/dist/{InfoHint-DesESwdO.cjs → InfoHint-BNpqLVSX.cjs} +1 -1
- package/dist/{InfoHint-JwhhBFZP.js → InfoHint-C663u_NL.js} +1 -1
- package/dist/{InlineEdit-CZEt1vhH.cjs → InlineEdit-D95I45Vt.cjs} +1 -1
- package/dist/{InlineEdit-DNMF_40m.js → InlineEdit-DrhJ0AX2.js} +1 -1
- package/dist/{Message-Daj6hLC4.cjs → Message-Ax7rnAQl.cjs} +1 -1
- package/dist/{Message-BuG5t7bu.js → Message-DqUW3GHc.js} +1 -1
- package/dist/Modal-B1CQyPNo.js +206 -0
- package/dist/Modal-DvukGfHg.cjs +1 -0
- package/dist/{NotificationCenter-DL_Tshyb.js → NotificationCenter-Duu3XZC3.js} +3 -3
- package/dist/{NotificationCenter-D51ty3Lq.cjs → NotificationCenter-oOzClQI-.cjs} +1 -1
- package/dist/{NumberInput-Vc2wzK62.cjs → NumberInput-DKZsdWLv.cjs} +1 -1
- package/dist/{NumberInput-6R8FkJc-.js → NumberInput-_ff3Xi2r.js} +2 -2
- package/dist/{Pagination-B6a62qvI.js → Pagination-6bF88x_p.js} +3 -3
- package/dist/{Pagination-CkBe9Naz.cjs → Pagination-EipK6BGe.cjs} +1 -1
- package/dist/{Panel-BVtGI7YH.js → Panel-D3s_MKfd.js} +1 -1
- package/dist/{Panel-DQfmVtie.cjs → Panel-qDfyu_0v.cjs} +1 -1
- package/dist/{ProgressBar-fAaKT9lD.cjs → ProgressBar-CbqsSdZZ.cjs} +1 -1
- package/dist/{ProgressBar-DjejtCKA.js → ProgressBar-aF2zBoRA.js} +2 -2
- package/dist/{Radio-CQveGtXr.js → Radio-BnI7bi9Y.js} +2 -2
- package/dist/{Radio-DSvkUCxV.cjs → Radio-BqjtCaST.cjs} +1 -1
- package/dist/{ReorderList-Bai4yaIG.cjs → ReorderList-DLQ3rVnX.cjs} +1 -1
- package/dist/{ReorderList-Be-qicSf.js → ReorderList-DpytAupm.js} +1 -1
- package/dist/{Select-swFFQIMN.js → Select-B5t5QtVe.js} +1 -1
- package/dist/{Select-ClCyOqQI.cjs → Select-dAYn2iZO.cjs} +1 -1
- package/dist/{Shell-B8YmApR6.cjs → Shell-9lzopP-w.cjs} +1 -1
- package/dist/{Shell-Dr7LHIqk.js → Shell-B3jhTiNP.js} +99 -96
- package/dist/{ShellPanel-I0ZMGQ4K.js → ShellPanel-B3vZcQhX.js} +1 -1
- package/dist/{ShellPanel-CnN9orWH.cjs → ShellPanel-ChujN0eX.cjs} +1 -1
- package/dist/{SidebarLink-y2If8dtl.js → SidebarLink-B_CGHs0b.js} +1 -1
- package/dist/{SidebarLink-CngTvuB6.cjs → SidebarLink-CZrDLC8g.cjs} +1 -1
- package/dist/{SidebarMenuItem-DoyuIs3w.cjs → SidebarMenuItem-Dc6oh2Nc.cjs} +1 -1
- package/dist/{SidebarMenuItem-DBINoxeA.js → SidebarMenuItem-Dpqr9e0A.js} +1 -1
- package/dist/{Skeleton-D8CHd_4p.cjs → Skeleton-DP9iM6Ku.cjs} +1 -1
- package/dist/{Skeleton-CC7LVdxd.js → Skeleton-sox6qUDk.js} +1 -1
- package/dist/Slider-BNiQaaVa.cjs +1 -0
- package/dist/{Slider-lOhGG7UX.js → Slider-C0761rBk.js} +47 -33
- package/dist/{StepperStep-w1SSX7t7.cjs → StepperStep-B9JEE6WJ.cjs} +1 -1
- package/dist/{StepperStep-DNXUj71b.js → StepperStep-DFeOJ1ju.js} +1 -1
- package/dist/{Tabs-W_4iyGVx.js → Tabs-CQP9zwDw.js} +1 -1
- package/dist/{Tabs-Clg7lzy5.cjs → Tabs-Dp27EDrK.cjs} +1 -1
- package/dist/{TextInput-CGD_wFwo.cjs → TextInput-D4jBlYm9.cjs} +2 -2
- package/dist/{TextInput-CxC2HVj6.js → TextInput-DNrd12uS.js} +2 -2
- package/dist/{Toast-DueO27yl.cjs → Toast-BBsrCQK8.cjs} +1 -1
- package/dist/{Toast-QXobTGZM.js → Toast-cisfK5Zd.js} +1 -1
- package/dist/{Toaster-DcA6PJPt.js → Toaster-C1Uyr6O7.js} +1 -1
- package/dist/{Toaster-DY8o_iiy.cjs → Toaster-Dz_o--LF.cjs} +1 -1
- package/dist/{TreeNode-DS1XJGty.cjs → TreeNode-DB7ipWCg.cjs} +1 -1
- package/dist/{TreeNode-BI-Azvhe.js → TreeNode-a0MHLI27.js} +1 -1
- package/dist/{Walkthrough-DHtLDsOk.cjs → Walkthrough-YD3YYxxM.cjs} +1 -1
- package/dist/{Walkthrough-l7HOZths.js → Walkthrough-qaQ1rved.js} +2 -2
- package/dist/all.cjs +1 -1
- package/dist/all.mjs +137 -135
- package/dist/component-styles.json +1 -1
- package/dist/components/AiLabel.cjs +1 -1
- package/dist/components/AiLabel.mjs +1 -1
- package/dist/components/AiLabel.vue.d.ts.map +1 -1
- package/dist/components/Banner.cjs +1 -1
- package/dist/components/Banner.mjs +1 -1
- package/dist/components/Banner.vue.d.ts.map +1 -1
- package/dist/components/BlueprintControls.cjs +1 -1
- package/dist/components/BlueprintControls.mjs +1 -1
- package/dist/components/BlueprintMinimap.cjs +1 -1
- package/dist/components/BlueprintMinimap.mjs +1 -1
- package/dist/components/BlueprintMinimap.vue.d.ts.map +1 -1
- package/dist/components/Board.vue.d.ts.map +1 -1
- package/dist/components/BottomPanel.cjs +1 -1
- package/dist/components/BottomPanel.mjs +1 -1
- package/dist/components/BottomPanel.vue.d.ts.map +1 -1
- package/dist/components/Button.cjs +1 -1
- package/dist/components/Button.d.ts +25 -1
- package/dist/components/Button.mjs +1 -1
- package/dist/components/Button.vue.d.ts +1 -1
- package/dist/components/Button.vue.d.ts.map +1 -1
- package/dist/components/Calendar.vue.d.ts.map +1 -1
- package/dist/components/Card.cjs +1 -1
- package/dist/components/Card.mjs +1 -1
- package/dist/components/Card.vue.d.ts.map +1 -1
- package/dist/components/Checkbox.cjs +1 -1
- package/dist/components/Checkbox.mjs +1 -1
- package/dist/components/Checkbox.vue.d.ts.map +1 -1
- package/dist/components/CheckboxGroup.cjs +1 -1
- package/dist/components/CheckboxGroup.mjs +1 -1
- package/dist/components/ColorStrip.cjs +1 -1
- package/dist/components/ColorStrip.mjs +1 -1
- package/dist/components/ColorStrip.vue.d.ts.map +1 -1
- package/dist/components/CommandPalette.cjs +1 -1
- package/dist/components/CommandPalette.d.ts +28 -0
- package/dist/components/CommandPalette.mjs +1 -1
- package/dist/components/CommandPalette.vue.d.ts +2 -0
- package/dist/components/CommandPalette.vue.d.ts.map +1 -1
- package/dist/components/Confirm.cjs +1 -1
- package/dist/components/Confirm.mjs +1 -1
- package/dist/components/Confirm.vue.d.ts +1 -1
- package/dist/components/Confirm.vue.d.ts.map +1 -1
- package/dist/components/DataTable.cjs +1 -1
- package/dist/components/DataTable.mjs +1 -1
- package/dist/components/DataTable.vue.d.ts.map +1 -1
- package/dist/components/DatePicker.cjs +1 -1
- package/dist/components/DatePicker.mjs +1 -1
- package/dist/components/DatePicker.vue.d.ts.map +1 -1
- package/dist/components/EmptyState.cjs +1 -1
- package/dist/components/EmptyState.mjs +1 -1
- package/dist/components/EmptyState.vue.d.ts.map +1 -1
- package/dist/components/FileUploader.cjs +1 -1
- package/dist/components/FileUploader.mjs +1 -1
- package/dist/components/FileUploader.vue.d.ts.map +1 -1
- package/dist/components/ImageCropper.cjs +1 -1
- package/dist/components/ImageCropper.mjs +1 -1
- package/dist/components/ImageCropper.vue.d.ts.map +1 -1
- package/dist/components/InfoHint.cjs +1 -1
- package/dist/components/InfoHint.mjs +1 -1
- package/dist/components/InfoHint.vue.d.ts.map +1 -1
- package/dist/components/InlineEdit.cjs +1 -1
- package/dist/components/InlineEdit.mjs +1 -1
- package/dist/components/InlineEdit.vue.d.ts.map +1 -1
- package/dist/components/Menu.vue.d.ts.map +1 -1
- package/dist/components/MenuItem.vue.d.ts.map +1 -1
- package/dist/components/Message.cjs +1 -1
- package/dist/components/Message.mjs +1 -1
- package/dist/components/Message.vue.d.ts.map +1 -1
- package/dist/components/Modal.cjs +1 -1
- package/dist/components/Modal.d.ts +39 -0
- package/dist/components/Modal.mjs +1 -1
- package/dist/components/Modal.vue.d.ts +3 -0
- package/dist/components/Modal.vue.d.ts.map +1 -1
- package/dist/components/NotificationCenter.cjs +1 -1
- package/dist/components/NotificationCenter.mjs +1 -1
- package/dist/components/NotificationCenter.vue.d.ts.map +1 -1
- package/dist/components/NotificationCenterItem.vue.d.ts.map +1 -1
- package/dist/components/NumberInput.cjs +1 -1
- package/dist/components/NumberInput.mjs +1 -1
- package/dist/components/NumberInput.vue.d.ts.map +1 -1
- package/dist/components/Pagination.cjs +1 -1
- package/dist/components/Pagination.mjs +1 -1
- package/dist/components/Pagination.vue.d.ts.map +1 -1
- package/dist/components/Panel.cjs +1 -1
- package/dist/components/Panel.mjs +1 -1
- package/dist/components/Panel.vue.d.ts.map +1 -1
- package/dist/components/ProgressBar.cjs +1 -1
- package/dist/components/ProgressBar.mjs +1 -1
- package/dist/components/ProgressBar.vue.d.ts.map +1 -1
- package/dist/components/Radio.cjs +1 -1
- package/dist/components/Radio.mjs +1 -1
- package/dist/components/Radio.vue.d.ts.map +1 -1
- package/dist/components/ReorderList.cjs +1 -1
- package/dist/components/ReorderList.mjs +1 -1
- package/dist/components/ReorderList.vue.d.ts.map +1 -1
- package/dist/components/Select.cjs +1 -1
- package/dist/components/Select.mjs +1 -1
- package/dist/components/Select.vue.d.ts.map +1 -1
- package/dist/components/Shell.cjs +1 -1
- package/dist/components/Shell.mjs +1 -1
- package/dist/components/Shell.vue.d.ts.map +1 -1
- package/dist/components/ShellPanel.cjs +1 -1
- package/dist/components/ShellPanel.mjs +1 -1
- package/dist/components/ShellPanel.vue.d.ts.map +1 -1
- package/dist/components/SidebarLink.cjs +1 -1
- package/dist/components/SidebarLink.mjs +1 -1
- package/dist/components/SidebarLink.vue.d.ts.map +1 -1
- package/dist/components/SidebarMenuItem.cjs +1 -1
- package/dist/components/SidebarMenuItem.mjs +1 -1
- package/dist/components/SidebarMenuItem.vue.d.ts.map +1 -1
- package/dist/components/Skeleton.cjs +1 -1
- package/dist/components/Skeleton.mjs +1 -1
- package/dist/components/Skeleton.vue.d.ts.map +1 -1
- package/dist/components/Slider.cjs +1 -1
- package/dist/components/Slider.d.ts +8 -0
- package/dist/components/Slider.mjs +1 -1
- package/dist/components/Slider.vue.d.ts +1 -0
- package/dist/components/Slider.vue.d.ts.map +1 -1
- package/dist/components/StepperStep.cjs +1 -1
- package/dist/components/StepperStep.mjs +1 -1
- package/dist/components/StepperStep.vue.d.ts.map +1 -1
- package/dist/components/Tabs.cjs +1 -1
- package/dist/components/Tabs.mjs +1 -1
- package/dist/components/Tabs.vue.d.ts.map +1 -1
- package/dist/components/TextInput.cjs +1 -1
- package/dist/components/TextInput.mjs +1 -1
- package/dist/components/TextInput.vue.d.ts.map +1 -1
- package/dist/components/Toast.cjs +1 -1
- package/dist/components/Toast.mjs +1 -1
- package/dist/components/Toast.vue.d.ts.map +1 -1
- package/dist/components/Toaster.cjs +1 -1
- package/dist/components/Toaster.mjs +1 -1
- package/dist/components/TreeNode.cjs +1 -1
- package/dist/components/TreeNode.mjs +1 -1
- package/dist/components/TreeNode.vue.d.ts.map +1 -1
- package/dist/components/UserMenu.vue.d.ts.map +1 -1
- package/dist/components/Walkthrough.cjs +1 -1
- package/dist/components/Walkthrough.mjs +1 -1
- package/dist/components/Walkthrough.vue.d.ts.map +1 -1
- package/dist/composables/useAppearance.composable.cjs +1 -0
- package/dist/composables/useAppearance.composable.d.ts +131 -0
- package/dist/composables/useAppearance.composable.d.ts.map +1 -0
- package/dist/composables/useAppearance.composable.mjs +65 -0
- package/dist/composables/useConfirm.composable.cjs +1 -1
- package/dist/composables/useConfirm.composable.mjs +2 -1
- package/dist/composables/useFocusTrap.composable.cjs +1 -0
- package/dist/composables/useFocusTrap.composable.d.ts +91 -0
- package/dist/composables/useFocusTrap.composable.d.ts.map +1 -0
- package/dist/composables/useFocusTrap.composable.mjs +98 -0
- package/dist/composables/useNamedTheme.composable.cjs +1 -0
- package/dist/composables/useNamedTheme.composable.d.ts +98 -0
- package/dist/composables/useNamedTheme.composable.d.ts.map +1 -0
- package/dist/composables/useNamedTheme.composable.mjs +68 -0
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +45 -43
- package/dist/main.d.ts +5 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/plugins/vite/index.d.ts.map +1 -1
- package/dist/plugins/vite/index.js +59 -0
- package/dist/styles/AiLabel.css +1 -1
- package/dist/styles/Banner.css +1 -1
- package/dist/styles/BlueprintMinimap.css +1 -1
- package/dist/styles/Board.css +1 -1
- package/dist/styles/BottomPanel.css +1 -1
- package/dist/styles/Button.css +1 -1
- package/dist/styles/Calendar.css +1 -1
- package/dist/styles/Card.css +1 -1
- package/dist/styles/Checkbox.css +1 -1
- package/dist/styles/ColorStrip.css +1 -1
- package/dist/styles/CommandPalette.css +1 -1
- package/dist/styles/Confirm.css +1 -1
- package/dist/styles/DataTable.css +1 -1
- package/dist/styles/DatePicker.css +1 -1
- package/dist/styles/EmptyState.css +1 -1
- package/dist/styles/FileUploader.css +1 -1
- package/dist/styles/ImageCropper.css +1 -1
- package/dist/styles/InfoHint.css +1 -1
- package/dist/styles/InlineEdit.css +1 -1
- package/dist/styles/Menu.css +1 -1
- package/dist/styles/MenuItem.css +1 -1
- package/dist/styles/Message.css +1 -1
- package/dist/styles/Modal.css +1 -1
- package/dist/styles/NotificationCenter.css +1 -1
- package/dist/styles/NotificationCenterItem.css +1 -1
- package/dist/styles/NumberInput.css +1 -1
- package/dist/styles/Pagination.css +1 -1
- package/dist/styles/Panel.css +1 -1
- package/dist/styles/ProgressBar.css +1 -1
- package/dist/styles/Radio.css +1 -1
- package/dist/styles/ReorderList.css +1 -1
- package/dist/styles/Select.css +1 -1
- package/dist/styles/Shell.css +1 -1
- package/dist/styles/ShellPanel.css +1 -1
- package/dist/styles/SidebarLink.css +1 -1
- package/dist/styles/SidebarMenuItem.css +1 -1
- package/dist/styles/Skeleton.css +1 -1
- package/dist/styles/Slider.css +1 -1
- package/dist/styles/StepperStep.css +1 -1
- package/dist/styles/Tabs.css +1 -1
- package/dist/styles/TextInput.css +1 -1
- package/dist/styles/Toast.css +1 -1
- package/dist/styles/TreeNode.css +1 -1
- package/dist/styles/UserMenu.css +1 -1
- package/dist/styles/Walkthrough.css +1 -1
- package/dist/ui.css +45 -45
- package/package.json +7 -4
- package/src/plugins/vite/index.ts +62 -0
- package/src/styles/_appearance.scss +144 -0
- package/src/styles/_theme-api.scss +193 -0
- package/src/styles/_theme.scss +91 -5
- package/src/styles/index.scss +8 -0
- package/src/styles/logic/_radius.scss +146 -0
- package/src/styles/logic/index.scss +1 -0
- package/src/styles/presets/_classic-fields.scss +55 -0
- package/dist/Button-Dqtcr4i0.cjs +0 -1
- package/dist/ColorStrip-CAcR1O_R.cjs +0 -1
- package/dist/CommandPalette-BNXzQurN.js +0 -174
- package/dist/CommandPalette-DBjeOPtA.cjs +0 -1
- package/dist/Confirm-CW160zEF.cjs +0 -1
- package/dist/Modal-8lgeNWj8.cjs +0 -1
- package/dist/Modal-iN94HtKE.js +0 -156
- package/dist/Slider-CxrK7cAU.cjs +0 -1
|
@@ -19,6 +19,14 @@ interface ISliderProps
|
|
|
19
19
|
range?: boolean
|
|
20
20
|
/** Shows a `NbNumberInput` alongside the track for direct value entry. */
|
|
21
21
|
showInput?: boolean
|
|
22
|
+
/**
|
|
23
|
+
* Whether the min and max are printed either side of the track.
|
|
24
|
+
*
|
|
25
|
+
* They flank the track rather than sitting beneath its ends, so the track's
|
|
26
|
+
* ends are the component's ends and a slider lines up with the controls
|
|
27
|
+
* beside it. Turn them off on a dense row where the bounds are obvious.
|
|
28
|
+
*/
|
|
29
|
+
showBounds?: boolean
|
|
22
30
|
}
|
|
23
31
|
|
|
24
32
|
type TActiveHandle = 'low' | 'high' | null
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as e } from "../Slider-
|
|
1
|
+
import { t as e } from "../Slider-C0761rBk.js";
|
|
2
2
|
export { e as NbSlider, e as default };
|
|
@@ -14,6 +14,7 @@ declare const __VLS_export: import("vue").DefineComponent<ISliderProps, {}, {},
|
|
|
14
14
|
range: boolean;
|
|
15
15
|
step: number;
|
|
16
16
|
showInput: boolean;
|
|
17
|
+
showBounds: boolean;
|
|
17
18
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
19
|
declare const _default: typeof __VLS_export;
|
|
19
20
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Slider.vue.d.ts","sourceRoot":"","sources":["../../src/components/Slider.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Slider.vue.d.ts","sourceRoot":"","sources":["../../src/components/Slider.vue"],"names":[],"mappings":"AAmmBA,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,YAAY,CAAA;AAkoB7D,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;6EAIhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../StepperStep-
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../StepperStep-B9JEE6WJ.cjs`);exports.NbStepperStep=e.t,exports.default=e.t;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as e } from "../StepperStep-
|
|
1
|
+
import { t as e } from "../StepperStep-DFeOJ1ju.js";
|
|
2
2
|
export { e as NbStepperStep, e as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StepperStep.vue.d.ts","sourceRoot":"","sources":["../../src/components/StepperStep.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StepperStep.vue.d.ts","sourceRoot":"","sources":["../../src/components/StepperStep.vue"],"names":[],"mappings":"AA2aA,OAAO,EAAe,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAoS5D,QAAA,IAAI,QAAQ,IAAW,EAAE,QAAQ,IAAY,CAAE;AAC/C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC3C;IAAE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAOpD,QAAA,MAAM,UAAU;;;;;;;6EAGd,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"}
|
package/dist/components/Tabs.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../Tabs-
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../Tabs-Dp27EDrK.cjs`);exports.NbTabs=e.t,exports.default=e.t;
|
package/dist/components/Tabs.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as e } from "../Tabs-
|
|
1
|
+
import { t as e } from "../Tabs-CQP9zwDw.js";
|
|
2
2
|
export { e as NbTabs, e as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.vue.d.ts","sourceRoot":"","sources":["../../src/components/Tabs.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Tabs.vue.d.ts","sourceRoot":"","sources":["../../src/components/Tabs.vue"],"names":[],"mappings":"AAgVA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAqQxE,QAAA,IAAI,QAAQ,QAAW,EAAE,QAAQ;;CAAY,CAAE;AAC/C,KAAK,WAAW,GAAG,EAAE,GACnB;KAAG,CAAC,IAAI,WAAW,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG;CAAE,CAAC;AAO5E,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
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../TextInput-
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`../TextInput-D4jBlYm9.cjs`);exports.NbTextInput=e.t,exports.default=e.t;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as e } from "../TextInput-
|
|
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":"
|
|
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-
|
|
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-
|
|
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":"
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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":"
|
|
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":"
|
|
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-
|
|
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-
|
|
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":"
|
|
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`)
|
|
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
|
|
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;
|