@namroodinc/liquid-editorial 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +128 -2
- package/dist/chunks/EntryEditor-BF808OZR.js +181 -0
- package/dist/chunks/EntryEditor-BF808OZR.js.map +1 -0
- package/dist/chunks/EntryEditor-cjDk4vdH.cjs +2 -0
- package/dist/chunks/EntryEditor-cjDk4vdH.cjs.map +1 -0
- package/dist/chunks/Icon-CGY1FNXT.js +77 -0
- package/dist/chunks/Icon-CGY1FNXT.js.map +1 -0
- package/dist/chunks/Icon-CWsA1W83.cjs +2 -0
- package/dist/chunks/Icon-CWsA1W83.cjs.map +1 -0
- package/dist/chunks/RichTextEditor-DRt-kibg.js +248 -0
- package/dist/chunks/RichTextEditor-DRt-kibg.js.map +1 -0
- package/dist/chunks/RichTextEditor-tFkISOvq.cjs +2 -0
- package/dist/chunks/RichTextEditor-tFkISOvq.cjs.map +1 -0
- package/dist/components/AssetGrid/index.cjs +2 -0
- package/dist/components/AssetGrid/index.cjs.map +1 -0
- package/dist/components/AssetGrid/index.d.cts +54 -0
- package/dist/components/AssetGrid/index.d.cts.map +1 -0
- package/dist/components/AssetGrid/index.d.ts +54 -0
- package/dist/components/AssetGrid/index.d.ts.map +1 -0
- package/dist/components/AssetGrid/index.js +137 -0
- package/dist/components/AssetGrid/index.js.map +1 -0
- package/dist/components/AssetGrid/style.css +196 -0
- package/dist/components/Avatar/index.cjs +2 -0
- package/dist/components/Avatar/index.cjs.map +1 -0
- package/dist/components/Avatar/index.d.cts +24 -0
- package/dist/components/Avatar/index.d.cts.map +1 -0
- package/dist/components/Avatar/index.d.ts +24 -0
- package/dist/components/Avatar/index.d.ts.map +1 -0
- package/dist/components/Avatar/index.js +43 -0
- package/dist/components/Avatar/index.js.map +1 -0
- package/dist/components/Avatar/style.css +70 -0
- package/dist/components/Badge/index.cjs +2 -0
- package/dist/components/Badge/index.cjs.map +1 -0
- package/dist/components/Badge/index.d.cts +25 -0
- package/dist/components/Badge/index.d.cts.map +1 -0
- package/dist/components/Badge/index.d.ts +25 -0
- package/dist/components/Badge/index.d.ts.map +1 -0
- package/dist/components/Badge/index.js +28 -0
- package/dist/components/Badge/index.js.map +1 -0
- package/dist/components/Badge/style.css +103 -0
- package/dist/components/Board/index.cjs +2 -0
- package/dist/components/Board/index.cjs.map +1 -0
- package/dist/components/Board/index.d.cts +62 -0
- package/dist/components/Board/index.d.cts.map +1 -0
- package/dist/components/Board/index.d.ts +62 -0
- package/dist/components/Board/index.d.ts.map +1 -0
- package/dist/components/Board/index.js +227 -0
- package/dist/components/Board/index.js.map +1 -0
- package/dist/components/Board/style.css +145 -0
- package/dist/components/Button/index.cjs +2 -0
- package/dist/components/Button/index.cjs.map +1 -0
- package/dist/components/Button/index.d.cts +22 -0
- package/dist/components/Button/index.d.cts.map +1 -0
- package/dist/components/Button/index.d.ts +22 -0
- package/dist/components/Button/index.d.ts.map +1 -0
- package/dist/components/Button/index.js +37 -0
- package/dist/components/Button/index.js.map +1 -0
- package/dist/components/Button/style.css +139 -0
- package/dist/components/ButtonGroup/index.cjs +2 -0
- package/dist/components/ButtonGroup/index.cjs.map +1 -0
- package/dist/components/ButtonGroup/index.d.cts +17 -0
- package/dist/components/ButtonGroup/index.d.cts.map +1 -0
- package/dist/components/ButtonGroup/index.d.ts +17 -0
- package/dist/components/ButtonGroup/index.d.ts.map +1 -0
- package/dist/components/ButtonGroup/index.js +18 -0
- package/dist/components/ButtonGroup/index.js.map +1 -0
- package/dist/components/ButtonGroup/style.css +66 -0
- package/dist/components/Choice/index.cjs +2 -0
- package/dist/components/Choice/index.cjs.map +1 -0
- package/dist/components/Choice/index.d.cts +25 -0
- package/dist/components/Choice/index.d.cts.map +1 -0
- package/dist/components/Choice/index.d.ts +25 -0
- package/dist/components/Choice/index.d.ts.map +1 -0
- package/dist/components/Choice/index.js +58 -0
- package/dist/components/Choice/index.js.map +1 -0
- package/dist/components/Choice/style.css +96 -0
- package/dist/components/Container/index.cjs +2 -0
- package/dist/components/Container/index.cjs.map +1 -0
- package/dist/components/Container/index.d.cts +19 -0
- package/dist/components/Container/index.d.cts.map +1 -0
- package/dist/components/Container/index.d.ts +19 -0
- package/dist/components/Container/index.d.ts.map +1 -0
- package/dist/components/Container/index.js +20 -0
- package/dist/components/Container/index.js.map +1 -0
- package/dist/components/Container/style.css +41 -0
- package/dist/components/DatePicker/index.cjs +2 -0
- package/dist/components/DatePicker/index.cjs.map +1 -0
- package/dist/components/DatePicker/index.d.cts +57 -0
- package/dist/components/DatePicker/index.d.cts.map +1 -0
- package/dist/components/DatePicker/index.d.ts +57 -0
- package/dist/components/DatePicker/index.d.ts.map +1 -0
- package/dist/components/DatePicker/index.js +248 -0
- package/dist/components/DatePicker/index.js.map +1 -0
- package/dist/components/DatePicker/style.css +149 -0
- package/dist/components/Drawer/index.cjs +2 -0
- package/dist/components/Drawer/index.cjs.map +1 -0
- package/dist/components/Drawer/index.d.cts +23 -0
- package/dist/components/Drawer/index.d.cts.map +1 -0
- package/dist/components/Drawer/index.d.ts +23 -0
- package/dist/components/Drawer/index.d.ts.map +1 -0
- package/dist/components/Drawer/index.js +85 -0
- package/dist/components/Drawer/index.js.map +1 -0
- package/dist/components/Drawer/style.css +147 -0
- package/dist/components/EntryEditor/index.cjs +1 -0
- package/dist/components/EntryEditor/index.d.cts +21 -0
- package/dist/components/EntryEditor/index.d.cts.map +1 -0
- package/dist/components/EntryEditor/index.d.ts +21 -0
- package/dist/components/EntryEditor/index.d.ts.map +1 -0
- package/dist/components/EntryEditor/index.js +6 -0
- package/dist/components/EntryEditor/model.d.cts +33 -0
- package/dist/components/EntryEditor/model.d.cts.map +1 -0
- package/dist/components/EntryEditor/model.d.ts +33 -0
- package/dist/components/EntryEditor/model.d.ts.map +1 -0
- package/dist/components/EntryEditor/style.css +8 -0
- package/dist/components/EntryPicker/index.cjs +2 -0
- package/dist/components/EntryPicker/index.cjs.map +1 -0
- package/dist/components/EntryPicker/index.d.cts +36 -0
- package/dist/components/EntryPicker/index.d.cts.map +1 -0
- package/dist/components/EntryPicker/index.d.ts +36 -0
- package/dist/components/EntryPicker/index.d.ts.map +1 -0
- package/dist/components/EntryPicker/index.js +181 -0
- package/dist/components/EntryPicker/index.js.map +1 -0
- package/dist/components/EntryPicker/style.css +162 -0
- package/dist/components/Field/index.cjs +2 -0
- package/dist/components/Field/index.cjs.map +1 -0
- package/dist/components/Field/index.d.cts +22 -0
- package/dist/components/Field/index.d.cts.map +1 -0
- package/dist/components/Field/index.d.ts +22 -0
- package/dist/components/Field/index.d.ts.map +1 -0
- package/dist/components/Field/index.js +47 -0
- package/dist/components/Field/index.js.map +1 -0
- package/dist/components/Field/style.css +112 -0
- package/dist/components/FieldAffix/index.cjs +2 -0
- package/dist/components/FieldAffix/index.cjs.map +1 -0
- package/dist/components/FieldAffix/index.d.cts +19 -0
- package/dist/components/FieldAffix/index.d.cts.map +1 -0
- package/dist/components/FieldAffix/index.d.ts +19 -0
- package/dist/components/FieldAffix/index.d.ts.map +1 -0
- package/dist/components/FieldAffix/index.js +45 -0
- package/dist/components/FieldAffix/index.js.map +1 -0
- package/dist/components/FieldAffix/style.css +54 -0
- package/dist/components/Grid/index.cjs +2 -0
- package/dist/components/Grid/index.cjs.map +1 -0
- package/dist/components/Grid/index.d.cts +44 -0
- package/dist/components/Grid/index.d.cts.map +1 -0
- package/dist/components/Grid/index.d.ts +44 -0
- package/dist/components/Grid/index.d.ts.map +1 -0
- package/dist/components/Grid/index.js +49 -0
- package/dist/components/Grid/index.js.map +1 -0
- package/dist/components/Grid/style.css +226 -0
- package/dist/components/Icon/icons.d.cts +64 -0
- package/dist/components/Icon/icons.d.cts.map +1 -0
- package/dist/components/Icon/icons.d.ts +64 -0
- package/dist/components/Icon/icons.d.ts.map +1 -0
- package/dist/components/Icon/index.cjs +1 -0
- package/dist/components/Icon/index.d.cts +15 -0
- package/dist/components/Icon/index.d.cts.map +1 -0
- package/dist/components/Icon/index.d.ts +15 -0
- package/dist/components/Icon/index.d.ts.map +1 -0
- package/dist/components/Icon/index.js +1 -0
- package/dist/components/Icon/style.css +10 -0
- package/dist/components/ImageCropper/index.cjs +2 -0
- package/dist/components/ImageCropper/index.cjs.map +1 -0
- package/dist/components/ImageCropper/index.d.cts +66 -0
- package/dist/components/ImageCropper/index.d.cts.map +1 -0
- package/dist/components/ImageCropper/index.d.ts +66 -0
- package/dist/components/ImageCropper/index.d.ts.map +1 -0
- package/dist/components/ImageCropper/index.js +263 -0
- package/dist/components/ImageCropper/index.js.map +1 -0
- package/dist/components/ImageCropper/style.css +160 -0
- package/dist/components/Menu/index.cjs +2 -0
- package/dist/components/Menu/index.cjs.map +1 -0
- package/dist/components/Menu/index.d.cts +35 -0
- package/dist/components/Menu/index.d.cts.map +1 -0
- package/dist/components/Menu/index.d.ts +35 -0
- package/dist/components/Menu/index.d.ts.map +1 -0
- package/dist/components/Menu/index.js +110 -0
- package/dist/components/Menu/index.js.map +1 -0
- package/dist/components/Menu/style.css +87 -0
- package/dist/components/Modal/index.cjs +2 -0
- package/dist/components/Modal/index.cjs.map +1 -0
- package/dist/components/Modal/index.d.cts +19 -0
- package/dist/components/Modal/index.d.cts.map +1 -0
- package/dist/components/Modal/index.d.ts +19 -0
- package/dist/components/Modal/index.d.ts.map +1 -0
- package/dist/components/Modal/index.js +84 -0
- package/dist/components/Modal/index.js.map +1 -0
- package/dist/components/Modal/style.css +106 -0
- package/dist/components/NumberField/index.cjs +2 -0
- package/dist/components/NumberField/index.cjs.map +1 -0
- package/dist/components/NumberField/index.d.cts +50 -0
- package/dist/components/NumberField/index.d.cts.map +1 -0
- package/dist/components/NumberField/index.d.ts +50 -0
- package/dist/components/NumberField/index.d.ts.map +1 -0
- package/dist/components/NumberField/index.js +124 -0
- package/dist/components/NumberField/index.js.map +1 -0
- package/dist/components/NumberField/style.css +85 -0
- package/dist/components/Popover/index.cjs +2 -0
- package/dist/components/Popover/index.cjs.map +1 -0
- package/dist/components/Popover/index.d.cts +28 -0
- package/dist/components/Popover/index.d.cts.map +1 -0
- package/dist/components/Popover/index.d.ts +28 -0
- package/dist/components/Popover/index.d.ts.map +1 -0
- package/dist/components/Popover/index.js +52 -0
- package/dist/components/Popover/index.js.map +1 -0
- package/dist/components/Popover/style.css +23 -0
- package/dist/components/RichTextEditor/document.d.cts +10 -0
- package/dist/components/RichTextEditor/document.d.cts.map +1 -0
- package/dist/components/RichTextEditor/document.d.ts +10 -0
- package/dist/components/RichTextEditor/document.d.ts.map +1 -0
- package/dist/components/RichTextEditor/index.cjs +1 -0
- package/dist/components/RichTextEditor/index.d.cts +38 -0
- package/dist/components/RichTextEditor/index.d.cts.map +1 -0
- package/dist/components/RichTextEditor/index.d.ts +38 -0
- package/dist/components/RichTextEditor/index.d.ts.map +1 -0
- package/dist/components/RichTextEditor/index.js +1 -0
- package/dist/components/RichTextEditor/style.css +136 -0
- package/dist/components/SearchField/index.cjs +2 -0
- package/dist/components/SearchField/index.cjs.map +1 -0
- package/dist/components/SearchField/index.d.cts +11 -0
- package/dist/components/SearchField/index.d.cts.map +1 -0
- package/dist/components/SearchField/index.d.ts +11 -0
- package/dist/components/SearchField/index.d.ts.map +1 -0
- package/dist/components/SearchField/index.js +49 -0
- package/dist/components/SearchField/index.js.map +1 -0
- package/dist/components/SearchField/style.css +27 -0
- package/dist/components/Select/index.cjs +2 -0
- package/dist/components/Select/index.cjs.map +1 -0
- package/dist/components/Select/index.d.cts +26 -0
- package/dist/components/Select/index.d.cts.map +1 -0
- package/dist/components/Select/index.d.ts +26 -0
- package/dist/components/Select/index.d.ts.map +1 -0
- package/dist/components/Select/index.js +129 -0
- package/dist/components/Select/index.js.map +1 -0
- package/dist/components/Select/style.css +88 -0
- package/dist/components/SelectionCard/index.cjs +2 -0
- package/dist/components/SelectionCard/index.cjs.map +1 -0
- package/dist/components/SelectionCard/index.d.cts +32 -0
- package/dist/components/SelectionCard/index.d.cts.map +1 -0
- package/dist/components/SelectionCard/index.d.ts +32 -0
- package/dist/components/SelectionCard/index.d.ts.map +1 -0
- package/dist/components/SelectionCard/index.js +71 -0
- package/dist/components/SelectionCard/index.js.map +1 -0
- package/dist/components/SelectionCard/style.css +133 -0
- package/dist/components/SideNav/index.cjs +2 -0
- package/dist/components/SideNav/index.cjs.map +1 -0
- package/dist/components/SideNav/index.d.cts +58 -0
- package/dist/components/SideNav/index.d.cts.map +1 -0
- package/dist/components/SideNav/index.d.ts +58 -0
- package/dist/components/SideNav/index.d.ts.map +1 -0
- package/dist/components/SideNav/index.js +113 -0
- package/dist/components/SideNav/index.js.map +1 -0
- package/dist/components/SideNav/style.css +184 -0
- package/dist/components/Skeleton/index.cjs +2 -0
- package/dist/components/Skeleton/index.cjs.map +1 -0
- package/dist/components/Skeleton/index.d.cts +21 -0
- package/dist/components/Skeleton/index.d.cts.map +1 -0
- package/dist/components/Skeleton/index.d.ts +21 -0
- package/dist/components/Skeleton/index.d.ts.map +1 -0
- package/dist/components/Skeleton/index.js +31 -0
- package/dist/components/Skeleton/index.js.map +1 -0
- package/dist/components/Skeleton/style.css +55 -0
- package/dist/components/Slider/index.cjs +2 -0
- package/dist/components/Slider/index.cjs.map +1 -0
- package/dist/components/Slider/index.d.cts +40 -0
- package/dist/components/Slider/index.d.cts.map +1 -0
- package/dist/components/Slider/index.d.ts +40 -0
- package/dist/components/Slider/index.d.ts.map +1 -0
- package/dist/components/Slider/index.js +117 -0
- package/dist/components/Slider/index.js.map +1 -0
- package/dist/components/Slider/style.css +156 -0
- package/dist/components/SortableList/index.cjs +2 -0
- package/dist/components/SortableList/index.cjs.map +1 -0
- package/dist/components/SortableList/index.d.cts +27 -0
- package/dist/components/SortableList/index.d.cts.map +1 -0
- package/dist/components/SortableList/index.d.ts +27 -0
- package/dist/components/SortableList/index.d.ts.map +1 -0
- package/dist/components/SortableList/index.js +85 -0
- package/dist/components/SortableList/index.js.map +1 -0
- package/dist/components/SortableList/style.css +71 -0
- package/dist/components/Stepper/index.cjs +2 -0
- package/dist/components/Stepper/index.cjs.map +1 -0
- package/dist/components/Stepper/index.d.cts +32 -0
- package/dist/components/Stepper/index.d.cts.map +1 -0
- package/dist/components/Stepper/index.d.ts +32 -0
- package/dist/components/Stepper/index.d.ts.map +1 -0
- package/dist/components/Stepper/index.js +69 -0
- package/dist/components/Stepper/index.js.map +1 -0
- package/dist/components/Stepper/style.css +154 -0
- package/dist/components/SubNav/index.cjs +2 -0
- package/dist/components/SubNav/index.cjs.map +1 -0
- package/dist/components/SubNav/index.d.cts +31 -0
- package/dist/components/SubNav/index.d.cts.map +1 -0
- package/dist/components/SubNav/index.d.ts +31 -0
- package/dist/components/SubNav/index.d.ts.map +1 -0
- package/dist/components/SubNav/index.js +62 -0
- package/dist/components/SubNav/index.js.map +1 -0
- package/dist/components/SubNav/style.css +86 -0
- package/dist/components/Switch/index.cjs +2 -0
- package/dist/components/Switch/index.cjs.map +1 -0
- package/dist/components/Switch/index.d.cts +12 -0
- package/dist/components/Switch/index.d.cts.map +1 -0
- package/dist/components/Switch/index.d.ts +12 -0
- package/dist/components/Switch/index.d.ts.map +1 -0
- package/dist/components/Switch/index.js +37 -0
- package/dist/components/Switch/index.js.map +1 -0
- package/dist/components/Switch/style.css +65 -0
- package/dist/components/Table/index.cjs +2 -0
- package/dist/components/Table/index.cjs.map +1 -0
- package/dist/components/Table/index.d.cts +54 -0
- package/dist/components/Table/index.d.cts.map +1 -0
- package/dist/components/Table/index.d.ts +54 -0
- package/dist/components/Table/index.d.ts.map +1 -0
- package/dist/components/Table/index.js +102 -0
- package/dist/components/Table/index.js.map +1 -0
- package/dist/components/Table/style.css +122 -0
- package/dist/components/TagsInput/index.cjs +2 -0
- package/dist/components/TagsInput/index.cjs.map +1 -0
- package/dist/components/TagsInput/index.d.cts +22 -0
- package/dist/components/TagsInput/index.d.cts.map +1 -0
- package/dist/components/TagsInput/index.d.ts +22 -0
- package/dist/components/TagsInput/index.d.ts.map +1 -0
- package/dist/components/TagsInput/index.js +60 -0
- package/dist/components/TagsInput/index.js.map +1 -0
- package/dist/components/TagsInput/style.css +83 -0
- package/dist/components/TextField/index.cjs +2 -0
- package/dist/components/TextField/index.cjs.map +1 -0
- package/dist/components/TextField/index.d.cts +11 -0
- package/dist/components/TextField/index.d.cts.map +1 -0
- package/dist/components/TextField/index.d.ts +11 -0
- package/dist/components/TextField/index.d.ts.map +1 -0
- package/dist/components/TextField/index.js +29 -0
- package/dist/components/TextField/index.js.map +1 -0
- package/dist/components/TextField/style.css +1 -0
- package/dist/components/Time/index.cjs +2 -0
- package/dist/components/Time/index.cjs.map +1 -0
- package/dist/components/Time/index.d.cts +35 -0
- package/dist/components/Time/index.d.cts.map +1 -0
- package/dist/components/Time/index.d.ts +35 -0
- package/dist/components/Time/index.d.ts.map +1 -0
- package/dist/components/Time/index.js +98 -0
- package/dist/components/Time/index.js.map +1 -0
- package/dist/components/Time/style.css +30 -0
- package/dist/components/Toast/index.cjs +2 -0
- package/dist/components/Toast/index.cjs.map +1 -0
- package/dist/components/Toast/index.d.cts +30 -0
- package/dist/components/Toast/index.d.cts.map +1 -0
- package/dist/components/Toast/index.d.ts +30 -0
- package/dist/components/Toast/index.d.ts.map +1 -0
- package/dist/components/Toast/index.js +96 -0
- package/dist/components/Toast/index.js.map +1 -0
- package/dist/components/Toast/style.css +80 -0
- package/dist/components/TopNav/index.cjs +2 -0
- package/dist/components/TopNav/index.cjs.map +1 -0
- package/dist/components/TopNav/index.d.cts +28 -0
- package/dist/components/TopNav/index.d.cts.map +1 -0
- package/dist/components/TopNav/index.d.ts +28 -0
- package/dist/components/TopNav/index.d.ts.map +1 -0
- package/dist/components/TopNav/index.js +45 -0
- package/dist/components/TopNav/index.js.map +1 -0
- package/dist/components/TopNav/style.css +80 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +79 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.ts +79 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/reset.css +15 -0
- package/dist/reset.css.d.ts +2 -0
- package/dist/styles.css +40 -0
- package/dist/styles.css.d.ts +2 -0
- package/dist/tokens.css +457 -0
- package/dist/tokens.css.d.ts +2 -0
- package/package.json +156 -4
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { forwardRef as e, useState as t } from "react";
|
|
2
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
3
|
+
//#region src/components/Slider/index.tsx
|
|
4
|
+
function i(...e) {
|
|
5
|
+
return e.filter(Boolean).join(" ");
|
|
6
|
+
}
|
|
7
|
+
function a(e, t, n) {
|
|
8
|
+
return n === t ? 0 : (e - t) / (n - t) * 100;
|
|
9
|
+
}
|
|
10
|
+
var o = e(function({ value: e, defaultValue: o = 0, onValueChange: s, min: c = 0, max: l = 100, step: u = 1, hasValueLabel: d = !0, suffix: f, isDisabled: p = !1, className: m, disabled: h, ...g }, _) {
|
|
11
|
+
let [v, y] = t(o), b = e ?? v;
|
|
12
|
+
return /* @__PURE__ */ r("div", {
|
|
13
|
+
className: i("ds-slider", m),
|
|
14
|
+
"data-disabled": p || h || void 0,
|
|
15
|
+
children: [/* @__PURE__ */ r("div", {
|
|
16
|
+
className: "ds-slider__track",
|
|
17
|
+
"data-thumbs": "1",
|
|
18
|
+
"data-disabled": p || h || void 0,
|
|
19
|
+
"data-at-min": b <= c || void 0,
|
|
20
|
+
"data-at-max": b >= l || void 0,
|
|
21
|
+
style: {
|
|
22
|
+
"--slider-from": "0%",
|
|
23
|
+
"--slider-to": `${a(b, c, l)}%`
|
|
24
|
+
},
|
|
25
|
+
children: [
|
|
26
|
+
/* @__PURE__ */ n("span", { className: "ds-slider__rail" }),
|
|
27
|
+
/* @__PURE__ */ n("span", { className: "ds-slider__fill" }),
|
|
28
|
+
/* @__PURE__ */ n("input", {
|
|
29
|
+
ref: _,
|
|
30
|
+
type: "range",
|
|
31
|
+
className: "ds-slider__input",
|
|
32
|
+
min: c,
|
|
33
|
+
max: l,
|
|
34
|
+
step: u,
|
|
35
|
+
value: b,
|
|
36
|
+
disabled: p || h,
|
|
37
|
+
onChange: (t) => {
|
|
38
|
+
let n = Number(t.target.value);
|
|
39
|
+
e === void 0 && y(n), s?.(n);
|
|
40
|
+
},
|
|
41
|
+
...g
|
|
42
|
+
})
|
|
43
|
+
]
|
|
44
|
+
}), d && /* @__PURE__ */ r("output", {
|
|
45
|
+
className: "ds-slider__value",
|
|
46
|
+
children: [b, f]
|
|
47
|
+
})]
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
function s({ value: e, defaultValue: o = {
|
|
51
|
+
min: 20,
|
|
52
|
+
max: 80
|
|
53
|
+
}, onValueChange: s, min: c = 0, max: l = 100, step: u = 1, hasValueLabel: d = !0, suffix: f, isDisabled: p = !1, minLabel: m = "Minimum", maxLabel: h = "Maximum", className: g }) {
|
|
54
|
+
let [_, v] = t(o), y = e ?? _, b = (t) => {
|
|
55
|
+
e === void 0 && v(t), s?.(t);
|
|
56
|
+
};
|
|
57
|
+
return /* @__PURE__ */ r("div", {
|
|
58
|
+
className: i("ds-slider", g),
|
|
59
|
+
"data-disabled": p || void 0,
|
|
60
|
+
children: [/* @__PURE__ */ r("div", {
|
|
61
|
+
className: "ds-slider__track",
|
|
62
|
+
"data-thumbs": "2",
|
|
63
|
+
"data-disabled": p || void 0,
|
|
64
|
+
"data-at-min": y.min <= c || void 0,
|
|
65
|
+
"data-at-max": y.max >= l || void 0,
|
|
66
|
+
style: {
|
|
67
|
+
"--slider-from": `${a(y.min, c, l)}%`,
|
|
68
|
+
"--slider-to": `${a(y.max, c, l)}%`
|
|
69
|
+
},
|
|
70
|
+
children: [
|
|
71
|
+
/* @__PURE__ */ n("span", { className: "ds-slider__rail" }),
|
|
72
|
+
/* @__PURE__ */ n("span", { className: "ds-slider__fill" }),
|
|
73
|
+
/* @__PURE__ */ n("input", {
|
|
74
|
+
type: "range",
|
|
75
|
+
"aria-label": m,
|
|
76
|
+
className: "ds-slider__input",
|
|
77
|
+
min: c,
|
|
78
|
+
max: l,
|
|
79
|
+
step: u,
|
|
80
|
+
value: y.min,
|
|
81
|
+
disabled: p,
|
|
82
|
+
onChange: (e) => b({
|
|
83
|
+
...y,
|
|
84
|
+
min: Math.min(Number(e.target.value), y.max - u)
|
|
85
|
+
})
|
|
86
|
+
}),
|
|
87
|
+
/* @__PURE__ */ n("input", {
|
|
88
|
+
type: "range",
|
|
89
|
+
"aria-label": h,
|
|
90
|
+
className: "ds-slider__input",
|
|
91
|
+
min: c,
|
|
92
|
+
max: l,
|
|
93
|
+
step: u,
|
|
94
|
+
value: y.max,
|
|
95
|
+
disabled: p,
|
|
96
|
+
onChange: (e) => b({
|
|
97
|
+
...y,
|
|
98
|
+
max: Math.max(Number(e.target.value), y.min + u)
|
|
99
|
+
})
|
|
100
|
+
})
|
|
101
|
+
]
|
|
102
|
+
}), d && /* @__PURE__ */ r("output", {
|
|
103
|
+
className: "ds-slider__value",
|
|
104
|
+
children: [
|
|
105
|
+
y.min,
|
|
106
|
+
f,
|
|
107
|
+
" – ",
|
|
108
|
+
y.max,
|
|
109
|
+
f
|
|
110
|
+
]
|
|
111
|
+
})]
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
//#endregion
|
|
115
|
+
export { s as RangeSlider, o as Slider };
|
|
116
|
+
|
|
117
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["cx","parts","percent","max","min","value","Slider","forwardRef","rest","internal","setInternal","useState","defaultValue","current","className","isDisabled","disabled","next","event","onValueChange","hasValueLabel","suffix","RangeSlider","commit","minLabel","step","maxLabel"],"sources":["../../../src/components/Slider/index.tsx"],"sourcesContent":["import {\n forwardRef,\n useState,\n type InputHTMLAttributes,\n} from \"react\";\nimport \"./style.css\";\n\nfunction cx(...parts: (string | undefined | false)[]) {\n return parts.filter(Boolean).join(\" \");\n}\n\nfunction percent(value: number, min: number, max: number) {\n if (max === min) return 0;\n return ((value - min) / (max - min)) * 100;\n}\n\nexport interface SliderProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, \"type\" | \"value\" | \"defaultValue\" | \"onChange\"> {\n value?: number;\n defaultValue?: number;\n onValueChange?: (value: number) => void;\n min?: number;\n max?: number;\n step?: number;\n /** Print the current value, in the system's mono, beside the track. */\n hasValueLabel?: boolean;\n /** Appended to the printed value — \"%\", \"px\", \"s\". */\n suffix?: string;\n isDisabled?: boolean;\n}\n\n/** One value on a continuous scale. The filled part of the track is the value. */\nexport const Slider = forwardRef<HTMLInputElement, SliderProps>(function Slider(\n {\n value,\n defaultValue = 0,\n onValueChange,\n min = 0,\n max = 100,\n step = 1,\n hasValueLabel = true,\n suffix,\n isDisabled = false,\n className,\n disabled,\n ...rest\n },\n ref,\n) {\n const [internal, setInternal] = useState(defaultValue);\n const current = value ?? internal;\n\n return (\n <div className={cx(\"ds-slider\", className)} data-disabled={isDisabled || disabled || undefined}>\n <div\n className=\"ds-slider__track\"\n data-thumbs=\"1\"\n data-disabled={isDisabled || disabled || undefined}\n data-at-min={current <= min || undefined}\n data-at-max={current >= max || undefined}\n style={{\n [\"--slider-from\" as string]: \"0%\",\n [\"--slider-to\" as string]: `${percent(current, min, max)}%`,\n }}\n >\n <span className=\"ds-slider__rail\" />\n <span className=\"ds-slider__fill\" />\n <input\n ref={ref}\n type=\"range\"\n className=\"ds-slider__input\"\n min={min}\n max={max}\n step={step}\n value={current}\n disabled={isDisabled || disabled}\n onChange={(event) => {\n const next = Number(event.target.value);\n if (value === undefined) setInternal(next);\n onValueChange?.(next);\n }}\n {...rest}\n />\n </div>\n {hasValueLabel && (\n <output className=\"ds-slider__value\">\n {current}\n {suffix}\n </output>\n )}\n </div>\n );\n});\n\nexport interface RangeSliderValue {\n min: number;\n max: number;\n}\n\nexport interface RangeSliderProps {\n value?: RangeSliderValue;\n defaultValue?: RangeSliderValue;\n onValueChange?: (value: RangeSliderValue) => void;\n min?: number;\n max?: number;\n step?: number;\n hasValueLabel?: boolean;\n suffix?: string;\n isDisabled?: boolean;\n minLabel?: string;\n maxLabel?: string;\n className?: string;\n}\n\n/**\n * A span on a scale — two thumbs on one track. The thumbs cannot cross; each\n * one stops a `step` short of the other.\n */\nexport function RangeSlider({\n value,\n defaultValue = { min: 20, max: 80 },\n onValueChange,\n min = 0,\n max = 100,\n step = 1,\n hasValueLabel = true,\n suffix,\n isDisabled = false,\n minLabel = \"Minimum\",\n maxLabel = \"Maximum\",\n className,\n}: RangeSliderProps) {\n const [internal, setInternal] = useState<RangeSliderValue>(defaultValue);\n const current = value ?? internal;\n\n const commit = (next: RangeSliderValue) => {\n if (value === undefined) setInternal(next);\n onValueChange?.(next);\n };\n\n return (\n <div className={cx(\"ds-slider\", className)} data-disabled={isDisabled || undefined}>\n <div\n className=\"ds-slider__track\"\n data-thumbs=\"2\"\n data-disabled={isDisabled || undefined}\n data-at-min={current.min <= min || undefined}\n data-at-max={current.max >= max || undefined}\n style={{\n [\"--slider-from\" as string]: `${percent(current.min, min, max)}%`,\n [\"--slider-to\" as string]: `${percent(current.max, min, max)}%`,\n }}\n >\n <span className=\"ds-slider__rail\" />\n <span className=\"ds-slider__fill\" />\n <input\n type=\"range\"\n aria-label={minLabel}\n className=\"ds-slider__input\"\n min={min}\n max={max}\n step={step}\n value={current.min}\n disabled={isDisabled}\n onChange={(event) =>\n commit({ ...current, min: Math.min(Number(event.target.value), current.max - step) })\n }\n />\n <input\n type=\"range\"\n aria-label={maxLabel}\n className=\"ds-slider__input\"\n min={min}\n max={max}\n step={step}\n value={current.max}\n disabled={isDisabled}\n onChange={(event) =>\n commit({ ...current, max: Math.max(Number(event.target.value), current.min + step) })\n }\n />\n </div>\n {hasValueLabel && (\n <output className=\"ds-slider__value\">\n {current.min}\n {suffix} – {current.max}\n {suffix}\n </output>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
.ds-slider {
|
|
3
|
+
display: flex;
|
|
4
|
+
align-items: center;
|
|
5
|
+
gap: var(--space-4);
|
|
6
|
+
inline-size: 100%;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.ds-slider__value {
|
|
10
|
+
flex: none;
|
|
11
|
+
min-inline-size: 4.5rem;
|
|
12
|
+
color: var(--color-text-muted);
|
|
13
|
+
font-family: var(--font-mono);
|
|
14
|
+
font-size: var(--font-size-xs);
|
|
15
|
+
text-align: end;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/* One painted track, one or two thumbs. The rail spans the whole width; the
|
|
19
|
+
* fill lives inside the thumb travel, so a thumb always sits on its end of
|
|
20
|
+
* the fill and the left end reaches the edge. */
|
|
21
|
+
.ds-slider__track {
|
|
22
|
+
position: relative;
|
|
23
|
+
flex: 1;
|
|
24
|
+
min-inline-size: 0;
|
|
25
|
+
block-size: var(--slider-thumb-size);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.ds-slider__rail,
|
|
29
|
+
.ds-slider__fill::before {
|
|
30
|
+
position: absolute;
|
|
31
|
+
inset-block-start: calc((var(--slider-thumb-size) - var(--slider-track-height)) / 2);
|
|
32
|
+
block-size: var(--slider-track-height);
|
|
33
|
+
border-radius: var(--radius-pill);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.ds-slider__rail {
|
|
37
|
+
inset-inline: 0;
|
|
38
|
+
background: var(--field-rest);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.ds-slider__fill {
|
|
42
|
+
position: absolute;
|
|
43
|
+
inset-block: 0;
|
|
44
|
+
inset-inline: calc(var(--slider-thumb-size) / 2);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.ds-slider__fill::before {
|
|
48
|
+
content: "";
|
|
49
|
+
inset-inline-start: var(--slider-from, 0%);
|
|
50
|
+
inset-inline-end: calc(100% - var(--slider-to, 0%));
|
|
51
|
+
background: var(--color-primary);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/* At either endpoint the paint reaches the rail edge; between endpoints it
|
|
55
|
+
* terminates under the centre of the thumb. */
|
|
56
|
+
.ds-slider__track[data-thumbs="1"] .ds-slider__fill::before,
|
|
57
|
+
.ds-slider__track[data-at-min] .ds-slider__fill::before {
|
|
58
|
+
inset-inline-start: calc(var(--slider-thumb-size) / -2);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.ds-slider__track[data-at-max] .ds-slider__fill::before {
|
|
62
|
+
inset-inline-end: calc(var(--slider-thumb-size) / -2);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.ds-slider__input {
|
|
66
|
+
position: absolute;
|
|
67
|
+
inset: 0;
|
|
68
|
+
inline-size: 100%;
|
|
69
|
+
block-size: var(--slider-thumb-size);
|
|
70
|
+
margin: 0;
|
|
71
|
+
appearance: none;
|
|
72
|
+
background: transparent;
|
|
73
|
+
cursor: pointer;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* Stacked inputs on a range: only the thumbs take the pointer, so either
|
|
77
|
+
* end can always be grabbed. */
|
|
78
|
+
.ds-slider__track[data-thumbs="2"] .ds-slider__input {
|
|
79
|
+
pointer-events: none;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.ds-slider__input::-webkit-slider-runnable-track {
|
|
83
|
+
block-size: var(--slider-thumb-size);
|
|
84
|
+
background: transparent;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.ds-slider__input::-moz-range-track {
|
|
88
|
+
block-size: var(--slider-thumb-size);
|
|
89
|
+
background: transparent;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.ds-slider__input::-webkit-slider-thumb {
|
|
93
|
+
appearance: none;
|
|
94
|
+
inline-size: var(--slider-thumb-size);
|
|
95
|
+
block-size: var(--slider-thumb-size);
|
|
96
|
+
margin: 0;
|
|
97
|
+
border: var(--control-border-width) solid var(--control-border-color);
|
|
98
|
+
border-radius: var(--radius-pill);
|
|
99
|
+
background: var(--color-surface);
|
|
100
|
+
pointer-events: auto;
|
|
101
|
+
transition: background-color var(--duration-fast) var(--ease-standard);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.ds-slider__input::-moz-range-thumb {
|
|
105
|
+
inline-size: var(--slider-thumb-size);
|
|
106
|
+
block-size: var(--slider-thumb-size);
|
|
107
|
+
box-sizing: border-box;
|
|
108
|
+
border: var(--control-border-width) solid var(--control-border-color);
|
|
109
|
+
border-radius: var(--radius-pill);
|
|
110
|
+
background: var(--color-surface);
|
|
111
|
+
pointer-events: auto;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.ds-slider__input:hover:not(:disabled)::-webkit-slider-thumb {
|
|
115
|
+
background: var(--field-hover);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.ds-slider__input:hover:not(:disabled)::-moz-range-thumb {
|
|
119
|
+
background: var(--field-hover);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.ds-slider__input:focus-visible {
|
|
123
|
+
outline: var(--control-border-width) solid var(--color-focus);
|
|
124
|
+
outline-offset: 2px;
|
|
125
|
+
border-radius: var(--radius-pill);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/* Disabled reads on the whole track, not just the thumb: the fill drops to a
|
|
129
|
+
* muted tint and the thumb goes translucent so the fill shows through it. */
|
|
130
|
+
.ds-slider__track[data-disabled] .ds-slider__rail {
|
|
131
|
+
background: color-mix(in srgb, var(--color-text) 6%, var(--field-bg));
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.ds-slider__track[data-disabled] .ds-slider__fill::before {
|
|
135
|
+
background: color-mix(in srgb, var(--color-primary) 28%, var(--field-rest));
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.ds-slider__input:disabled {
|
|
139
|
+
cursor: not-allowed;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.ds-slider__input:disabled::-webkit-slider-thumb {
|
|
143
|
+
border-color: color-mix(in srgb, var(--control-border-color) 45%, transparent);
|
|
144
|
+
background: color-mix(in srgb, var(--color-surface) 55%, transparent);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.ds-slider__input:disabled::-moz-range-thumb {
|
|
148
|
+
border-color: color-mix(in srgb, var(--control-border-color) 45%, transparent);
|
|
149
|
+
background: color-mix(in srgb, var(--color-surface) 55%, transparent);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.ds-slider[data-disabled] .ds-slider__value {
|
|
153
|
+
opacity: 55%;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../chunks/Icon-CWsA1W83.cjs");let t=require("react"),n=require("react/jsx-runtime"),r=require("@dnd-kit/core"),i=require("@dnd-kit/modifiers"),a=require("@dnd-kit/sortable"),o=require("@dnd-kit/utilities");var s=(0,t.forwardRef)(function({items:o,onReorder:s,renderDragOverlay:c,className:l,children:u,...d},f){let p=(0,t.useId)(),[m,h]=(0,t.useState)(null),g=(0,r.useSensors)((0,r.useSensor)(r.PointerSensor,{activationConstraint:{distance:4}}),(0,r.useSensor)(r.KeyboardSensor,{coordinateGetter:a.sortableKeyboardCoordinates})),_=(0,t.useCallback)(e=>{h(String(e.active.id))},[]),v=(0,t.useCallback)(e=>{h(null);let{active:t,over:n}=e;if(!n||t.id===n.id)return;let r=o.indexOf(String(t.id)),i=o.indexOf(String(n.id));r<0||i<0||s?.((0,a.arrayMove)(o,r,i))},[o,s]);return(0,n.jsxs)(r.DndContext,{id:`ds-sortable-list-${p}`,sensors:g,collisionDetection:r.closestCenter,modifiers:[i.restrictToVerticalAxis],onDragStart:_,onDragEnd:v,onDragCancel:()=>h(null),children:[(0,n.jsx)(a.SortableContext,{items:o,strategy:a.verticalListSortingStrategy,children:(0,n.jsx)(`ul`,{ref:f,className:[`ds-sortable-list`,l].filter(Boolean).join(` `),...d,children:u})}),(0,n.jsx)(r.DragOverlay,{children:m?(0,n.jsxs)(`div`,{className:`ds-sortable-item`,"data-overlay":!0,children:[(0,n.jsx)(`span`,{className:`ds-sortable-item__handle`,"aria-hidden":`true`,children:(0,n.jsx)(e.t,{name:`grip-vertical`})}),(0,n.jsx)(`div`,{className:`ds-sortable-item__content`,children:c?.(m)})]}):null})]})}),c=(0,t.forwardRef)(function({id:t,label:r,action:i,className:s,children:c,...l},u){let{attributes:d,listeners:f,setNodeRef:p,transform:m,transition:h,isDragging:g}=(0,a.useSortable)({id:t});return(0,n.jsxs)(`li`,{ref:e=>{p(e),typeof u==`function`?u(e):u&&(u.current=e)},style:{transform:o.CSS.Translate.toString(m),transition:h},className:[`ds-sortable-item`,s].filter(Boolean).join(` `),"data-dragging":g||void 0,...l,children:[(0,n.jsx)(`button`,{type:`button`,className:`ds-sortable-item__handle`,"aria-label":r?`Move ${r}`:`Move item`,...d,...f,children:(0,n.jsx)(e.t,{name:`grip-vertical`})}),(0,n.jsx)(`div`,{className:`ds-sortable-item__content`,children:c}),i&&(0,n.jsx)(`div`,{className:`ds-sortable-item__action`,children:i})]})});exports.SortableList=s,exports.SortableListItem=c;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["forwardRef","useId","useState","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","useCallback","arrayMove","DndContext","closestCenter","restrictToVerticalAxis","SortableContext","verticalListSortingStrategy","DragOverlay","Icon","useSortable","CSS","require_Icon","react","react_jsx_runtime","_dnd_kit_core","_dnd_kit_modifiers","_dnd_kit_sortable","_dnd_kit_utilities","SortableList","rest","dndId","activeId","setActiveId","sensors","handleStart","event","handleEnd","over","active","from","items","to","onReorder","className","renderDragOverlay","SortableListItem","setNodeRef","node","ref","transform","isDragging","label","attributes","listeners","action"],"sources":["../../../src/components/SortableList/index.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useId,\n useState,\n type HTMLAttributes,\n type ReactNode,\n} from \"react\";\nimport {\n DndContext,\n DragOverlay,\n KeyboardSensor,\n PointerSensor,\n closestCenter,\n useSensor,\n useSensors,\n type DragEndEvent,\n type DragStartEvent,\n} from \"@dnd-kit/core\";\nimport { restrictToVerticalAxis } from \"@dnd-kit/modifiers\";\nimport {\n SortableContext,\n arrayMove,\n sortableKeyboardCoordinates,\n useSortable,\n verticalListSortingStrategy,\n} from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport { Icon } from \"../Icon\";\nimport \"./style.css\";\n\nexport interface SortableListProps extends Omit<HTMLAttributes<HTMLUListElement>, \"onDragEnd\"> {\n /** Item ids in render order. */\n items: string[];\n /** Fired with the whole list in its new order. Apply it to your own state. */\n onReorder?: (items: string[]) => void;\n /** Rendered inside the drag overlay while a row is in the air. */\n renderDragOverlay?: (id: string) => ReactNode;\n children?: ReactNode;\n}\n\n/**\n * A single vertical list you can re-order — the board's mechanics without the\n * lanes. Each row carries a grip on the left; the list owns dragging only, the\n * data stays yours: react to `onReorder`.\n */\nexport const SortableList = forwardRef<HTMLUListElement, SortableListProps>(\n function SortableList({ items, onReorder, renderDragOverlay, className, children, ...rest }, ref) {\n const dndId = useId();\n const [activeId, setActiveId] = useState<string | null>(null);\n const sensors = useSensors(\n useSensor(PointerSensor, { activationConstraint: { distance: 4 } }),\n useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates }),\n );\n\n const handleStart = useCallback((event: DragStartEvent) => {\n setActiveId(String(event.active.id));\n }, []);\n\n const handleEnd = useCallback(\n (event: DragEndEvent) => {\n setActiveId(null);\n const { active, over } = event;\n if (!over || active.id === over.id) return;\n const from = items.indexOf(String(active.id));\n const to = items.indexOf(String(over.id));\n if (from < 0 || to < 0) return;\n onReorder?.(arrayMove(items, from, to));\n },\n [items, onReorder],\n );\n\n return (\n <DndContext\n id={`ds-sortable-list-${dndId}`}\n sensors={sensors}\n collisionDetection={closestCenter}\n modifiers={[restrictToVerticalAxis]}\n onDragStart={handleStart}\n onDragEnd={handleEnd}\n onDragCancel={() => setActiveId(null)}\n >\n <SortableContext items={items} strategy={verticalListSortingStrategy}>\n <ul\n ref={ref}\n className={[\"ds-sortable-list\", className].filter(Boolean).join(\" \")}\n {...rest}\n >\n {children}\n </ul>\n </SortableContext>\n <DragOverlay>\n {activeId ? (\n <div className=\"ds-sortable-item\" data-overlay>\n <span className=\"ds-sortable-item__handle\" aria-hidden=\"true\">\n <Icon name=\"grip-vertical\" />\n </span>\n <div className=\"ds-sortable-item__content\">{renderDragOverlay?.(activeId)}</div>\n </div>\n ) : null}\n </DragOverlay>\n </DndContext>\n );\n },\n);\n\nexport interface SortableListItemProps extends HTMLAttributes<HTMLLIElement> {\n id: string;\n /** Accessible name announced when the row is picked up. */\n label?: string;\n /** A control at the end of the row, e.g. a menu or a delete button. */\n action?: ReactNode;\n children?: ReactNode;\n}\n\n/** One row of a `SortableList`. The grip on the left is the only handle. */\nexport const SortableListItem = forwardRef<HTMLLIElement, SortableListItemProps>(\n function SortableListItem({ id, label, action, className, children, ...rest }, ref) {\n const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id,\n });\n\n return (\n <li\n ref={(node) => {\n setNodeRef(node);\n if (typeof ref === \"function\") ref(node);\n else if (ref) ref.current = node;\n }}\n style={{ transform: CSS.Translate.toString(transform), transition }}\n className={[\"ds-sortable-item\", className].filter(Boolean).join(\" \")}\n data-dragging={isDragging || undefined}\n {...rest}\n >\n <button\n type=\"button\"\n className=\"ds-sortable-item__handle\"\n aria-label={label ? `Move ${label}` : \"Move item\"}\n {...attributes}\n {...listeners}\n >\n <Icon name=\"grip-vertical\" />\n </button>\n <div className=\"ds-sortable-item__content\">{children}</div>\n {action && <div className=\"ds-sortable-item__action\">{action}</div>}\n </li>\n );\n },\n);\n"],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from "react";
|
|
2
|
+
export interface SortableListProps extends Omit<HTMLAttributes<HTMLUListElement>, "onDragEnd"> {
|
|
3
|
+
/** Item ids in render order. */
|
|
4
|
+
items: string[];
|
|
5
|
+
/** Fired with the whole list in its new order. Apply it to your own state. */
|
|
6
|
+
onReorder?: (items: string[]) => void;
|
|
7
|
+
/** Rendered inside the drag overlay while a row is in the air. */
|
|
8
|
+
renderDragOverlay?: (id: string) => ReactNode;
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A single vertical list you can re-order — the board's mechanics without the
|
|
13
|
+
* lanes. Each row carries a grip on the left; the list owns dragging only, the
|
|
14
|
+
* data stays yours: react to `onReorder`.
|
|
15
|
+
*/
|
|
16
|
+
export declare const SortableList: import("react").ForwardRefExoticComponent<SortableListProps & import("react").RefAttributes<HTMLUListElement>>;
|
|
17
|
+
export interface SortableListItemProps extends HTMLAttributes<HTMLLIElement> {
|
|
18
|
+
id: string;
|
|
19
|
+
/** Accessible name announced when the row is picked up. */
|
|
20
|
+
label?: string;
|
|
21
|
+
/** A control at the end of the row, e.g. a menu or a delete button. */
|
|
22
|
+
action?: ReactNode;
|
|
23
|
+
children?: ReactNode;
|
|
24
|
+
}
|
|
25
|
+
/** One row of a `SortableList`. The grip on the left is the only handle. */
|
|
26
|
+
export declare const SortableListItem: import("react").ForwardRefExoticComponent<SortableListItemProps & import("react").RefAttributes<HTMLLIElement>>;
|
|
27
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../../src/components/SortableList/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAsBf,OAAO,aAAa,CAAC;AAErB,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAC5F,gCAAgC;IAChC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACtC,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,SAAS,CAAC;IAC9C,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,gHA0DxB,CAAC;AAEF,MAAM,WAAW,qBAAsB,SAAQ,cAAc,CAAC,aAAa,CAAC;IAC1E,EAAE,EAAE,MAAM,CAAC;IACX,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,iHAgC5B,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from "react";
|
|
2
|
+
export interface SortableListProps extends Omit<HTMLAttributes<HTMLUListElement>, "onDragEnd"> {
|
|
3
|
+
/** Item ids in render order. */
|
|
4
|
+
items: string[];
|
|
5
|
+
/** Fired with the whole list in its new order. Apply it to your own state. */
|
|
6
|
+
onReorder?: (items: string[]) => void;
|
|
7
|
+
/** Rendered inside the drag overlay while a row is in the air. */
|
|
8
|
+
renderDragOverlay?: (id: string) => ReactNode;
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A single vertical list you can re-order — the board's mechanics without the
|
|
13
|
+
* lanes. Each row carries a grip on the left; the list owns dragging only, the
|
|
14
|
+
* data stays yours: react to `onReorder`.
|
|
15
|
+
*/
|
|
16
|
+
export declare const SortableList: import("react").ForwardRefExoticComponent<SortableListProps & import("react").RefAttributes<HTMLUListElement>>;
|
|
17
|
+
export interface SortableListItemProps extends HTMLAttributes<HTMLLIElement> {
|
|
18
|
+
id: string;
|
|
19
|
+
/** Accessible name announced when the row is picked up. */
|
|
20
|
+
label?: string;
|
|
21
|
+
/** A control at the end of the row, e.g. a menu or a delete button. */
|
|
22
|
+
action?: ReactNode;
|
|
23
|
+
children?: ReactNode;
|
|
24
|
+
}
|
|
25
|
+
/** One row of a `SortableList`. The grip on the left is the only handle. */
|
|
26
|
+
export declare const SortableListItem: import("react").ForwardRefExoticComponent<SortableListItemProps & import("react").RefAttributes<HTMLLIElement>>;
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/SortableList/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAsBf,OAAO,aAAa,CAAC;AAErB,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAC5F,gCAAgC;IAChC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACtC,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,SAAS,CAAC;IAC9C,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,gHA0DxB,CAAC;AAEF,MAAM,WAAW,qBAAsB,SAAQ,cAAc,CAAC,aAAa,CAAC;IAC1E,EAAE,EAAE,MAAM,CAAC;IACX,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,iHAgC5B,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { t as e } from "../../chunks/Icon-CGY1FNXT.js";
|
|
2
|
+
import { forwardRef as t, useCallback as n, useId as r, useState as i } from "react";
|
|
3
|
+
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
4
|
+
import { DndContext as s, DragOverlay as c, KeyboardSensor as l, PointerSensor as u, closestCenter as d, useSensor as f, useSensors as p } from "@dnd-kit/core";
|
|
5
|
+
import { restrictToVerticalAxis as m } from "@dnd-kit/modifiers";
|
|
6
|
+
import { SortableContext as h, arrayMove as g, sortableKeyboardCoordinates as _, useSortable as v, verticalListSortingStrategy as y } from "@dnd-kit/sortable";
|
|
7
|
+
import { CSS as b } from "@dnd-kit/utilities";
|
|
8
|
+
//#region src/components/SortableList/index.tsx
|
|
9
|
+
var x = t(function({ items: t, onReorder: v, renderDragOverlay: b, className: x, children: S, ...C }, w) {
|
|
10
|
+
let T = r(), [E, D] = i(null), O = p(f(u, { activationConstraint: { distance: 4 } }), f(l, { coordinateGetter: _ })), k = n((e) => {
|
|
11
|
+
D(String(e.active.id));
|
|
12
|
+
}, []), A = n((e) => {
|
|
13
|
+
D(null);
|
|
14
|
+
let { active: n, over: r } = e;
|
|
15
|
+
if (!r || n.id === r.id) return;
|
|
16
|
+
let i = t.indexOf(String(n.id)), a = t.indexOf(String(r.id));
|
|
17
|
+
i < 0 || a < 0 || v?.(g(t, i, a));
|
|
18
|
+
}, [t, v]);
|
|
19
|
+
return /* @__PURE__ */ o(s, {
|
|
20
|
+
id: `ds-sortable-list-${T}`,
|
|
21
|
+
sensors: O,
|
|
22
|
+
collisionDetection: d,
|
|
23
|
+
modifiers: [m],
|
|
24
|
+
onDragStart: k,
|
|
25
|
+
onDragEnd: A,
|
|
26
|
+
onDragCancel: () => D(null),
|
|
27
|
+
children: [/* @__PURE__ */ a(h, {
|
|
28
|
+
items: t,
|
|
29
|
+
strategy: y,
|
|
30
|
+
children: /* @__PURE__ */ a("ul", {
|
|
31
|
+
ref: w,
|
|
32
|
+
className: ["ds-sortable-list", x].filter(Boolean).join(" "),
|
|
33
|
+
...C,
|
|
34
|
+
children: S
|
|
35
|
+
})
|
|
36
|
+
}), /* @__PURE__ */ a(c, { children: E ? /* @__PURE__ */ o("div", {
|
|
37
|
+
className: "ds-sortable-item",
|
|
38
|
+
"data-overlay": !0,
|
|
39
|
+
children: [/* @__PURE__ */ a("span", {
|
|
40
|
+
className: "ds-sortable-item__handle",
|
|
41
|
+
"aria-hidden": "true",
|
|
42
|
+
children: /* @__PURE__ */ a(e, { name: "grip-vertical" })
|
|
43
|
+
}), /* @__PURE__ */ a("div", {
|
|
44
|
+
className: "ds-sortable-item__content",
|
|
45
|
+
children: b?.(E)
|
|
46
|
+
})]
|
|
47
|
+
}) : null })]
|
|
48
|
+
});
|
|
49
|
+
}), S = t(function({ id: t, label: n, action: r, className: i, children: s, ...c }, l) {
|
|
50
|
+
let { attributes: u, listeners: d, setNodeRef: f, transform: p, transition: m, isDragging: h } = v({ id: t });
|
|
51
|
+
return /* @__PURE__ */ o("li", {
|
|
52
|
+
ref: (e) => {
|
|
53
|
+
f(e), typeof l == "function" ? l(e) : l && (l.current = e);
|
|
54
|
+
},
|
|
55
|
+
style: {
|
|
56
|
+
transform: b.Translate.toString(p),
|
|
57
|
+
transition: m
|
|
58
|
+
},
|
|
59
|
+
className: ["ds-sortable-item", i].filter(Boolean).join(" "),
|
|
60
|
+
"data-dragging": h || void 0,
|
|
61
|
+
...c,
|
|
62
|
+
children: [
|
|
63
|
+
/* @__PURE__ */ a("button", {
|
|
64
|
+
type: "button",
|
|
65
|
+
className: "ds-sortable-item__handle",
|
|
66
|
+
"aria-label": n ? `Move ${n}` : "Move item",
|
|
67
|
+
...u,
|
|
68
|
+
...d,
|
|
69
|
+
children: /* @__PURE__ */ a(e, { name: "grip-vertical" })
|
|
70
|
+
}),
|
|
71
|
+
/* @__PURE__ */ a("div", {
|
|
72
|
+
className: "ds-sortable-item__content",
|
|
73
|
+
children: s
|
|
74
|
+
}),
|
|
75
|
+
r && /* @__PURE__ */ a("div", {
|
|
76
|
+
className: "ds-sortable-item__action",
|
|
77
|
+
children: r
|
|
78
|
+
})
|
|
79
|
+
]
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
//#endregion
|
|
83
|
+
export { x as SortableList, S as SortableListItem };
|
|
84
|
+
|
|
85
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["Icon","SortableList","forwardRef","rest","dndId","useId","activeId","setActiveId","useState","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","handleStart","useCallback","event","handleEnd","over","active","from","items","to","onReorder","arrayMove","DndContext","closestCenter","restrictToVerticalAxis","SortableContext","verticalListSortingStrategy","className","DragOverlay","renderDragOverlay","SortableListItem","useSortable","setNodeRef","node","ref","CSS","transform","isDragging","label","attributes","listeners","action"],"sources":["../../../src/components/SortableList/index.tsx"],"sourcesContent":["import {\n forwardRef,\n useCallback,\n useId,\n useState,\n type HTMLAttributes,\n type ReactNode,\n} from \"react\";\nimport {\n DndContext,\n DragOverlay,\n KeyboardSensor,\n PointerSensor,\n closestCenter,\n useSensor,\n useSensors,\n type DragEndEvent,\n type DragStartEvent,\n} from \"@dnd-kit/core\";\nimport { restrictToVerticalAxis } from \"@dnd-kit/modifiers\";\nimport {\n SortableContext,\n arrayMove,\n sortableKeyboardCoordinates,\n useSortable,\n verticalListSortingStrategy,\n} from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport { Icon } from \"../Icon\";\nimport \"./style.css\";\n\nexport interface SortableListProps extends Omit<HTMLAttributes<HTMLUListElement>, \"onDragEnd\"> {\n /** Item ids in render order. */\n items: string[];\n /** Fired with the whole list in its new order. Apply it to your own state. */\n onReorder?: (items: string[]) => void;\n /** Rendered inside the drag overlay while a row is in the air. */\n renderDragOverlay?: (id: string) => ReactNode;\n children?: ReactNode;\n}\n\n/**\n * A single vertical list you can re-order — the board's mechanics without the\n * lanes. Each row carries a grip on the left; the list owns dragging only, the\n * data stays yours: react to `onReorder`.\n */\nexport const SortableList = forwardRef<HTMLUListElement, SortableListProps>(\n function SortableList({ items, onReorder, renderDragOverlay, className, children, ...rest }, ref) {\n const dndId = useId();\n const [activeId, setActiveId] = useState<string | null>(null);\n const sensors = useSensors(\n useSensor(PointerSensor, { activationConstraint: { distance: 4 } }),\n useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates }),\n );\n\n const handleStart = useCallback((event: DragStartEvent) => {\n setActiveId(String(event.active.id));\n }, []);\n\n const handleEnd = useCallback(\n (event: DragEndEvent) => {\n setActiveId(null);\n const { active, over } = event;\n if (!over || active.id === over.id) return;\n const from = items.indexOf(String(active.id));\n const to = items.indexOf(String(over.id));\n if (from < 0 || to < 0) return;\n onReorder?.(arrayMove(items, from, to));\n },\n [items, onReorder],\n );\n\n return (\n <DndContext\n id={`ds-sortable-list-${dndId}`}\n sensors={sensors}\n collisionDetection={closestCenter}\n modifiers={[restrictToVerticalAxis]}\n onDragStart={handleStart}\n onDragEnd={handleEnd}\n onDragCancel={() => setActiveId(null)}\n >\n <SortableContext items={items} strategy={verticalListSortingStrategy}>\n <ul\n ref={ref}\n className={[\"ds-sortable-list\", className].filter(Boolean).join(\" \")}\n {...rest}\n >\n {children}\n </ul>\n </SortableContext>\n <DragOverlay>\n {activeId ? (\n <div className=\"ds-sortable-item\" data-overlay>\n <span className=\"ds-sortable-item__handle\" aria-hidden=\"true\">\n <Icon name=\"grip-vertical\" />\n </span>\n <div className=\"ds-sortable-item__content\">{renderDragOverlay?.(activeId)}</div>\n </div>\n ) : null}\n </DragOverlay>\n </DndContext>\n );\n },\n);\n\nexport interface SortableListItemProps extends HTMLAttributes<HTMLLIElement> {\n id: string;\n /** Accessible name announced when the row is picked up. */\n label?: string;\n /** A control at the end of the row, e.g. a menu or a delete button. */\n action?: ReactNode;\n children?: ReactNode;\n}\n\n/** One row of a `SortableList`. The grip on the left is the only handle. */\nexport const SortableListItem = forwardRef<HTMLLIElement, SortableListItemProps>(\n function SortableListItem({ id, label, action, className, children, ...rest }, ref) {\n const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id,\n });\n\n return (\n <li\n ref={(node) => {\n setNodeRef(node);\n if (typeof ref === \"function\") ref(node);\n else if (ref) ref.current = node;\n }}\n style={{ transform: CSS.Translate.toString(transform), transition }}\n className={[\"ds-sortable-item\", className].filter(Boolean).join(\" \")}\n data-dragging={isDragging || undefined}\n {...rest}\n >\n <button\n type=\"button\"\n className=\"ds-sortable-item__handle\"\n aria-label={label ? `Move ${label}` : \"Move item\"}\n {...attributes}\n {...listeners}\n >\n <Icon name=\"grip-vertical\" />\n </button>\n <div className=\"ds-sortable-item__content\">{children}</div>\n {action && <div className=\"ds-sortable-item__action\">{action}</div>}\n </li>\n );\n },\n);\n"],"mappings":";;;;;;;;AA8CA,IAAaC,IAAeC,EAC1B,SAAsB,EAAE,UAAO,cAAW,sBAAmB,cAAW,aAAU,GAAGC,KAAQ,GAAK;CAChG,IAAMC,IAAQC,EAAM,GACd,CAACC,GAAUC,KAAeC,EAAwB,IAAI,GACtDC,IAAUC,EACdC,EAAUC,GAAe,EAAE,sBAAsB,EAAE,UAAU,EAAE,EAAE,CAAC,GAClED,EAAUE,GAAgB,EAAE,kBAAkBC,EAA4B,CAAC,CAC7E,GAEMC,IAAcC,GAAa,MAA0B;EACzD,EAAY,OAAOC,EAAM,OAAO,EAAE,CAAC;CACrC,GAAG,CAAC,CAAC,GAECC,IAAYF,GACf,MAAwB;EACvB,EAAY,IAAI;EAChB,IAAM,EAAE,WAAQ,YAASC;EACzB,IAAI,CAACE,KAAQC,EAAO,OAAOD,EAAK,IAAI;EACpC,IAAME,IAAOC,EAAM,QAAQ,OAAOF,EAAO,EAAE,CAAC,GACtCG,IAAKD,EAAM,QAAQ,OAAOH,EAAK,EAAE,CAAC;EACxC,AAAIE,IAAO,KAAKE,IAAK,KACrBC,IAAYC,EAAUH,GAAOD,GAAME,CAAE,CAAC;CACxC,GACA,CAACD,GAAOE,CAAS,CACnB;CAEA,OACE,kBAACE,GAAD;EACE,IAAI,oBAAoBtB;EACf;EACT,oBAAoBuB;EACpB,WAAW,CAACC,CAAsB;EAClC,aAAab;EACb,WAAWG;EACX,oBAAoBX,EAAY,IAAI;EAPtC,UAAA,CASE,kBAACsB,GAAD;GAAwB;GAAO,UAAUC;GACvC,UAAA,kBAAC,MAAD;IACO;IACL,WAAW,CAAC,oBAAoBC,CAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;IACnE,GAAI5B;IAEH;GACC,CAAA;EACW,CAAA,GACjB,kBAAC6B,GAAD,EAAA,UACG1B,IACC,kBAAC,OAAD;GAAK,WAAU;GAAmB,gBAAA;GAAlC,UAAA,CACE,kBAAC,QAAD;IAAM,WAAU;IAA2B,eAAY;IACrD,UAAA,kBAACN,GAAD,EAAM,MAAK,gBAAiB,CAAA;GACxB,CAAA,GACN,kBAAC,OAAD;IAAK,WAAU;IAA6B,UAAAiC,IAAoB3B,CAAQ;GAAO,CAAA,CAC5E;EACH,CAAA,IAAA,KACO,CAAA,CACH;;AAEhB,CACF,GAYa4B,IAAmBhC,EAC9B,SAA0B,EAAE,OAAI,UAAO,WAAQ,cAAW,aAAU,GAAGC,KAAQ,GAAK;CAClF,IAAM,EAAE,eAAY,cAAW,eAAY,cAAW,eAAY,kBAAegC,EAAY,EAC3F,MACF,CAAC;CAED,OACE,kBAAC,MAAD;EACE,MAAM,MAAS;GAEb,AADAC,EAAWC,CAAI,GACX,OAAOC,KAAQ,aAAYA,EAAID,CAAI,IAC9BC,MAAK,EAAI,UAAUD;EAC9B;EACA,OAAO;GAAE,WAAWE,EAAI,UAAU,SAASC,CAAS;GAAG;EAAW;EAClE,WAAW,CAAC,oBAAoBT,CAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG;EACnE,iBAAeU,KAAc,KAAA;EAC7B,GAAItC;EATN,UAAA;GAWE,kBAAC,UAAD;IACE,MAAK;IACL,WAAU;IACV,cAAYuC,IAAQ,QAAQA,MAAU;IACtC,GAAIC;IACJ,GAAIC;IAEJ,UAAA,kBAAC5C,GAAD,EAAM,MAAK,gBAAiB,CAAA;GACtB,CAAA;GACR,kBAAC,OAAD;IAAK,WAAU;IAA6B;GAAc,CAAA;GACzD6C,KAAU,kBAAC,OAAD;IAAK,WAAU;IAA4B,UAAAA;GAAY,CAAA;EAChE;;AAER,CACF"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
.ds-sortable-list {
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-direction: column;
|
|
5
|
+
gap: var(--space-2);
|
|
6
|
+
list-style: none;
|
|
7
|
+
margin: 0;
|
|
8
|
+
padding: 0;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.ds-sortable-item {
|
|
12
|
+
display: flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
gap: var(--space-3);
|
|
15
|
+
border: var(--control-border-width) solid var(--control-border-color);
|
|
16
|
+
border-radius: var(--radius-md);
|
|
17
|
+
background: var(--color-surface);
|
|
18
|
+
padding: var(--space-3);
|
|
19
|
+
font-size: var(--font-size-sm);
|
|
20
|
+
user-select: none;
|
|
21
|
+
transition: background-color var(--duration-fast) var(--ease-standard);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.ds-sortable-item:hover {
|
|
25
|
+
background: var(--field-hover);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.ds-sortable-item[data-dragging] {
|
|
29
|
+
opacity: 35%;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.ds-sortable-item[data-overlay] {
|
|
33
|
+
box-shadow: var(--shadow-lg);
|
|
34
|
+
background: var(--color-surface);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.ds-sortable-item__handle {
|
|
38
|
+
display: flex;
|
|
39
|
+
align-items: center;
|
|
40
|
+
justify-content: center;
|
|
41
|
+
border: 0;
|
|
42
|
+
padding: 0;
|
|
43
|
+
background: none;
|
|
44
|
+
color: var(--color-text-muted);
|
|
45
|
+
cursor: grab;
|
|
46
|
+
touch-action: none;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.ds-sortable-item__handle:hover {
|
|
50
|
+
color: var(--color-text);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.ds-sortable-item__handle:focus-visible {
|
|
54
|
+
outline: var(--control-border-width) solid var(--color-focus);
|
|
55
|
+
outline-offset: 2px;
|
|
56
|
+
border-radius: var(--radius-sm);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.ds-sortable-item[data-overlay] .ds-sortable-item__handle {
|
|
60
|
+
cursor: grabbing;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.ds-sortable-item__content {
|
|
64
|
+
flex: 1;
|
|
65
|
+
min-inline-size: 0;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.ds-sortable-item__action {
|
|
69
|
+
margin-inline-start: auto;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../chunks/Icon-CWsA1W83.cjs");let t=require("react"),n=require("react/jsx-runtime");function r(e,t){return e<t?`complete`:e===t?`current`:`upcoming`}var i=(0,t.forwardRef)(function({steps:t,activeStep:i,size:a=`md`,label:o=`Progress`,onStepChange:s,className:c,...l},u){return(0,n.jsx)(`nav`,{ref:u,"aria-label":o,"data-size":a,className:[`ds-stepper`,c].filter(Boolean).join(` `),...l,children:(0,n.jsx)(`ol`,{className:`ds-stepper__list`,children:t.map((t,a)=>{let o=r(a,i),c=!!s&&o!==`upcoming`;return(0,n.jsxs)(`li`,{className:`ds-stepper__step`,"data-status":o,"aria-current":o===`current`?`step`:void 0,children:[(0,n.jsxs)(`span`,{className:`ds-stepper__track`,"aria-hidden":`true`,children:[(0,n.jsx)(`span`,{className:`ds-stepper__connector`,"data-side":`start`}),(0,n.jsx)(`span`,{className:`ds-stepper__connector`,"data-side":`end`})]}),(0,n.jsxs)(c?`button`:`span`,{className:`ds-stepper__marker`,...c?{type:`button`,onClick:()=>s?.(a,t.id)}:{},children:[o===`complete`?(0,n.jsx)(e.t,{name:`check`,size:16,"aria-hidden":`true`}):a+1,(0,n.jsx)(`span`,{className:`ds-stepper__sr`,children:o})]}),(0,n.jsxs)(`span`,{className:`ds-stepper__text`,children:[(0,n.jsx)(`span`,{className:`ds-stepper__label`,children:t.label}),t.description&&(0,n.jsx)(`span`,{className:`ds-stepper__description`,children:t.description})]})]},t.id)})})})});exports.Stepper=i;
|
|
2
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["forwardRef","Icon","require_Icon","react","react_jsx_runtime","statusOf","index","activeStep","Stepper","rest","label","size","className","steps","status","interactive","onStepChange","step"],"sources":["../../../src/components/Stepper/index.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type ReactNode } from \"react\";\nimport { Icon } from \"../Icon\";\nimport \"./style.css\";\n\nexport type StepperSize = \"sm\" | \"md\";\nexport type StepStatus = \"complete\" | \"current\" | \"upcoming\";\n\nexport interface Step {\n /** Stable key, and the value reported by `onStepChange`. */\n id: string;\n /** The step in the user's words — sentence case. */\n label: ReactNode;\n /** One line on what happens here. */\n description?: ReactNode;\n}\n\nexport interface StepperProps\n extends Omit<HTMLAttributes<HTMLElement>, \"onChange\" | \"children\"> {\n /** The ordered steps. Three or more spread evenly across the full width. */\n steps: Step[];\n /** Index of the step being worked on. Everything before it reads as complete. */\n activeStep: number;\n /** Marker scale. `sm` for a toolbar band, `md` for a page header. */\n size?: StepperSize;\n /** Accessible name for the progress bar. */\n label?: string;\n /**\n * Makes completed steps (and the current one) navigable. Omit for a\n * read-only progress indicator.\n */\n onStepChange?: (index: number, id: string) => void;\n}\n\nfunction statusOf(index: number, activeStep: number): StepStatus {\n if (index < activeStep) return \"complete\";\n if (index === activeStep) return \"current\";\n return \"upcoming\";\n}\n\n/**\n * A linear progress rail: 1 - 2 - 3. Steps share the row equally however many\n * there are, so the last marker always lands on the trailing edge.\n */\nexport const Stepper = forwardRef<HTMLElement, StepperProps>(function Stepper(\n { steps, activeStep, size = \"md\", label = \"Progress\", onStepChange, className, ...rest },\n ref,\n) {\n return (\n <nav\n ref={ref}\n aria-label={label}\n data-size={size}\n className={[\"ds-stepper\", className].filter(Boolean).join(\" \")}\n {...rest}\n >\n <ol className=\"ds-stepper__list\">\n {steps.map((step, index) => {\n const status = statusOf(index, activeStep);\n const interactive = Boolean(onStepChange) && status !== \"upcoming\";\n const Marker = interactive ? \"button\" : \"span\";\n return (\n <li\n key={step.id}\n className=\"ds-stepper__step\"\n data-status={status}\n aria-current={status === \"current\" ? \"step\" : undefined}\n >\n <span className=\"ds-stepper__track\" aria-hidden=\"true\">\n <span className=\"ds-stepper__connector\" data-side=\"start\" />\n <span className=\"ds-stepper__connector\" data-side=\"end\" />\n </span>\n <Marker\n className=\"ds-stepper__marker\"\n {...(interactive\n ? {\n type: \"button\" as const,\n onClick: () => onStepChange?.(index, step.id),\n }\n : {})}\n >\n {status === \"complete\" ? (\n <Icon name=\"check\" size={16} aria-hidden=\"true\" />\n ) : (\n index + 1\n )}\n <span className=\"ds-stepper__sr\">{status}</span>\n </Marker>\n <span className=\"ds-stepper__text\">\n <span className=\"ds-stepper__label\">{step.label}</span>\n {step.description && (\n <span className=\"ds-stepper__description\">{step.description}</span>\n )}\n </span>\n </li>\n );\n })}\n </ol>\n </nav>\n );\n});\n"],"mappings":"A,2KAiCA,SAASK,EAAS,EAAe,EAAgC,CAG/D,OAFIC,EAAQC,EAAmB,WAC3BD,IAAUC,EAAmB,UAC1B,UACT,CAMA,IAAaC,GAAA,EAAUR,EAAAA,WAAAA,CAAsC,SAC3D,CAAE,QAAO,aAAY,OAAO,KAAM,QAAQ,WAAY,eAAc,YAAW,GAAGS,GAClF,EACA,CACA,OACE,EAAAL,EAAA,IAAA,CAAC,MAAD,CACO,MACL,aAAYM,EACZ,YAAWC,EACX,UAAW,CAAC,aAAcC,CAAS,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,GAAG,EAC7D,GAAIH,EAEJ,UAAA,EAAAL,EAAA,IAAA,CAAC,KAAD,CAAI,UAAU,mBACX,SAAAS,EAAM,KAAK,EAAM,IAAU,CAC1B,IAAMC,EAAST,EAASC,EAAOC,CAAU,EACnCQ,EAAc,EAAQC,GAAiBF,IAAW,WAExD,OACE,EAAAV,EAAA,KAAA,CAAC,KAAD,CAEE,UAAU,mBACV,cAAaU,EACb,eAAcA,IAAW,UAAY,OAAS,IAAA,GAJhD,SAAA,EAME,EAAAV,EAAA,KAAA,CAAC,OAAD,CAAM,UAAU,oBAAoB,cAAY,OAAhD,SAAA,EACE,EAAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,wBAAwB,YAAU,OAAS,CAAA,GAC3D,EAAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,wBAAwB,YAAU,KAAO,CAAA,CACrD,C,IACN,EAAAA,EAAA,KAAA,CAZWW,EAAc,SAAW,OAYpC,CACE,UAAU,qBACV,GAAKA,EACD,CACE,KAAM,SACN,YAAeC,IAAeV,EAAOW,EAAK,EAAE,CAC9C,EACA,CAAC,EAPP,SAAA,CASGH,IAAW,YACV,EAAAV,EAAA,IAAA,CAACH,EAAAA,EAAD,CAAM,KAAK,QAAQ,KAAM,GAAI,cAAY,MAAQ,CAAA,EAEjDK,EAAQ,GAEV,EAAAF,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,iBAAkB,SAAAU,CAAa,CAAA,CACzC,C,IACR,EAAAV,EAAA,KAAA,CAAC,OAAD,CAAM,UAAU,mBAAhB,SAAA,EACE,EAAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,oBAAqB,SAAAa,EAAK,KAAY,CAAA,EACrDA,EAAK,cACJ,EAAAb,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,0BAA2B,SAAAa,EAAK,WAAkB,CAAA,CAEhE,C,EACJ,CA/BG,EAAAA,EAAK,EA+BR,CAER,CAAC,CACC,CAAA,CACD,CAAA,CAET,CAAC,E"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type HTMLAttributes, type ReactNode } from "react";
|
|
2
|
+
export type StepperSize = "sm" | "md";
|
|
3
|
+
export type StepStatus = "complete" | "current" | "upcoming";
|
|
4
|
+
export interface Step {
|
|
5
|
+
/** Stable key, and the value reported by `onStepChange`. */
|
|
6
|
+
id: string;
|
|
7
|
+
/** The step in the user's words — sentence case. */
|
|
8
|
+
label: ReactNode;
|
|
9
|
+
/** One line on what happens here. */
|
|
10
|
+
description?: ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export interface StepperProps extends Omit<HTMLAttributes<HTMLElement>, "onChange" | "children"> {
|
|
13
|
+
/** The ordered steps. Three or more spread evenly across the full width. */
|
|
14
|
+
steps: Step[];
|
|
15
|
+
/** Index of the step being worked on. Everything before it reads as complete. */
|
|
16
|
+
activeStep: number;
|
|
17
|
+
/** Marker scale. `sm` for a toolbar band, `md` for a page header. */
|
|
18
|
+
size?: StepperSize;
|
|
19
|
+
/** Accessible name for the progress bar. */
|
|
20
|
+
label?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Makes completed steps (and the current one) navigable. Omit for a
|
|
23
|
+
* read-only progress indicator.
|
|
24
|
+
*/
|
|
25
|
+
onStepChange?: (index: number, id: string) => void;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* A linear progress rail: 1 - 2 - 3. Steps share the row equally however many
|
|
29
|
+
* there are, so the last marker always lands on the trailing edge.
|
|
30
|
+
*/
|
|
31
|
+
export declare const Stepper: import("react").ForwardRefExoticComponent<StepperProps & import("react").RefAttributes<HTMLElement>>;
|
|
32
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../../src/components/Stepper/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAExE,OAAO,aAAa,CAAC;AAErB,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC;AACtC,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;AAE7D,MAAM,WAAW,IAAI;IACnB,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,oDAAoD;IACpD,KAAK,EAAE,SAAS,CAAC;IACjB,qCAAqC;IACrC,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,MAAM,WAAW,YACf,SAAQ,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;IAClE,4EAA4E;IAC5E,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpD;AAQD;;;GAGG;AACH,eAAO,MAAM,OAAO,sGAwDlB,CAAC"}
|