@brijbyte/agentic-ui 0.0.1 → 0.0.2
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/README.md +183 -111
- package/dist/accordion/accordion.css +6 -10
- package/dist/accordion/accordion.module.js.map +1 -1
- package/dist/alert-dialog/alert-dialog.css +84 -0
- package/dist/alert-dialog/alert-dialog.d.ts +44 -0
- package/dist/alert-dialog/alert-dialog.d.ts.map +1 -0
- package/dist/alert-dialog/alert-dialog.js +46 -0
- package/dist/alert-dialog/alert-dialog.js.map +1 -0
- package/dist/alert-dialog/alert-dialog.module.css.d.ts +2 -0
- package/dist/alert-dialog/alert-dialog.module.js +14 -0
- package/dist/alert-dialog/alert-dialog.module.js.map +1 -0
- package/dist/alert-dialog/index.d.ts +3 -0
- package/dist/alert-dialog/index.js +4 -0
- package/dist/alert-dialog/parts.d.ts +28 -0
- package/dist/alert-dialog/parts.d.ts.map +1 -0
- package/dist/alert-dialog/parts.js +62 -0
- package/dist/alert-dialog/parts.js.map +1 -0
- package/dist/badge/badge.css +3 -7
- package/dist/badge/badge.module.js.map +1 -1
- package/dist/button/button.css +14 -14
- package/dist/button/button.module.js.map +1 -1
- package/dist/card/card.css +5 -9
- package/dist/card/card.module.js.map +1 -1
- package/dist/checkbox/checkbox.css +3 -7
- package/dist/checkbox/checkbox.module.js.map +1 -1
- package/dist/collapsible/collapsible.css +7 -11
- package/dist/collapsible/collapsible.module.js.map +1 -1
- package/dist/context-menu/context-menu.css +151 -0
- package/dist/context-menu/context-menu.d.ts +36 -0
- package/dist/context-menu/context-menu.d.ts.map +1 -0
- package/dist/context-menu/context-menu.js +54 -0
- package/dist/context-menu/context-menu.js.map +1 -0
- package/dist/context-menu/context-menu.module.css.d.ts +2 -0
- package/dist/context-menu/context-menu.module.js +18 -0
- package/dist/context-menu/context-menu.module.js.map +1 -0
- package/dist/context-menu/index.d.ts +3 -0
- package/dist/context-menu/index.js +4 -0
- package/dist/context-menu/parts.d.ts +38 -0
- package/dist/context-menu/parts.d.ts.map +1 -0
- package/dist/context-menu/parts.js +91 -0
- package/dist/context-menu/parts.js.map +1 -0
- package/dist/dialog/dialog.css +27 -22
- package/dist/dialog/dialog.d.ts +8 -0
- package/dist/dialog/dialog.d.ts.map +1 -1
- package/dist/dialog/dialog.js +7 -4
- package/dist/dialog/dialog.js.map +1 -1
- package/dist/dialog/dialog.module.js +2 -0
- package/dist/dialog/dialog.module.js.map +1 -1
- package/dist/drawer/drawer.css +9 -13
- package/dist/drawer/drawer.module.js.map +1 -1
- package/dist/index.css +1630 -1353
- package/dist/index.d.ts +24 -18
- package/dist/index.js +10 -1
- package/dist/input/input.css +5 -9
- package/dist/input/input.module.js.map +1 -1
- package/dist/layer-order.css +22 -0
- package/dist/menu/menu.css +13 -17
- package/dist/menu/menu.module.js.map +1 -1
- package/dist/number-field/number-field.css +12 -16
- package/dist/number-field/number-field.module.js.map +1 -1
- package/dist/progress/progress.css +1 -5
- package/dist/progress/progress.module.js.map +1 -1
- package/dist/reset.css +6 -6
- package/dist/select/select.css +14 -16
- package/dist/select/select.d.ts +5 -2
- package/dist/select/select.d.ts.map +1 -1
- package/dist/select/select.js +11 -2
- package/dist/select/select.js.map +1 -1
- package/dist/select/select.module.js.map +1 -1
- package/dist/separator/separator.css +1 -5
- package/dist/separator/separator.module.js.map +1 -1
- package/dist/slider/index.d.ts +3 -0
- package/dist/slider/index.js +4 -0
- package/dist/slider/parts.d.ts +38 -0
- package/dist/slider/parts.d.ts.map +1 -0
- package/dist/slider/parts.js +69 -0
- package/dist/slider/parts.js.map +1 -0
- package/dist/slider/slider.css +97 -0
- package/dist/slider/slider.d.ts +38 -0
- package/dist/slider/slider.d.ts.map +1 -0
- package/dist/slider/slider.js +41 -0
- package/dist/slider/slider.js.map +1 -0
- package/dist/slider/slider.module.css.d.ts +2 -0
- package/dist/slider/slider.module.js +15 -0
- package/dist/slider/slider.module.js.map +1 -0
- package/dist/styles/reset.css +6 -6
- package/dist/styles/tokens.css +73 -71
- package/dist/switch/switch.css +2 -6
- package/dist/switch/switch.module.js.map +1 -1
- package/dist/tabs/tabs.css +5 -9
- package/dist/tabs/tabs.module.js.map +1 -1
- package/dist/tailwind-theme.css +23 -23
- package/dist/toast/toast.css +11 -15
- package/dist/toast/toast.module.js.map +1 -1
- package/dist/tokens.css +79 -75
- package/dist/tooltip/tooltip.css +7 -11
- package/dist/tooltip/tooltip.module.js.map +1 -1
- package/package.json +17 -1
- package/src/accordion/accordion.module.css +6 -20
- package/src/alert-dialog/alert-dialog.module.css +91 -0
- package/src/alert-dialog/alert-dialog.tsx +69 -0
- package/src/alert-dialog/index.ts +7 -0
- package/src/alert-dialog/parts.tsx +73 -0
- package/src/badge/badge.module.css +3 -13
- package/src/button/button.module.css +15 -51
- package/src/card/card.module.css +5 -16
- package/src/checkbox/checkbox.module.css +3 -14
- package/src/collapsible/collapsible.module.css +7 -20
- package/src/context-menu/context-menu.module.css +168 -0
- package/src/context-menu/context-menu.tsx +75 -0
- package/src/context-menu/index.ts +21 -0
- package/src/context-menu/parts.tsx +99 -0
- package/src/dialog/dialog.module.css +26 -33
- package/src/dialog/dialog.tsx +14 -1
- package/src/drawer/drawer.module.css +9 -58
- package/src/index.ts +48 -0
- package/src/input/input.module.css +5 -21
- package/src/menu/menu.module.css +13 -43
- package/src/number-field/number-field.module.css +12 -28
- package/src/progress/progress.module.css +1 -10
- package/src/select/select.module.css +14 -35
- package/src/select/select.tsx +14 -5
- package/src/separator/separator.module.css +1 -5
- package/src/slider/index.ts +14 -0
- package/src/slider/parts.tsx +90 -0
- package/src/slider/slider.module.css +110 -0
- package/src/slider/slider.tsx +68 -0
- package/src/styles/layer-order.css +22 -0
- package/src/styles/reset.css +6 -6
- package/src/styles/tailwind-theme.css +23 -23
- package/src/styles/tokens.css +79 -75
- package/src/switch/switch.module.css +2 -12
- package/src/tabs/tabs.module.css +5 -18
- package/src/toast/toast.module.css +11 -51
- package/src/tooltip/tooltip.module.css +7 -18
package/dist/select/select.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import select_module_default from "./select.module.js";
|
|
2
|
+
import { useMemo } from "react";
|
|
2
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
4
|
import { Select } from "@base-ui/react/select";
|
|
4
5
|
//#region src/select/select.tsx
|
|
@@ -44,15 +45,23 @@ function SelectItem({ option }) {
|
|
|
44
45
|
})]
|
|
45
46
|
});
|
|
46
47
|
}
|
|
47
|
-
function Select$1({ placeholder = "Select…", options, groups, className, onValueChange, ...props }) {
|
|
48
|
+
function Select$1({ placeholder = "Select…", options, groups, className, onValueChange, value, defaultValue, ...props }) {
|
|
49
|
+
const allOptions = useMemo(() => [...options ?? [], ...groups?.flatMap((g) => g.options) ?? []], [options, groups]);
|
|
48
50
|
return /* @__PURE__ */ jsxs(Select.Root, {
|
|
49
51
|
onValueChange,
|
|
52
|
+
value,
|
|
53
|
+
defaultValue,
|
|
50
54
|
...props,
|
|
51
55
|
children: [/* @__PURE__ */ jsxs(Select.Trigger, {
|
|
52
56
|
className: `${select_module_default.trigger} ${className ?? ""}`,
|
|
53
57
|
children: [/* @__PURE__ */ jsx(Select.Value, {
|
|
54
58
|
className: select_module_default["trigger-value"],
|
|
55
|
-
placeholder
|
|
59
|
+
placeholder,
|
|
60
|
+
children: (currentValue) => {
|
|
61
|
+
if (!currentValue) return placeholder;
|
|
62
|
+
const match = allOptions.find((o) => o.value === currentValue);
|
|
63
|
+
return match ? match.label : currentValue;
|
|
64
|
+
}
|
|
56
65
|
}), /* @__PURE__ */ jsx("span", {
|
|
57
66
|
className: select_module_default["trigger-icon"],
|
|
58
67
|
children: /* @__PURE__ */ jsx(ChevronIcon, {})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","names":["BaseSelect","styles","Select"],"sources":["../../src/select/select.tsx"],"sourcesContent":["import { Select as BaseSelect } from \"@base-ui/react/select\";\nimport styles from \"./select.module.css\";\n\nexport interface SelectOption {\n value: string;\n label:
|
|
1
|
+
{"version":3,"file":"select.js","names":["BaseSelect","styles","Select"],"sources":["../../src/select/select.tsx"],"sourcesContent":["import { useMemo, type ReactNode } from \"react\";\nimport { Select as BaseSelect } from \"@base-ui/react/select\";\nimport styles from \"./select.module.css\";\n\nexport interface SelectOption {\n value: string;\n label: ReactNode;\n disabled?: boolean;\n}\n\nexport interface SelectGroup {\n label?: ReactNode;\n options: SelectOption[];\n}\n\nexport interface SelectProps {\n value?: string;\n defaultValue?: string;\n /** `eventDetails` is the base-ui event details object. Value may be null when cleared. */\n onValueChange?: (value: string | null, eventDetails: unknown) => void;\n disabled?: boolean;\n required?: boolean;\n name?: string;\n placeholder?: string;\n options?: SelectOption[];\n groups?: SelectGroup[];\n className?: string;\n id?: string;\n}\n\nfunction ChevronIcon() {\n return (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M2.5 4.5L6 8L9.5 4.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n}\n\nfunction CheckIcon() {\n return (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\n <path d=\"M2 6L4.5 8.5L10 3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n}\n\nfunction SelectItem({ option }: { option: SelectOption }) {\n return (\n <BaseSelect.Item className={styles.item} value={option.value} disabled={option.disabled}>\n <BaseSelect.ItemText>{option.label}</BaseSelect.ItemText>\n <BaseSelect.ItemIndicator className={styles[\"item-indicator\"]}>\n <CheckIcon />\n </BaseSelect.ItemIndicator>\n </BaseSelect.Item>\n );\n}\n\nexport function Select({ placeholder = \"Select…\", options, groups, className, onValueChange, value, defaultValue, ...props }: SelectProps) {\n const allOptions = useMemo(() => [...(options ?? []), ...(groups?.flatMap((g) => g.options) ?? [])], [options, groups]);\n\n return (\n <BaseSelect.Root onValueChange={onValueChange as never} value={value} defaultValue={defaultValue} {...props}>\n <BaseSelect.Trigger className={`${styles.trigger} ${className ?? \"\"}`}>\n <BaseSelect.Value className={styles[\"trigger-value\"]} placeholder={placeholder}>\n {(currentValue: string | null) => {\n if (!currentValue) return placeholder;\n const match = allOptions.find((o) => o.value === currentValue);\n return match ? match.label : currentValue;\n }}\n </BaseSelect.Value>\n <span className={styles[\"trigger-icon\"]}>\n <ChevronIcon />\n </span>\n </BaseSelect.Trigger>\n <BaseSelect.Portal>\n <BaseSelect.Positioner className={styles.positioner} sideOffset={4}>\n <BaseSelect.Popup className={styles.popup}>\n <BaseSelect.List>\n {options?.map((opt) => (\n <SelectItem key={opt.value} option={opt} />\n ))}\n {groups?.map((group, i) => (\n <BaseSelect.Group key={i}>\n {group.label && <BaseSelect.GroupLabel className={styles[\"group-label\"]}>{group.label}</BaseSelect.GroupLabel>}\n {group.options.map((opt) => (\n <SelectItem key={opt.value} option={opt} />\n ))}\n {i < (groups?.length ?? 0) - 1 && <BaseSelect.Separator className={styles.separator} />}\n </BaseSelect.Group>\n ))}\n </BaseSelect.List>\n </BaseSelect.Popup>\n </BaseSelect.Positioner>\n </BaseSelect.Portal>\n </BaseSelect.Root>\n );\n}\nexport { styles as SelectStyles };\n"],"mappings":";;;;;AA8BA,SAAS,cAAc;AACrB,QACE,oBAAC,OAAD;EAAK,OAAM;EAAK,QAAO;EAAK,SAAQ;EAAY,MAAK;EAAO,OAAM;YAChE,oBAAC,QAAD;GAAM,GAAE;GAAuB,QAAO;GAAe,aAAY;GAAM,eAAc;GAAQ,gBAAe;GAAU,CAAA;EAClH,CAAA;;AAIV,SAAS,YAAY;AACnB,QACE,oBAAC,OAAD;EAAK,OAAM;EAAK,QAAO;EAAK,SAAQ;EAAY,MAAK;YACnD,oBAAC,QAAD;GAAM,GAAE;GAAoB,QAAO;GAAe,aAAY;GAAM,eAAc;GAAQ,gBAAe;GAAU,CAAA;EAC/G,CAAA;;AAIV,SAAS,WAAW,EAAE,UAAoC;AACxD,QACE,qBAACA,OAAW,MAAZ;EAAiB,WAAWC,sBAAO;EAAM,OAAO,OAAO;EAAO,UAAU,OAAO;YAA/E,CACE,oBAACD,OAAW,UAAZ,EAAA,UAAsB,OAAO,OAA4B,CAAA,EACzD,oBAACA,OAAW,eAAZ;GAA0B,WAAWC,sBAAO;aAC1C,oBAAC,WAAD,EAAa,CAAA;GACY,CAAA,CACX;;;AAItB,SAAgBC,SAAO,EAAE,cAAc,WAAW,SAAS,QAAQ,WAAW,eAAe,OAAO,cAAc,GAAG,SAAsB;CACzI,MAAM,aAAa,cAAc,CAAC,GAAI,WAAW,EAAE,EAAG,GAAI,QAAQ,SAAS,MAAM,EAAE,QAAQ,IAAI,EAAE,CAAE,EAAE,CAAC,SAAS,OAAO,CAAC;AAEvH,QACE,qBAACF,OAAW,MAAZ;EAAgC;EAA+B;EAAqB;EAAc,GAAI;YAAtG,CACE,qBAACA,OAAW,SAAZ;GAAoB,WAAW,GAAGC,sBAAO,QAAQ,GAAG,aAAa;aAAjE,CACE,oBAACD,OAAW,OAAZ;IAAkB,WAAWC,sBAAO;IAA+B;eAC/D,iBAAgC;AAChC,SAAI,CAAC,aAAc,QAAO;KAC1B,MAAM,QAAQ,WAAW,MAAM,MAAM,EAAE,UAAU,aAAa;AAC9D,YAAO,QAAQ,MAAM,QAAQ;;IAEd,CAAA,EACnB,oBAAC,QAAD;IAAM,WAAWA,sBAAO;cACtB,oBAAC,aAAD,EAAe,CAAA;IACV,CAAA,CACY;MACrB,oBAACD,OAAW,QAAZ,EAAA,UACE,oBAACA,OAAW,YAAZ;GAAuB,WAAWC,sBAAO;GAAY,YAAY;aAC/D,oBAACD,OAAW,OAAZ;IAAkB,WAAWC,sBAAO;cAClC,qBAACD,OAAW,MAAZ,EAAA,UAAA,CACG,SAAS,KAAK,QACb,oBAAC,YAAD,EAA4B,QAAQ,KAAO,EAA1B,IAAI,MAAsB,CAC3C,EACD,QAAQ,KAAK,OAAO,MACnB,qBAACA,OAAW,OAAZ,EAAA,UAAA;KACG,MAAM,SAAS,oBAACA,OAAW,YAAZ;MAAuB,WAAWC,sBAAO;gBAAiB,MAAM;MAA8B,CAAA;KAC7G,MAAM,QAAQ,KAAK,QAClB,oBAAC,YAAD,EAA4B,QAAQ,KAAO,EAA1B,IAAI,MAAsB,CAC3C;KACD,KAAK,QAAQ,UAAU,KAAK,KAAK,oBAACD,OAAW,WAAZ,EAAsB,WAAWC,sBAAO,WAAa,CAAA;KACtE,EAAA,EANI,EAMJ,CACnB,CACc,EAAA,CAAA;IACD,CAAA;GACG,CAAA,EACN,CAAA,CACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.module.js","names":[],"sources":["../../src/select/select.module.css"],"sourcesContent":["@layer
|
|
1
|
+
{"version":3,"file":"select.module.js","names":[],"sources":["../../src/select/select.module.css"],"sourcesContent":["@layer components {\n .trigger {\n display: inline-flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--space-2);\n width: 100%;\n font-family: var(--font-mono);\n font-size: var(--font-size-sm);\n color: var(--color-primary);\n background-color: var(--color-surface-1);\n border: var(--border-width-base) solid var(--color-line);\n border-radius: var(--radius-md);\n cursor: pointer;\n outline: none;\n transition:\n border-color var(--duration-fast) var(--easing-standard),\n box-shadow var(--duration-fast) var(--easing-standard);\n appearance: none;\n -webkit-appearance: none;\n height: 30px;\n padding-inline: var(--space-2-5);\n text-align: left;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n .trigger:hover:not([data-disabled]) {\n border-color: var(--color-line-strong);\n }\n .trigger:focus-visible {\n border-color: var(--color-accent);\n box-shadow: var(--shadow-focus);\n }\n .trigger[data-disabled] {\n opacity: 0.44;\n cursor: not-allowed;\n }\n .trigger-value {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n .trigger-icon {\n flex-shrink: 0;\n color: var(--color-tertiary);\n transition: transform var(--duration-normal) var(--easing-standard);\n }\n .trigger[data-popup-open] .trigger-icon {\n transform: rotate(180deg);\n }\n /* ─── Popup / Listbox ───────────────────────────────── */\n .positioner {\n z-index: var(--z-dropdown);\n }\n .popup {\n background-color: var(--color-overlay);\n border: var(--border-width-base) solid var(--color-line);\n border-radius: var(--radius-lg);\n box-shadow: var(--shadow-popover);\n padding: var(--space-1);\n min-width: var(--anchor-width);\n max-width: var(--available-width);\n width: fit-content;\n max-height: 280px;\n overflow-y: auto;\n outline: none;\n transform-origin: var(--transform-origin);\n transition:\n opacity 150ms var(--easing-ease-out),\n transform 150ms var(--easing-ease-out);\n }\n .popup[data-starting-style] {\n opacity: 0;\n transform: scale(0.95);\n }\n .popup[data-ending-style] {\n opacity: 0;\n transform: scale(0.98);\n transition:\n opacity 75ms var(--easing-ease-in),\n transform 75ms var(--easing-ease-in);\n }\n /* Backdrop blur for macOS feel */\n @supports (backdrop-filter: blur(12px)) {\n .popup {\n backdrop-filter: blur(12px) saturate(1.5);\n -webkit-backdrop-filter: blur(12px) saturate(1.5);\n }\n }\n .item {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-1-5) var(--space-2-5);\n font-family: var(--font-mono);\n font-size: var(--font-size-sm);\n color: var(--color-primary);\n border-radius: var(--radius-sm);\n cursor: default;\n outline: none;\n transition: background-color var(--duration-fast) var(--easing-standard);\n user-select: none;\n }\n .item:hover,\n .item[data-highlighted] {\n background-color: var(--color-accent);\n color: var(--color-on-accent);\n }\n .item[data-selected] {\n font-weight: var(--font-weight-medium);\n }\n .item[data-disabled] {\n opacity: 0.44;\n cursor: not-allowed;\n }\n .item-indicator {\n margin-left: auto;\n color: var(--color-accent);\n display: flex;\n align-items: center;\n }\n .item:hover .item-indicator,\n .item[data-highlighted] .item-indicator {\n color: var(--color-on-accent);\n }\n .group-label {\n padding: var(--space-1) var(--space-2-5);\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-semibold);\n color: var(--color-tertiary);\n letter-spacing: var(--letter-spacing-wider);\n text-transform: uppercase;\n }\n .separator {\n height: var(--border-width-base);\n background-color: var(--color-line-subtle);\n margin: var(--space-1) 0;\n }\n /* List container — wraps items inside the popup */\n .list {\n display: flex;\n flex-direction: column;\n gap: 0;\n }\n}\n"],"mappings":";AAoBA,IAAA,wBAAY;CAAI,eAAA;CAAA,QAAA;CAAA,kBAAA;CAAA,QAAA;CAAA,SAAA;CAAA,cAAA;CAAA,aAAA;CAAA,WAAA;CAAA,gBAAA;CAAA,iBAAA;CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"separator.module.js","names":[],"sources":["../../src/separator/separator.module.css"],"sourcesContent":["@layer
|
|
1
|
+
{"version":3,"file":"separator.module.js","names":[],"sources":["../../src/separator/separator.module.css"],"sourcesContent":["@layer components {\n .separator {\n background-color: var(--color-line);\n flex-shrink: 0;\n }\n .separator[data-orientation=\"horizontal\"] {\n width: 100%;\n height: var(--border-width-base, 1px);\n }\n .separator[data-orientation=\"vertical\"] {\n width: var(--border-width-base, 1px);\n align-self: stretch;\n }\n}\n"],"mappings":";AAEA,IAAA,2BAAe,EAAA,aAAa,oBAAW"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Slider, SliderProps, styles } from "./slider.js";
|
|
2
|
+
import { SliderControl, SliderControlProps, SliderIndicator, SliderIndicatorProps, SliderLabel, SliderLabelProps, SliderThumb, SliderThumbProps, SliderTrack, SliderTrackProps, SliderValue, SliderValueProps } from "./parts.js";
|
|
3
|
+
export { Slider, SliderControl, type SliderControlProps, SliderIndicator, type SliderIndicatorProps, SliderLabel, type SliderLabelProps, type SliderProps, styles as SliderStyles, SliderThumb, type SliderThumbProps, SliderTrack, type SliderTrackProps, SliderValue, type SliderValueProps };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import slider_module_default from "./slider.module.js";
|
|
2
|
+
import { Slider } from "./slider.js";
|
|
3
|
+
import { SliderControl, SliderIndicator, SliderLabel, SliderThumb, SliderTrack, SliderValue } from "./parts.js";
|
|
4
|
+
export { Slider, SliderControl, SliderIndicator, SliderLabel, slider_module_default as SliderStyles, SliderThumb, SliderTrack, SliderValue };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as react from "react";
|
|
2
|
+
import { ComponentPropsWithoutRef } from "react";
|
|
3
|
+
import { Slider } from "@base-ui/react/slider";
|
|
4
|
+
|
|
5
|
+
//#region src/slider/parts.d.ts
|
|
6
|
+
type BaseControlProps = ComponentPropsWithoutRef<typeof Slider.Control>;
|
|
7
|
+
type BaseTrackProps = ComponentPropsWithoutRef<typeof Slider.Track>;
|
|
8
|
+
type BaseIndicatorProps = ComponentPropsWithoutRef<typeof Slider.Indicator>;
|
|
9
|
+
type BaseThumbProps = ComponentPropsWithoutRef<typeof Slider.Thumb>;
|
|
10
|
+
type BaseLabelProps = ComponentPropsWithoutRef<typeof Slider.Label>;
|
|
11
|
+
type BaseValueProps = ComponentPropsWithoutRef<typeof Slider.Value>;
|
|
12
|
+
interface SliderControlProps extends Omit<BaseControlProps, "className"> {
|
|
13
|
+
className?: string;
|
|
14
|
+
}
|
|
15
|
+
interface SliderTrackProps extends Omit<BaseTrackProps, "className"> {
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
interface SliderIndicatorProps extends Omit<BaseIndicatorProps, "className"> {
|
|
19
|
+
className?: string;
|
|
20
|
+
}
|
|
21
|
+
interface SliderThumbProps extends Omit<BaseThumbProps, "className"> {
|
|
22
|
+
className?: string;
|
|
23
|
+
}
|
|
24
|
+
interface SliderLabelProps extends Omit<BaseLabelProps, "className"> {
|
|
25
|
+
className?: string;
|
|
26
|
+
}
|
|
27
|
+
interface SliderValueProps extends Omit<BaseValueProps, "className"> {
|
|
28
|
+
className?: string;
|
|
29
|
+
}
|
|
30
|
+
declare const SliderControl: react.ForwardRefExoticComponent<SliderControlProps & react.RefAttributes<HTMLDivElement>>;
|
|
31
|
+
declare const SliderTrack: react.ForwardRefExoticComponent<SliderTrackProps & react.RefAttributes<HTMLDivElement>>;
|
|
32
|
+
declare const SliderIndicator: react.ForwardRefExoticComponent<SliderIndicatorProps & react.RefAttributes<HTMLDivElement>>;
|
|
33
|
+
declare const SliderThumb: react.ForwardRefExoticComponent<SliderThumbProps & react.RefAttributes<HTMLDivElement>>;
|
|
34
|
+
declare const SliderLabel: react.ForwardRefExoticComponent<SliderLabelProps & react.RefAttributes<HTMLDivElement>>;
|
|
35
|
+
declare const SliderValue: react.ForwardRefExoticComponent<SliderValueProps & react.RefAttributes<HTMLOutputElement>>;
|
|
36
|
+
//#endregion
|
|
37
|
+
export { SliderControl, SliderControlProps, SliderIndicator, SliderIndicatorProps, SliderLabel, SliderLabelProps, SliderThumb, SliderThumbProps, SliderTrack, SliderTrackProps, SliderValue, SliderValueProps };
|
|
38
|
+
//# sourceMappingURL=parts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.d.ts","names":[],"sources":["../../src/slider/parts.tsx"],"mappings":";;;;;KAuBK,gBAAA,GAAmB,wBAAA,QAAgC,MAAA,CAAW,OAAA;AAAA,KAC9D,cAAA,GAAiB,wBAAA,QAAgC,MAAA,CAAW,KAAA;AAAA,KAC5D,kBAAA,GAAqB,wBAAA,QAAgC,MAAA,CAAW,SAAA;AAAA,KAChE,cAAA,GAAiB,wBAAA,QAAgC,MAAA,CAAW,KAAA;AAAA,KAC5D,cAAA,GAAiB,wBAAA,QAAgC,MAAA,CAAW,KAAA;AAAA,KAC5D,cAAA,GAAiB,wBAAA,QAAgC,MAAA,CAAW,KAAA;AAAA,UAEhD,kBAAA,SAA2B,IAAA,CAAK,gBAAA;EAC/C,SAAA;AAAA;AAAA,UAEe,gBAAA,SAAyB,IAAA,CAAK,cAAA;EAC7C,SAAA;AAAA;AAAA,UAEe,oBAAA,SAA6B,IAAA,CAAK,kBAAA;EACjD,SAAA;AAAA;AAAA,UAEe,gBAAA,SAAyB,IAAA,CAAK,cAAA;EAC7C,SAAA;AAAA;AAAA,UAEe,gBAAA,SAAyB,IAAA,CAAK,cAAA;EAC7C,SAAA;AAAA;AAAA,UAEe,gBAAA,SAAyB,IAAA,CAAK,cAAA;EAC7C,SAAA;AAAA;AAAA,cAGW,aAAA,EAAa,KAAA,CAAA,yBAAA,CAAA,kBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAOb,WAAA,EAAW,KAAA,CAAA,yBAAA,CAAA,gBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAOX,eAAA,EAAe,KAAA,CAAA,yBAAA,CAAA,oBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAOf,WAAA,EAAW,KAAA,CAAA,yBAAA,CAAA,gBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAOX,WAAA,EAAW,KAAA,CAAA,yBAAA,CAAA,gBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,cAAA;AAAA,cAOX,WAAA,EAAW,KAAA,CAAA,yBAAA,CAAA,gBAAA,GAAA,KAAA,CAAA,aAAA,CAAA,iBAAA"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import slider_module_default from "./slider.module.js";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { Slider } from "@base-ui/react/slider";
|
|
5
|
+
//#region src/slider/parts.tsx
|
|
6
|
+
/**
|
|
7
|
+
* Styled primitives for Slider.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* import { Slider as BaseSlider } from '@base-ui/react/slider';
|
|
12
|
+
* import { SliderControl, SliderTrack, SliderIndicator, SliderThumb } from '@brijbyte/agentic-ui/slider';
|
|
13
|
+
*
|
|
14
|
+
* <BaseSlider.Root defaultValue={50}>
|
|
15
|
+
* <SliderControl>
|
|
16
|
+
* <SliderTrack>
|
|
17
|
+
* <SliderIndicator />
|
|
18
|
+
* <SliderThumb aria-label="Volume" />
|
|
19
|
+
* </SliderTrack>
|
|
20
|
+
* </SliderControl>
|
|
21
|
+
* </BaseSlider.Root>
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
const SliderControl = forwardRef(function SliderControl({ className, ...props }, ref) {
|
|
25
|
+
return /* @__PURE__ */ jsx(Slider.Control, {
|
|
26
|
+
ref,
|
|
27
|
+
className: `${slider_module_default.control} ${className ?? ""}`,
|
|
28
|
+
...props
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
const SliderTrack = forwardRef(function SliderTrack({ className, ...props }, ref) {
|
|
32
|
+
return /* @__PURE__ */ jsx(Slider.Track, {
|
|
33
|
+
ref,
|
|
34
|
+
className: `${slider_module_default.track} ${className ?? ""}`,
|
|
35
|
+
...props
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
const SliderIndicator = forwardRef(function SliderIndicator({ className, ...props }, ref) {
|
|
39
|
+
return /* @__PURE__ */ jsx(Slider.Indicator, {
|
|
40
|
+
ref,
|
|
41
|
+
className: `${slider_module_default.indicator} ${className ?? ""}`,
|
|
42
|
+
...props
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
const SliderThumb = forwardRef(function SliderThumb({ className, ...props }, ref) {
|
|
46
|
+
return /* @__PURE__ */ jsx(Slider.Thumb, {
|
|
47
|
+
ref,
|
|
48
|
+
className: `${slider_module_default.thumb} ${className ?? ""}`,
|
|
49
|
+
...props
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
const SliderLabel = forwardRef(function SliderLabel({ className, ...props }, ref) {
|
|
53
|
+
return /* @__PURE__ */ jsx(Slider.Label, {
|
|
54
|
+
ref,
|
|
55
|
+
className: `${slider_module_default.label} ${className ?? ""}`,
|
|
56
|
+
...props
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
const SliderValue = forwardRef(function SliderValue({ className, ...props }, ref) {
|
|
60
|
+
return /* @__PURE__ */ jsx(Slider.Value, {
|
|
61
|
+
ref,
|
|
62
|
+
className: `${slider_module_default.value} ${className ?? ""}`,
|
|
63
|
+
...props
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
//#endregion
|
|
67
|
+
export { SliderControl, SliderIndicator, SliderLabel, SliderThumb, SliderTrack, SliderValue };
|
|
68
|
+
|
|
69
|
+
//# sourceMappingURL=parts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.js","names":["BaseSlider","styles"],"sources":["../../src/slider/parts.tsx"],"sourcesContent":["/**\n * Styled primitives for Slider.\n *\n * @example\n * ```tsx\n * import { Slider as BaseSlider } from '@base-ui/react/slider';\n * import { SliderControl, SliderTrack, SliderIndicator, SliderThumb } from '@brijbyte/agentic-ui/slider';\n *\n * <BaseSlider.Root defaultValue={50}>\n * <SliderControl>\n * <SliderTrack>\n * <SliderIndicator />\n * <SliderThumb aria-label=\"Volume\" />\n * </SliderTrack>\n * </SliderControl>\n * </BaseSlider.Root>\n * ```\n */\nimport { forwardRef } from \"react\";\nimport type { ComponentRef, ComponentPropsWithoutRef } from \"react\";\nimport { Slider as BaseSlider } from \"@base-ui/react/slider\";\nimport styles from \"./slider.module.css\";\n\ntype BaseControlProps = ComponentPropsWithoutRef<typeof BaseSlider.Control>;\ntype BaseTrackProps = ComponentPropsWithoutRef<typeof BaseSlider.Track>;\ntype BaseIndicatorProps = ComponentPropsWithoutRef<typeof BaseSlider.Indicator>;\ntype BaseThumbProps = ComponentPropsWithoutRef<typeof BaseSlider.Thumb>;\ntype BaseLabelProps = ComponentPropsWithoutRef<typeof BaseSlider.Label>;\ntype BaseValueProps = ComponentPropsWithoutRef<typeof BaseSlider.Value>;\n\nexport interface SliderControlProps extends Omit<BaseControlProps, \"className\"> {\n className?: string;\n}\nexport interface SliderTrackProps extends Omit<BaseTrackProps, \"className\"> {\n className?: string;\n}\nexport interface SliderIndicatorProps extends Omit<BaseIndicatorProps, \"className\"> {\n className?: string;\n}\nexport interface SliderThumbProps extends Omit<BaseThumbProps, \"className\"> {\n className?: string;\n}\nexport interface SliderLabelProps extends Omit<BaseLabelProps, \"className\"> {\n className?: string;\n}\nexport interface SliderValueProps extends Omit<BaseValueProps, \"className\"> {\n className?: string;\n}\n\nexport const SliderControl = forwardRef<ComponentRef<typeof BaseSlider.Control>, SliderControlProps>(function SliderControl(\n { className, ...props },\n ref,\n) {\n return <BaseSlider.Control ref={ref} className={`${styles.control} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const SliderTrack = forwardRef<ComponentRef<typeof BaseSlider.Track>, SliderTrackProps>(function SliderTrack(\n { className, ...props },\n ref,\n) {\n return <BaseSlider.Track ref={ref} className={`${styles.track} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const SliderIndicator = forwardRef<ComponentRef<typeof BaseSlider.Indicator>, SliderIndicatorProps>(function SliderIndicator(\n { className, ...props },\n ref,\n) {\n return <BaseSlider.Indicator ref={ref} className={`${styles.indicator} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const SliderThumb = forwardRef<ComponentRef<typeof BaseSlider.Thumb>, SliderThumbProps>(function SliderThumb(\n { className, ...props },\n ref,\n) {\n return <BaseSlider.Thumb ref={ref} className={`${styles.thumb} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const SliderLabel = forwardRef<ComponentRef<typeof BaseSlider.Label>, SliderLabelProps>(function SliderLabel(\n { className, ...props },\n ref,\n) {\n return <BaseSlider.Label ref={ref} className={`${styles.label} ${className ?? \"\"}`} {...props} />;\n});\n\nexport const SliderValue = forwardRef<ComponentRef<typeof BaseSlider.Value>, SliderValueProps>(function SliderValue(\n { className, ...props },\n ref,\n) {\n return <BaseSlider.Value ref={ref} className={`${styles.value} ${className ?? \"\"}`} {...props} />;\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAiDA,MAAa,gBAAgB,WAAwE,SAAS,cAC5G,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACA,OAAW,SAAZ;EAAyB;EAAK,WAAW,GAAGC,sBAAO,QAAQ,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EACrG;AAEF,MAAa,cAAc,WAAoE,SAAS,YACtG,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,OAAW,OAAZ;EAAuB;EAAK,WAAW,GAAGC,sBAAO,MAAM,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EACjG;AAEF,MAAa,kBAAkB,WAA4E,SAAS,gBAClH,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,OAAW,WAAZ;EAA2B;EAAK,WAAW,GAAGC,sBAAO,UAAU,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EACzG;AAEF,MAAa,cAAc,WAAoE,SAAS,YACtG,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,OAAW,OAAZ;EAAuB;EAAK,WAAW,GAAGC,sBAAO,MAAM,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EACjG;AAEF,MAAa,cAAc,WAAoE,SAAS,YACtG,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,OAAW,OAAZ;EAAuB;EAAK,WAAW,GAAGC,sBAAO,MAAM,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EACjG;AAEF,MAAa,cAAc,WAAoE,SAAS,YACtG,EAAE,WAAW,GAAG,SAChB,KACA;AACA,QAAO,oBAACD,OAAW,OAAZ;EAAuB;EAAK,WAAW,GAAGC,sBAAO,MAAM,GAAG,aAAa;EAAM,GAAI;EAAS,CAAA;EACjG"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
.root_Lvfi-a {
|
|
3
|
+
gap: var(--space-2);
|
|
4
|
+
flex-direction: column;
|
|
5
|
+
width: 100%;
|
|
6
|
+
display: flex;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.header_Lvfi-a {
|
|
10
|
+
justify-content: space-between;
|
|
11
|
+
align-items: center;
|
|
12
|
+
gap: var(--space-2);
|
|
13
|
+
display: flex;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.label_Lvfi-a {
|
|
17
|
+
font-family: var(--font-mono);
|
|
18
|
+
font-size: var(--font-size-xs);
|
|
19
|
+
font-weight: var(--font-weight-medium);
|
|
20
|
+
color: var(--color-secondary);
|
|
21
|
+
letter-spacing: var(--letter-spacing-wide);
|
|
22
|
+
text-transform: uppercase;
|
|
23
|
+
user-select: none;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.value_Lvfi-a {
|
|
27
|
+
font-family: var(--font-mono);
|
|
28
|
+
font-size: var(--font-size-xs);
|
|
29
|
+
color: var(--color-tertiary);
|
|
30
|
+
font-variant-numeric: tabular-nums;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.control_Lvfi-a {
|
|
34
|
+
width: 100%;
|
|
35
|
+
padding-block: var(--space-2);
|
|
36
|
+
touch-action: none;
|
|
37
|
+
user-select: none;
|
|
38
|
+
cursor: pointer;
|
|
39
|
+
align-items: center;
|
|
40
|
+
display: flex;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.control_Lvfi-a[data-disabled] {
|
|
44
|
+
opacity: .44;
|
|
45
|
+
cursor: not-allowed;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.track_Lvfi-a {
|
|
49
|
+
border-radius: var(--radius-full);
|
|
50
|
+
background-color: var(--color-surface-3);
|
|
51
|
+
border: var(--border-width-base) solid var(--color-line-subtle);
|
|
52
|
+
user-select: none;
|
|
53
|
+
width: 100%;
|
|
54
|
+
height: 4px;
|
|
55
|
+
position: relative;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.indicator_Lvfi-a {
|
|
59
|
+
border-radius: var(--radius-full);
|
|
60
|
+
background-color: var(--color-accent);
|
|
61
|
+
user-select: none;
|
|
62
|
+
transition: background-color var(--duration-fast) var(--easing-standard);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.root_Lvfi-a[data-disabled] .indicator_Lvfi-a {
|
|
66
|
+
background-color: var(--color-tertiary);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.thumb_Lvfi-a {
|
|
70
|
+
border-radius: var(--radius-full);
|
|
71
|
+
background-color: var(--color-elevated);
|
|
72
|
+
border: var(--border-width-base) solid var(--color-line);
|
|
73
|
+
width: 16px;
|
|
74
|
+
height: 16px;
|
|
75
|
+
box-shadow: var(--shadow-sm);
|
|
76
|
+
user-select: none;
|
|
77
|
+
transition: transform var(--duration-fast) var(--easing-spring),
|
|
78
|
+
box-shadow var(--duration-fast) var(--easing-standard),
|
|
79
|
+
border-color var(--duration-fast) var(--easing-standard);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.thumb_Lvfi-a[data-dragging] {
|
|
83
|
+
border-color: var(--color-accent);
|
|
84
|
+
box-shadow: var(--shadow-md);
|
|
85
|
+
transform: scale(1.2);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.thumb_Lvfi-a:has(:focus-visible) {
|
|
89
|
+
border-color: var(--color-accent);
|
|
90
|
+
box-shadow: var(--shadow-focus);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.thumb_Lvfi-a[data-disabled] {
|
|
94
|
+
cursor: not-allowed;
|
|
95
|
+
background-color: var(--color-surface-3);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
import styles from "./slider.module.css";
|
|
4
|
+
|
|
5
|
+
//#region src/slider/slider.d.ts
|
|
6
|
+
interface SliderProps {
|
|
7
|
+
value?: number | number[];
|
|
8
|
+
defaultValue?: number | number[];
|
|
9
|
+
onValueChange?: (value: number | number[], eventDetails: unknown) => void;
|
|
10
|
+
onValueCommitted?: (value: number | number[], eventDetails: unknown) => void;
|
|
11
|
+
min?: number;
|
|
12
|
+
max?: number;
|
|
13
|
+
step?: number;
|
|
14
|
+
largeStep?: number;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
name?: string;
|
|
17
|
+
orientation?: "horizontal" | "vertical";
|
|
18
|
+
format?: Intl.NumberFormatOptions;
|
|
19
|
+
/** Visible label rendered above the track. */
|
|
20
|
+
label?: ReactNode;
|
|
21
|
+
/** Show the current value next to the label. */
|
|
22
|
+
showValue?: boolean;
|
|
23
|
+
/** Aria-label for single-thumb sliders without a visible label. */
|
|
24
|
+
"aria-label"?: string;
|
|
25
|
+
className?: string;
|
|
26
|
+
}
|
|
27
|
+
declare function Slider({
|
|
28
|
+
label,
|
|
29
|
+
showValue,
|
|
30
|
+
className,
|
|
31
|
+
onValueChange,
|
|
32
|
+
onValueCommitted,
|
|
33
|
+
"aria-label": ariaLabel,
|
|
34
|
+
...props
|
|
35
|
+
}: SliderProps): react_jsx_runtime0.JSX.Element;
|
|
36
|
+
//#endregion
|
|
37
|
+
export { Slider, SliderProps, styles };
|
|
38
|
+
//# sourceMappingURL=slider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider.d.ts","names":[],"sources":["../../src/slider/slider.tsx"],"mappings":";;;;;UAIiB,WAAA;EACf,KAAA;EACA,YAAA;EACA,aAAA,IAAiB,KAAA,qBAA0B,YAAA;EAC3C,gBAAA,IAAoB,KAAA,qBAA0B,YAAA;EAC9C,GAAA;EACA,GAAA;EACA,IAAA;EACA,SAAA;EACA,QAAA;EACA,IAAA;EACA,WAAA;EACA,MAAA,GAAS,IAAA,CAAK,mBAAA;EARM;EAUpB,KAAA,GAAQ,SAAA;EATR;EAWA,SAAA;EATA;EAWA,YAAA;EACA,SAAA;AAAA;AAAA,iBAGc,MAAA,CAAA;EACd,KAAA;EACA,SAAA;EACA,SAAA;EACA,aAAA;EACA,gBAAA;EAAA,cACc,SAAA;EAAA,GACX;AAAA,GACF,WAAA,GAAW,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import slider_module_default from "./slider.module.js";
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Slider } from "@base-ui/react/slider";
|
|
4
|
+
//#region src/slider/slider.tsx
|
|
5
|
+
function Slider$1({ label, showValue = false, className, onValueChange, onValueCommitted, "aria-label": ariaLabel, ...props }) {
|
|
6
|
+
const isRange = Array.isArray(props.defaultValue ?? props.value);
|
|
7
|
+
return /* @__PURE__ */ jsxs(Slider.Root, {
|
|
8
|
+
className: `${slider_module_default.root} ${className ?? ""}`,
|
|
9
|
+
onValueChange,
|
|
10
|
+
onValueCommitted,
|
|
11
|
+
...props,
|
|
12
|
+
children: [(label || showValue) && /* @__PURE__ */ jsxs("div", {
|
|
13
|
+
className: slider_module_default.header,
|
|
14
|
+
children: [label && /* @__PURE__ */ jsx(Slider.Label, {
|
|
15
|
+
className: slider_module_default.label,
|
|
16
|
+
children: label
|
|
17
|
+
}), showValue && /* @__PURE__ */ jsx(Slider.Value, { className: slider_module_default.value })]
|
|
18
|
+
}), /* @__PURE__ */ jsx(Slider.Control, {
|
|
19
|
+
className: slider_module_default.control,
|
|
20
|
+
children: /* @__PURE__ */ jsxs(Slider.Track, {
|
|
21
|
+
className: slider_module_default.track,
|
|
22
|
+
children: [/* @__PURE__ */ jsx(Slider.Indicator, { className: slider_module_default.indicator }), isRange ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Slider.Thumb, {
|
|
23
|
+
index: 0,
|
|
24
|
+
className: slider_module_default.thumb,
|
|
25
|
+
"aria-label": "Minimum value"
|
|
26
|
+
}), /* @__PURE__ */ jsx(Slider.Thumb, {
|
|
27
|
+
index: 1,
|
|
28
|
+
className: slider_module_default.thumb,
|
|
29
|
+
"aria-label": "Maximum value"
|
|
30
|
+
})] }) : /* @__PURE__ */ jsx(Slider.Thumb, {
|
|
31
|
+
className: slider_module_default.thumb,
|
|
32
|
+
"aria-label": ariaLabel
|
|
33
|
+
})]
|
|
34
|
+
})
|
|
35
|
+
})]
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
export { Slider$1 as Slider };
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=slider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider.js","names":["Slider","BaseSlider","styles"],"sources":["../../src/slider/slider.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { Slider as BaseSlider } from \"@base-ui/react/slider\";\nimport styles from \"./slider.module.css\";\n\nexport interface SliderProps {\n value?: number | number[];\n defaultValue?: number | number[];\n onValueChange?: (value: number | number[], eventDetails: unknown) => void;\n onValueCommitted?: (value: number | number[], eventDetails: unknown) => void;\n min?: number;\n max?: number;\n step?: number;\n largeStep?: number;\n disabled?: boolean;\n name?: string;\n orientation?: \"horizontal\" | \"vertical\";\n format?: Intl.NumberFormatOptions;\n /** Visible label rendered above the track. */\n label?: ReactNode;\n /** Show the current value next to the label. */\n showValue?: boolean;\n /** Aria-label for single-thumb sliders without a visible label. */\n \"aria-label\"?: string;\n className?: string;\n}\n\nexport function Slider({\n label,\n showValue = false,\n className,\n onValueChange,\n onValueCommitted,\n \"aria-label\": ariaLabel,\n ...props\n}: SliderProps) {\n const isRange = Array.isArray(props.defaultValue ?? props.value);\n\n return (\n <BaseSlider.Root\n className={`${styles.root} ${className ?? \"\"}`}\n onValueChange={onValueChange as never}\n onValueCommitted={onValueCommitted as never}\n {...props}\n >\n {(label || showValue) && (\n <div className={styles.header}>\n {label && <BaseSlider.Label className={styles.label}>{label}</BaseSlider.Label>}\n {showValue && <BaseSlider.Value className={styles.value} />}\n </div>\n )}\n <BaseSlider.Control className={styles.control}>\n <BaseSlider.Track className={styles.track}>\n <BaseSlider.Indicator className={styles.indicator} />\n {isRange ? (\n <>\n <BaseSlider.Thumb index={0} className={styles.thumb} aria-label=\"Minimum value\" />\n <BaseSlider.Thumb index={1} className={styles.thumb} aria-label=\"Maximum value\" />\n </>\n ) : (\n <BaseSlider.Thumb className={styles.thumb} aria-label={ariaLabel} />\n )}\n </BaseSlider.Track>\n </BaseSlider.Control>\n </BaseSlider.Root>\n );\n}\n\nexport { styles as SliderStyles };\n"],"mappings":";;;;AA0BA,SAAgBA,SAAO,EACrB,OACA,YAAY,OACZ,WACA,eACA,kBACA,cAAc,WACd,GAAG,SACW;CACd,MAAM,UAAU,MAAM,QAAQ,MAAM,gBAAgB,MAAM,MAAM;AAEhE,QACE,qBAACC,OAAW,MAAZ;EACE,WAAW,GAAGC,sBAAO,KAAK,GAAG,aAAa;EAC3B;EACG;EAClB,GAAI;YAJN,EAMI,SAAS,cACT,qBAAC,OAAD;GAAK,WAAWA,sBAAO;aAAvB,CACG,SAAS,oBAACD,OAAW,OAAZ;IAAkB,WAAWC,sBAAO;cAAQ;IAAyB,CAAA,EAC9E,aAAa,oBAACD,OAAW,OAAZ,EAAkB,WAAWC,sBAAO,OAAS,CAAA,CACvD;MAER,oBAACD,OAAW,SAAZ;GAAoB,WAAWC,sBAAO;aACpC,qBAACD,OAAW,OAAZ;IAAkB,WAAWC,sBAAO;cAApC,CACE,oBAACD,OAAW,WAAZ,EAAsB,WAAWC,sBAAO,WAAa,CAAA,EACpD,UACC,qBAAA,UAAA,EAAA,UAAA,CACE,oBAACD,OAAW,OAAZ;KAAkB,OAAO;KAAG,WAAWC,sBAAO;KAAO,cAAW;KAAkB,CAAA,EAClF,oBAACD,OAAW,OAAZ;KAAkB,OAAO;KAAG,WAAWC,sBAAO;KAAO,cAAW;KAAkB,CAAA,CACjF,EAAA,CAAA,GAEH,oBAACD,OAAW,OAAZ;KAAkB,WAAWC,sBAAO;KAAO,cAAY;KAAa,CAAA,CAErD;;GACA,CAAA,CACL"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/slider/slider.module.css
|
|
2
|
+
var slider_module_default = {
|
|
3
|
+
"control": "control_Lvfi-a",
|
|
4
|
+
"header": "header_Lvfi-a",
|
|
5
|
+
"indicator": "indicator_Lvfi-a",
|
|
6
|
+
"label": "label_Lvfi-a",
|
|
7
|
+
"root": "root_Lvfi-a",
|
|
8
|
+
"thumb": "thumb_Lvfi-a",
|
|
9
|
+
"track": "track_Lvfi-a",
|
|
10
|
+
"value": "value_Lvfi-a"
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
export { slider_module_default as default };
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=slider.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider.module.js","names":[],"sources":["../../src/slider/slider.module.css"],"sourcesContent":["@layer components {\n .root {\n display: flex;\n flex-direction: column;\n gap: var(--space-2);\n width: 100%;\n }\n\n /* ─── Label + Value row ──────────────────────────────────────── */\n\n .header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--space-2);\n }\n\n .label {\n font-family: var(--font-mono);\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-medium);\n color: var(--color-secondary);\n letter-spacing: var(--letter-spacing-wide);\n text-transform: uppercase;\n user-select: none;\n }\n\n .value {\n font-family: var(--font-mono);\n font-size: var(--font-size-xs);\n color: var(--color-tertiary);\n font-variant-numeric: tabular-nums;\n }\n\n /* ─── Control (hit area) ─────────────────────────────────────── */\n\n .control {\n display: flex;\n align-items: center;\n width: 100%;\n padding-block: var(--space-2);\n touch-action: none;\n user-select: none;\n cursor: pointer;\n }\n\n .control[data-disabled] {\n opacity: 0.44;\n cursor: not-allowed;\n }\n\n /* ─── Track ──────────────────────────────────────────────────── */\n\n .track {\n position: relative;\n width: 100%;\n height: 4px;\n border-radius: var(--radius-full);\n background-color: var(--color-surface-3);\n border: var(--border-width-base) solid var(--color-line-subtle);\n user-select: none;\n }\n\n /* ─── Indicator (filled portion) ────────────────────────────── */\n\n .indicator {\n border-radius: var(--radius-full);\n background-color: var(--color-accent);\n user-select: none;\n transition: background-color var(--duration-fast) var(--easing-standard);\n }\n\n .root[data-disabled] .indicator {\n background-color: var(--color-tertiary);\n }\n\n /* ─── Thumb ──────────────────────────────────────────────────── */\n\n .thumb {\n width: 16px;\n height: 16px;\n border-radius: var(--radius-full);\n background-color: var(--color-elevated);\n border: var(--border-width-base) solid var(--color-line);\n box-shadow: var(--shadow-sm);\n user-select: none;\n transition:\n transform var(--duration-fast) var(--easing-spring),\n box-shadow var(--duration-fast) var(--easing-standard),\n border-color var(--duration-fast) var(--easing-standard);\n }\n\n /* Grow on drag — gives tactile feedback */\n .thumb[data-dragging] {\n transform: scale(1.2);\n border-color: var(--color-accent);\n box-shadow: var(--shadow-md);\n }\n\n /* Focus ring via the nested <input> */\n .thumb:has(:focus-visible) {\n border-color: var(--color-accent);\n box-shadow: var(--shadow-focus);\n }\n\n .thumb[data-disabled] {\n cursor: not-allowed;\n background-color: var(--color-surface-3);\n }\n}\n"],"mappings":""}
|
package/dist/styles/reset.css
CHANGED
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
font-family: var(--font-mono);
|
|
20
20
|
font-size: var(--font-size-md);
|
|
21
21
|
line-height: var(--line-height-normal);
|
|
22
|
-
color: var(--color-
|
|
23
|
-
background-color: var(--color-
|
|
22
|
+
color: var(--color-primary);
|
|
23
|
+
background-color: var(--color-canvas);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
img, picture, video, canvas, svg {
|
|
@@ -45,12 +45,12 @@
|
|
|
45
45
|
font-weight: var(--font-weight-semibold);
|
|
46
46
|
line-height: var(--line-height-tight);
|
|
47
47
|
letter-spacing: var(--letter-spacing-tight);
|
|
48
|
-
color: var(--color-
|
|
48
|
+
color: var(--color-primary);
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
* {
|
|
52
52
|
scrollbar-width: thin;
|
|
53
|
-
scrollbar-color: var(--color-
|
|
53
|
+
scrollbar-color: var(--color-thumb) var(--color-track);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
::-webkit-scrollbar {
|
|
@@ -59,11 +59,11 @@
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
::-webkit-scrollbar-thumb {
|
|
62
|
-
background: var(--color-
|
|
62
|
+
background: var(--color-thumb);
|
|
63
63
|
border-radius: var(--radius-full);
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
::-webkit-scrollbar-track {
|
|
67
|
-
background: var(--color-
|
|
67
|
+
background: var(--color-track);
|
|
68
68
|
}
|
|
69
69
|
}
|