@epilot/spark-ui 0.20.2 → 0.20.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/accordion.cjs +5 -5
- package/dist/components/accordion.cjs.map +1 -1
- package/dist/components/alert-dialog.cjs +9 -9
- package/dist/components/alert-dialog.cjs.map +1 -1
- package/dist/components/attachment.cjs +10 -10
- package/dist/components/attachment.cjs.map +1 -1
- package/dist/components/autocomplete.cjs +12 -12
- package/dist/components/autocomplete.cjs.map +1 -1
- package/dist/components/avatar.cjs +2 -2
- package/dist/components/avatar.cjs.map +1 -1
- package/dist/components/avatar.js +1 -1
- package/dist/components/badge.cjs +2 -2
- package/dist/components/badge.cjs.map +1 -1
- package/dist/components/badge.js +2 -2
- package/dist/components/badge.js.map +1 -1
- package/dist/components/bar-chart.cjs +4 -4
- package/dist/components/bar-chart.cjs.map +1 -1
- package/dist/components/bar-chart.js +2 -2
- package/dist/components/bar-chart.js.map +1 -1
- package/dist/components/box.cjs +2 -2
- package/dist/components/box.cjs.map +1 -1
- package/dist/components/box.js +1 -1
- package/dist/components/breadcrumbs.cjs +7 -7
- package/dist/components/breadcrumbs.cjs.map +1 -1
- package/dist/components/bubble.cjs +5 -5
- package/dist/components/bubble.cjs.map +1 -1
- package/dist/components/bubble.d.cts +1 -1
- package/dist/components/bubble.d.ts +1 -1
- package/dist/components/button-group.cjs +5 -5
- package/dist/components/button-group.cjs.map +1 -1
- package/dist/components/button-group.js +1 -1
- package/dist/components/button.cjs +2 -2
- package/dist/components/button.cjs.map +1 -1
- package/dist/components/button.d.cts +2 -2
- package/dist/components/button.d.ts +2 -2
- package/dist/components/button.js +1 -1
- package/dist/components/button.js.map +1 -1
- package/dist/components/calendar.cjs +10 -11
- package/dist/components/calendar.cjs.map +1 -1
- package/dist/components/calendar.js +3 -4
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/callout.cjs +7 -7
- package/dist/components/callout.cjs.map +1 -1
- package/dist/components/callout.d.cts +1 -1
- package/dist/components/callout.d.ts +1 -1
- package/dist/components/card.cjs +16 -16
- package/dist/components/card.cjs.map +1 -1
- package/dist/components/card.js +2 -2
- package/dist/components/card.js.map +1 -1
- package/dist/components/chart.cjs +2 -2
- package/dist/components/chart.cjs.map +1 -1
- package/dist/components/checkbox.cjs +2 -2
- package/dist/components/checkbox.cjs.map +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/circular-gauge.cjs +3 -3
- package/dist/components/circular-gauge.cjs.map +1 -1
- package/dist/components/circular-gauge.js +1 -1
- package/dist/components/circular-gauge.js.map +1 -1
- package/dist/components/day-of-week-picker.cjs +4 -4
- package/dist/components/day-of-week-picker.cjs.map +1 -1
- package/dist/components/dialog.cjs +8 -8
- package/dist/components/dialog.cjs.map +1 -1
- package/dist/components/donut-chart.cjs.map +1 -1
- package/dist/components/donut-chart.js.map +1 -1
- package/dist/components/drawer.cjs +8 -8
- package/dist/components/drawer.cjs.map +1 -1
- package/dist/components/drawer.js +2 -2
- package/dist/components/drawer.js.map +1 -1
- package/dist/components/dropdown-menu.cjs +10 -10
- package/dist/components/dropdown-menu.cjs.map +1 -1
- package/dist/components/energy-breakdown.cjs +1 -1
- package/dist/components/energy-breakdown.cjs.map +1 -1
- package/dist/components/energy-breakdown.js +1 -1
- package/dist/components/energy-breakdown.js.map +1 -1
- package/dist/components/entity-card.cjs +11 -11
- package/dist/components/entity-card.cjs.map +1 -1
- package/dist/components/field.cjs +16 -16
- package/dist/components/field.cjs.map +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/field.js.map +1 -1
- package/dist/components/hero-metric.cjs +4 -4
- package/dist/components/hero-metric.cjs.map +1 -1
- package/dist/components/icon.cjs +6 -6
- package/dist/components/icon.cjs.map +1 -1
- package/dist/components/icon.js +5 -5
- package/dist/components/icon.js.map +1 -1
- package/dist/components/info-block.cjs +9 -9
- package/dist/components/info-block.cjs.map +1 -1
- package/dist/components/input-date.cjs +3 -4
- package/dist/components/input-date.cjs.map +1 -1
- package/dist/components/input-date.d.cts +1 -3
- package/dist/components/input-date.d.ts +1 -3
- package/dist/components/input-date.js +1 -2
- package/dist/components/input-date.js.map +1 -1
- package/dist/components/input-group.cjs +5 -5
- package/dist/components/input-group.cjs.map +1 -1
- package/dist/components/input-otp.cjs +2 -2
- package/dist/components/input-otp.cjs.map +1 -1
- package/dist/components/input.cjs +2 -2
- package/dist/components/input.cjs.map +1 -1
- package/dist/components/label.cjs +2 -2
- package/dist/components/label.cjs.map +1 -1
- package/dist/components/layout.cjs +2 -2
- package/dist/components/layout.cjs.map +1 -1
- package/dist/components/line-chart.cjs +7 -7
- package/dist/components/line-chart.cjs.map +1 -1
- package/dist/components/line-chart.js +5 -5
- package/dist/components/line-chart.js.map +1 -1
- package/dist/components/list.cjs +11 -11
- package/dist/components/list.cjs.map +1 -1
- package/dist/components/list.d.cts +2 -7
- package/dist/components/list.d.ts +2 -7
- package/dist/components/list.js +2 -2
- package/dist/components/list.js.map +1 -1
- package/dist/components/marker.cjs +4 -4
- package/dist/components/marker.cjs.map +1 -1
- package/dist/components/marker.d.cts +1 -1
- package/dist/components/marker.d.ts +1 -1
- package/dist/components/message-scroller.cjs +6 -6
- package/dist/components/message-scroller.cjs.map +1 -1
- package/dist/components/message-scroller.js +2 -2
- package/dist/components/message-scroller.js.map +1 -1
- package/dist/components/message.cjs +7 -7
- package/dist/components/message.cjs.map +1 -1
- package/dist/components/page-header.cjs +5 -5
- package/dist/components/page-header.cjs.map +1 -1
- package/dist/components/period-tabs.cjs +6 -6
- package/dist/components/period-tabs.cjs.map +1 -1
- package/dist/components/pill.cjs +3 -3
- package/dist/components/pill.cjs.map +1 -1
- package/dist/components/pill.js +3 -3
- package/dist/components/pill.js.map +1 -1
- package/dist/components/popover.cjs +2 -2
- package/dist/components/popover.cjs.map +1 -1
- package/dist/components/power-history-chart.cjs +4 -4
- package/dist/components/power-history-chart.cjs.map +1 -1
- package/dist/components/power-history-chart.js +3 -3
- package/dist/components/power-history-chart.js.map +1 -1
- package/dist/components/power-network.cjs +9 -9
- package/dist/components/power-network.cjs.map +1 -1
- package/dist/components/power-network.js +1 -1
- package/dist/components/progress.cjs +3 -3
- package/dist/components/progress.cjs.map +1 -1
- package/dist/components/progress.js +1 -1
- package/dist/components/progress.js.map +1 -1
- package/dist/components/radio-card-group.cjs +3 -3
- package/dist/components/radio-card-group.cjs.map +1 -1
- package/dist/components/radio.cjs +3 -3
- package/dist/components/radio.cjs.map +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/sankey-chart.cjs +4 -4
- package/dist/components/sankey-chart.cjs.map +1 -1
- package/dist/components/sankey-chart.js +2 -2
- package/dist/components/sankey-chart.js.map +1 -1
- package/dist/components/schedule-editor.cjs +9 -9
- package/dist/components/schedule-editor.cjs.map +1 -1
- package/dist/components/schedule-list.cjs +10 -10
- package/dist/components/schedule-list.cjs.map +1 -1
- package/dist/components/scroll-area.cjs +3 -3
- package/dist/components/scroll-area.cjs.map +1 -1
- package/dist/components/segmented-control.cjs +8 -8
- package/dist/components/segmented-control.cjs.map +1 -1
- package/dist/components/segmented-control.d.cts +16 -2
- package/dist/components/segmented-control.d.ts +16 -2
- package/dist/components/segmented-control.js +5 -5
- package/dist/components/segmented-control.js.map +1 -1
- package/dist/components/select.cjs +11 -11
- package/dist/components/select.cjs.map +1 -1
- package/dist/components/separator.cjs +3 -3
- package/dist/components/separator.cjs.map +1 -1
- package/dist/components/series-legend.cjs +4 -4
- package/dist/components/series-legend.cjs.map +1 -1
- package/dist/components/sheet.cjs +8 -8
- package/dist/components/sheet.cjs.map +1 -1
- package/dist/components/skeleton.cjs +3 -3
- package/dist/components/skeleton.cjs.map +1 -1
- package/dist/components/slider.cjs +11 -11
- package/dist/components/slider.cjs.map +1 -1
- package/dist/components/slider.js.map +1 -1
- package/dist/components/solar-forecast-chart.cjs +2 -2
- package/dist/components/solar-forecast-chart.cjs.map +1 -1
- package/dist/components/solar-forecast-chart.js +1 -1
- package/dist/components/sortable-list.cjs +3 -3
- package/dist/components/sortable-list.cjs.map +1 -1
- package/dist/components/spinner.cjs +2 -2
- package/dist/components/spinner.cjs.map +1 -1
- package/dist/components/stat-card.cjs +8 -8
- package/dist/components/stat-card.cjs.map +1 -1
- package/dist/components/stepper.cjs +2 -2
- package/dist/components/stepper.cjs.map +1 -1
- package/dist/components/switch.cjs +3 -3
- package/dist/components/switch.cjs.map +1 -1
- package/dist/components/switch.js +2 -2
- package/dist/components/switch.js.map +1 -1
- package/dist/components/table.cjs +8 -8
- package/dist/components/table.cjs.map +1 -1
- package/dist/components/tabs.cjs +9 -9
- package/dist/components/tabs.cjs.map +1 -1
- package/dist/components/tabs.d.cts +8 -1
- package/dist/components/tabs.d.ts +8 -1
- package/dist/components/tabs.js +2 -2
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/textarea.cjs +2 -2
- package/dist/components/textarea.cjs.map +1 -1
- package/dist/components/theme.cjs +2 -2
- package/dist/components/theme.cjs.map +1 -1
- package/dist/components/theme.js +1 -1
- package/dist/components/thumbnail.cjs +3 -3
- package/dist/components/thumbnail.cjs.map +1 -1
- package/dist/components/time-picker.cjs +3 -3
- package/dist/components/time-picker.cjs.map +1 -1
- package/dist/components/toast.cjs +14 -39
- package/dist/components/toast.cjs.map +1 -1
- package/dist/components/toast.d.cts +2 -15
- package/dist/components/toast.d.ts +2 -15
- package/dist/components/toast.js +7 -32
- package/dist/components/toast.js.map +1 -1
- package/dist/components/tooltip.cjs +3 -3
- package/dist/components/tooltip.cjs.map +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/tooltip.js.map +1 -1
- package/dist/components/typography.cjs +6 -6
- package/dist/components/typography.cjs.map +1 -1
- package/dist/components/wizard-layout.cjs +8 -8
- package/dist/components/wizard-layout.cjs.map +1 -1
- package/dist/lib/generate-radix-colors.cjs +1 -1
- package/dist/lib/generate-radix-colors.cjs.map +1 -1
- package/dist/lib/generate-radix-colors.js +1 -1
- package/dist/lib/generate-radix-colors.js.map +1 -1
- package/dist/lib/input-box-variants.cjs +9 -9
- package/dist/lib/input-box-variants.cjs.map +1 -1
- package/dist/styles/spark-default.css +0 -11
- package/dist/utils/cn.cjs +2 -2
- package/dist/utils/cn.d.cts +1 -1
- package/dist/utils/cn.d.ts +1 -1
- package/dist/utils/cn.js +1 -1
- package/dist/utils/format.cjs +0 -1
- package/dist/utils/format.cjs.map +1 -1
- package/dist/utils/format.d.cts +1 -2
- package/dist/utils/format.d.ts +1 -2
- package/dist/utils/format.js +1 -1
- package/dist/utils/format.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/toggle-group.cjs +0 -40
- package/dist/components/toggle-group.cjs.map +0 -1
- package/dist/components/toggle-group.d.cts +0 -28
- package/dist/components/toggle-group.d.ts +0 -28
- package/dist/components/toggle-group.js +0 -37
- package/dist/components/toggle-group.js.map +0 -1
- package/dist/components/toggle.cjs +0 -69
- package/dist/components/toggle.cjs.map +0 -1
- package/dist/components/toggle.d.cts +0 -23
- package/dist/components/toggle.d.ts +0 -23
- package/dist/components/toggle.js +0 -66
- package/dist/components/toggle.js.map +0 -1
- package/dist/lib/toggle-group-context.cjs +0 -12
- package/dist/lib/toggle-group-context.cjs.map +0 -1
- package/dist/lib/toggle-group-context.d.cts +0 -17
- package/dist/lib/toggle-group-context.d.ts +0 -17
- package/dist/lib/toggle-group-context.js +0 -9
- package/dist/lib/toggle-group-context.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-group.cjs","names":["React","ToggleGroupContext","ToggleGroupPrimitive","accentByColor"],"sources":["../../src/components/toggle-group.tsx"],"sourcesContent":["'use client'\n\nimport { ToggleGroup as ToggleGroupPrimitive } from '@base-ui/react/toggle-group'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport { ToggleGroupContext } from '../lib/toggle-group-context'\nimport { cn } from '../utils/cn'\nimport type { SparkButtonColor } from './button'\nimport type { ToggleProps, ToggleStyle } from './toggle'\n\nexport interface ToggleGroupProps extends Omit<\n React.ComponentProps<typeof ToggleGroupPrimitive>,\n 'ref'\n> {\n /**\n * Pressed look for every item -- unlike ButtonGroup, unpressed items keep\n * the neutral outline, or a neutral fill in a soft group. Each of the three\n * is overridden per item by that item's own prop.\n */\n styleVariant?: ToggleStyle\n color?: SparkButtonColor\n size?: ToggleProps['size']\n /** Default `showCheck` for every item. */\n showCheck?: boolean\n}\n\n/**\n * Children are `Toggle`s with a `value`. Arrow keys move focus between them\n * (roving tabindex); pass `multiple` to let more than one stay pressed.\n */\nconst ToggleGroup = React.forwardRef<HTMLDivElement, ToggleGroupProps>(\n function ToggleGroup(\n { className, styleVariant, color, size, showCheck, ...props },\n ref,\n ) {\n const hasLook = styleVariant !== undefined || color !== undefined\n const look = hasLook ? (styleVariant ?? 'solid') : undefined\n\n return (\n <ToggleGroupContext.Provider\n value={{ styleVariant, color, size, showCheck }}\n >\n <ToggleGroupPrimitive\n data-slot=\"toggle-group\"\n data-style={look}\n data-accent-color={color ? accentByColor[color] : undefined}\n className={cn(\n 'isolate inline-flex *:focus-visible:z-10',\n 'data-[orientation=horizontal]:*:not-first:rounded-l-none data-[orientation=horizontal]:*:not-last:rounded-r-none',\n 'data-[orientation=vertical]:flex-col data-[orientation=vertical]:*:not-first:rounded-t-none data-[orientation=vertical]:*:not-last:rounded-b-none',\n // Soft fills are translucent, so glued neighbours' outlines would\n // frame a pressed item; List's soft rows space out the same way.\n look === 'soft'\n ? 'gap-[calc(var(--spark-layout-gap)*0.5)]'\n : 'data-[orientation=horizontal]:*:not-first:-ml-px data-[orientation=vertical]:*:not-first:-mt-px',\n className,\n )}\n ref={ref}\n {...props}\n />\n </ToggleGroupContext.Provider>\n )\n },\n)\n\nToggleGroup.displayName = 'ToggleGroup'\n\nexport { ToggleGroup }\n"],"mappings":";;;;;;;;;;;;;;;;AA8BA,MAAM,cAAcA,MAAM,WACxB,SAAS,YACP,EAAE,WAAW,cAAc,OAAO,MAAM,WAAW,GAAG,SACtD,KACA;CAEA,MAAM,OADU,iBAAiB,KAAA,KAAa,UAAU,KAAA,IAChC,gBAAgB,UAAW,KAAA;CAEnD,OACE,iBAAA,GAAA,kBAAA,KAACC,iCAAAA,mBAAmB,UAApB;EACE,OAAO;GAAE;GAAc;GAAO;GAAM;EAAU;YAE9C,iBAAA,GAAA,kBAAA,KAACC,4BAAAA,aAAD;GACE,aAAU;GACV,cAAY;GACZ,qBAAmB,QAAQC,0BAAAA,cAAc,SAAS,KAAA;GAClD,YAAA,GAAA,GAAA,IACE,4CACA,oHACA,qJAGA,SAAS,SACL,4CACA,mGACJ,SACF;GACK;GACL,GAAI;EACL,CAAA;CAC0B,CAAA;AAEjC,CACF;AAEA,YAAY,cAAc"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { SparkButtonColor } from "./button.cjs";
|
|
4
|
-
import { ToggleProps, ToggleStyle } from "./toggle.cjs";
|
|
5
|
-
import * as React$1 from "react";
|
|
6
|
-
import { ToggleGroup as ToggleGroup$1 } from "@base-ui/react/toggle-group";
|
|
7
|
-
|
|
8
|
-
//#region src/components/toggle-group.d.ts
|
|
9
|
-
interface ToggleGroupProps extends Omit<React$1.ComponentProps<typeof ToggleGroup$1>, 'ref'> {
|
|
10
|
-
/**
|
|
11
|
-
* Pressed look for every item -- unlike ButtonGroup, unpressed items keep
|
|
12
|
-
* the neutral outline, or a neutral fill in a soft group. Each of the three
|
|
13
|
-
* is overridden per item by that item's own prop.
|
|
14
|
-
*/
|
|
15
|
-
styleVariant?: ToggleStyle;
|
|
16
|
-
color?: SparkButtonColor;
|
|
17
|
-
size?: ToggleProps['size'];
|
|
18
|
-
/** Default `showCheck` for every item. */
|
|
19
|
-
showCheck?: boolean;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Children are `Toggle`s with a `value`. Arrow keys move focus between them
|
|
23
|
-
* (roving tabindex); pass `multiple` to let more than one stay pressed.
|
|
24
|
-
*/
|
|
25
|
-
declare const ToggleGroup: React$1.ForwardRefExoticComponent<ToggleGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
26
|
-
//#endregion
|
|
27
|
-
export { ToggleGroup, ToggleGroupProps };
|
|
28
|
-
//# sourceMappingURL=toggle-group.d.cts.map
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { SparkButtonColor } from "./button.js";
|
|
4
|
-
import { ToggleProps, ToggleStyle } from "./toggle.js";
|
|
5
|
-
import * as React$1 from "react";
|
|
6
|
-
import { ToggleGroup as ToggleGroup$1 } from "@base-ui/react/toggle-group";
|
|
7
|
-
|
|
8
|
-
//#region src/components/toggle-group.d.ts
|
|
9
|
-
interface ToggleGroupProps extends Omit<React$1.ComponentProps<typeof ToggleGroup$1>, 'ref'> {
|
|
10
|
-
/**
|
|
11
|
-
* Pressed look for every item -- unlike ButtonGroup, unpressed items keep
|
|
12
|
-
* the neutral outline, or a neutral fill in a soft group. Each of the three
|
|
13
|
-
* is overridden per item by that item's own prop.
|
|
14
|
-
*/
|
|
15
|
-
styleVariant?: ToggleStyle;
|
|
16
|
-
color?: SparkButtonColor;
|
|
17
|
-
size?: ToggleProps['size'];
|
|
18
|
-
/** Default `showCheck` for every item. */
|
|
19
|
-
showCheck?: boolean;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Children are `Toggle`s with a `value`. Arrow keys move focus between them
|
|
23
|
-
* (roving tabindex); pass `multiple` to let more than one stay pressed.
|
|
24
|
-
*/
|
|
25
|
-
declare const ToggleGroup: React$1.ForwardRefExoticComponent<ToggleGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
26
|
-
//#endregion
|
|
27
|
-
export { ToggleGroup, ToggleGroupProps };
|
|
28
|
-
//# sourceMappingURL=toggle-group.d.ts.map
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
"use client";
|
|
3
|
-
import { accentByColor } from "../lib/accent-colors.js";
|
|
4
|
-
import { cn } from "../utils/cn.js";
|
|
5
|
-
import { ToggleGroupContext } from "../lib/toggle-group-context.js";
|
|
6
|
-
import * as React$1 from "react";
|
|
7
|
-
import { jsx } from "react/jsx-runtime";
|
|
8
|
-
import { ToggleGroup as ToggleGroup$1 } from "@base-ui/react/toggle-group";
|
|
9
|
-
//#region src/components/toggle-group.tsx
|
|
10
|
-
/**
|
|
11
|
-
* Children are `Toggle`s with a `value`. Arrow keys move focus between them
|
|
12
|
-
* (roving tabindex); pass `multiple` to let more than one stay pressed.
|
|
13
|
-
*/
|
|
14
|
-
const ToggleGroup = React$1.forwardRef(function ToggleGroup({ className, styleVariant, color, size, showCheck, ...props }, ref) {
|
|
15
|
-
const look = styleVariant !== void 0 || color !== void 0 ? styleVariant ?? "solid" : void 0;
|
|
16
|
-
return /* @__PURE__ */ jsx(ToggleGroupContext.Provider, {
|
|
17
|
-
value: {
|
|
18
|
-
styleVariant,
|
|
19
|
-
color,
|
|
20
|
-
size,
|
|
21
|
-
showCheck
|
|
22
|
-
},
|
|
23
|
-
children: /* @__PURE__ */ jsx(ToggleGroup$1, {
|
|
24
|
-
"data-slot": "toggle-group",
|
|
25
|
-
"data-style": look,
|
|
26
|
-
"data-accent-color": color ? accentByColor[color] : void 0,
|
|
27
|
-
className: cn("isolate inline-flex *:focus-visible:z-10", "data-[orientation=horizontal]:*:not-first:rounded-l-none data-[orientation=horizontal]:*:not-last:rounded-r-none", "data-[orientation=vertical]:flex-col data-[orientation=vertical]:*:not-first:rounded-t-none data-[orientation=vertical]:*:not-last:rounded-b-none", look === "soft" ? "gap-[calc(var(--spark-layout-gap)*0.5)]" : "data-[orientation=horizontal]:*:not-first:-ml-px data-[orientation=vertical]:*:not-first:-mt-px", className),
|
|
28
|
-
ref,
|
|
29
|
-
...props
|
|
30
|
-
})
|
|
31
|
-
});
|
|
32
|
-
});
|
|
33
|
-
ToggleGroup.displayName = "ToggleGroup";
|
|
34
|
-
//#endregion
|
|
35
|
-
export { ToggleGroup };
|
|
36
|
-
|
|
37
|
-
//# sourceMappingURL=toggle-group.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-group.js","names":["React","ToggleGroupPrimitive"],"sources":["../../src/components/toggle-group.tsx"],"sourcesContent":["'use client'\n\nimport { ToggleGroup as ToggleGroupPrimitive } from '@base-ui/react/toggle-group'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport { ToggleGroupContext } from '../lib/toggle-group-context'\nimport { cn } from '../utils/cn'\nimport type { SparkButtonColor } from './button'\nimport type { ToggleProps, ToggleStyle } from './toggle'\n\nexport interface ToggleGroupProps extends Omit<\n React.ComponentProps<typeof ToggleGroupPrimitive>,\n 'ref'\n> {\n /**\n * Pressed look for every item -- unlike ButtonGroup, unpressed items keep\n * the neutral outline, or a neutral fill in a soft group. Each of the three\n * is overridden per item by that item's own prop.\n */\n styleVariant?: ToggleStyle\n color?: SparkButtonColor\n size?: ToggleProps['size']\n /** Default `showCheck` for every item. */\n showCheck?: boolean\n}\n\n/**\n * Children are `Toggle`s with a `value`. Arrow keys move focus between them\n * (roving tabindex); pass `multiple` to let more than one stay pressed.\n */\nconst ToggleGroup = React.forwardRef<HTMLDivElement, ToggleGroupProps>(\n function ToggleGroup(\n { className, styleVariant, color, size, showCheck, ...props },\n ref,\n ) {\n const hasLook = styleVariant !== undefined || color !== undefined\n const look = hasLook ? (styleVariant ?? 'solid') : undefined\n\n return (\n <ToggleGroupContext.Provider\n value={{ styleVariant, color, size, showCheck }}\n >\n <ToggleGroupPrimitive\n data-slot=\"toggle-group\"\n data-style={look}\n data-accent-color={color ? accentByColor[color] : undefined}\n className={cn(\n 'isolate inline-flex *:focus-visible:z-10',\n 'data-[orientation=horizontal]:*:not-first:rounded-l-none data-[orientation=horizontal]:*:not-last:rounded-r-none',\n 'data-[orientation=vertical]:flex-col data-[orientation=vertical]:*:not-first:rounded-t-none data-[orientation=vertical]:*:not-last:rounded-b-none',\n // Soft fills are translucent, so glued neighbours' outlines would\n // frame a pressed item; List's soft rows space out the same way.\n look === 'soft'\n ? 'gap-[calc(var(--spark-layout-gap)*0.5)]'\n : 'data-[orientation=horizontal]:*:not-first:-ml-px data-[orientation=vertical]:*:not-first:-mt-px',\n className,\n )}\n ref={ref}\n {...props}\n />\n </ToggleGroupContext.Provider>\n )\n },\n)\n\nToggleGroup.displayName = 'ToggleGroup'\n\nexport { ToggleGroup }\n"],"mappings":";;;;;;;;;;;;;AA8BA,MAAM,cAAcA,QAAM,WACxB,SAAS,YACP,EAAE,WAAW,cAAc,OAAO,MAAM,WAAW,GAAG,SACtD,KACA;CAEA,MAAM,OADU,iBAAiB,KAAA,KAAa,UAAU,KAAA,IAChC,gBAAgB,UAAW,KAAA;CAEnD,OACE,oBAAC,mBAAmB,UAApB;EACE,OAAO;GAAE;GAAc;GAAO;GAAM;EAAU;YAE9C,oBAACC,eAAD;GACE,aAAU;GACV,cAAY;GACZ,qBAAmB,QAAQ,cAAc,SAAS,KAAA;GAClD,WAAW,GACT,4CACA,oHACA,qJAGA,SAAS,SACL,4CACA,mGACJ,SACF;GACK;GACL,GAAI;EACL,CAAA;CAC0B,CAAA;AAEjC,CACF;AAEA,YAAY,cAAc"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
"use client";
|
|
3
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
4
|
-
const require_chunk = require("../chunk-DY84GLCh.cjs");
|
|
5
|
-
const require_lib_accent_colors = require("../lib/accent-colors.cjs");
|
|
6
|
-
const require_lib_toggle_group_context = require("../lib/toggle-group-context.cjs");
|
|
7
|
-
const require_components_button = require("./button.cjs");
|
|
8
|
-
let react = require("react");
|
|
9
|
-
react = require_chunk.__toESM(react);
|
|
10
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
11
|
-
let _base_ui_react_toggle = require("@base-ui/react/toggle");
|
|
12
|
-
let cn = require("cn");
|
|
13
|
-
//#region src/components/toggle.tsx
|
|
14
|
-
function DrawnCheck() {
|
|
15
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
|
|
16
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
17
|
-
viewBox: "0 0 24 24",
|
|
18
|
-
fill: "none",
|
|
19
|
-
stroke: "currentColor",
|
|
20
|
-
strokeWidth: 2.5,
|
|
21
|
-
strokeLinecap: "round",
|
|
22
|
-
strokeLinejoin: "round",
|
|
23
|
-
"aria-hidden": "true",
|
|
24
|
-
"data-slot": "toggle-check",
|
|
25
|
-
className: "absolute start-0 top-1/2 size-(--spark-icon-size) -translate-y-1/2 [opacity:var(--check-drawn,0)] transition-[stroke-dashoffset] [transition-duration:calc(var(--check-drawn,0)*260ms)] ease-out [stroke-dashoffset:calc(1_-_var(--check-drawn,0))] motion-reduce:transition-none",
|
|
26
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
|
|
27
|
-
d: "M5 12.5l4.5 4.5L19 7.5",
|
|
28
|
-
pathLength: 1,
|
|
29
|
-
strokeDasharray: 1
|
|
30
|
-
})
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
const spacerClasses = "min-w-0 shrink-[1000] w-[calc(var(--check-room)/2)] transition-[width] duration-200 ease-out motion-reduce:transition-none";
|
|
34
|
-
const Toggle = react.forwardRef(function Toggle({ className, styleVariant, color, size, showCheck, children, ...props }, ref) {
|
|
35
|
-
const group = react.useContext(require_lib_toggle_group_context.ToggleGroupContext);
|
|
36
|
-
const resolvedSize = size ?? group.size ?? "default";
|
|
37
|
-
const resolvedColor = color ?? group.color;
|
|
38
|
-
const hasOwnLook = styleVariant !== void 0 || color !== void 0;
|
|
39
|
-
const look = styleVariant ?? group.styleVariant ?? "solid";
|
|
40
|
-
const withCheck = (showCheck ?? group.showCheck ?? true) && !resolvedSize.startsWith("icon");
|
|
41
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_toggle.Toggle, {
|
|
42
|
-
"data-slot": "toggle",
|
|
43
|
-
"data-style": hasOwnLook ? look : void 0,
|
|
44
|
-
"data-accent-color": color ? require_lib_accent_colors.accentByColor[color] : void 0,
|
|
45
|
-
className: (0, cn.cn)(require_components_button.buttonVariants({
|
|
46
|
-
variant: "secondary",
|
|
47
|
-
size: resolvedSize,
|
|
48
|
-
color: resolvedColor
|
|
49
|
-
}), "group/toggle [--check-drawn:0] data-disabled:pointer-events-none data-disabled:opacity-50", "data-pressed:bg-(--spark-style-bg,var(--color-primary)) data-pressed:text-(--spark-style-fg,var(--color-primary-foreground)) data-pressed:shadow-[inset_0_0_0_var(--spark-style-border-width,1px)_var(--spark-style-border,transparent)] data-pressed:[--check-drawn:1] data-pressed:hover:bg-(--spark-style-bg-hover,var(--color-primary-hover))", look === "solid" && "[[data-slot=toggle-group][data-orientation=horizontal]>[data-pressed]+&]:data-pressed:shadow-[inset_1px_0_0_0_color-mix(in_oklab,currentColor_25%,transparent)] [[data-slot=toggle-group][data-orientation=vertical]>[data-pressed]+&]:data-pressed:shadow-[inset_0_1px_0_0_color-mix(in_oklab,currentColor_25%,transparent)]", group.styleVariant === "soft" && "not-data-pressed:bg-gray-a2 not-data-pressed:shadow-none not-data-pressed:hover:bg-gray-a3", withCheck && "gap-0 [--check-room:calc(var(--spark-icon-size)_+_0.5rem)]", className),
|
|
50
|
-
ref,
|
|
51
|
-
...props,
|
|
52
|
-
children: withCheck ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
53
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
54
|
-
className: (0, cn.cn)(spacerClasses, "relative self-stretch group-data-pressed/toggle:w-(--check-room) group-data-pressed/toggle:shrink-0"),
|
|
55
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(DrawnCheck, {})
|
|
56
|
-
}),
|
|
57
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
58
|
-
className: "inline-flex min-w-0 items-center gap-2",
|
|
59
|
-
children
|
|
60
|
-
}),
|
|
61
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: (0, cn.cn)(spacerClasses, "group-data-pressed/toggle:w-0") })
|
|
62
|
-
] }) : children
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
Toggle.displayName = "Toggle";
|
|
66
|
-
//#endregion
|
|
67
|
-
exports.Toggle = Toggle;
|
|
68
|
-
|
|
69
|
-
//# sourceMappingURL=toggle.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toggle.cjs","names":["React","ToggleGroupContext","TogglePrimitive","accentByColor","buttonVariants"],"sources":["../../src/components/toggle.tsx"],"sourcesContent":["'use client'\n\nimport { Toggle as TogglePrimitive } from '@base-ui/react/toggle'\nimport type { VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { ToggleGroupContext } from '../lib/toggle-group-context'\nimport { cn } from '../utils/cn'\nimport { buttonVariants, type SparkButtonColor } from './button'\n\ntype ToggleSize = NonNullable<VariantProps<typeof buttonVariants>['size']>\n\n// ghost and outline are left out: pressed, they read weaker than the unpressed outline.\nexport type ToggleStyle = Extract<SparkStyle, 'solid' | 'soft' | 'surface'>\n\nexport interface ToggleProps extends Omit<\n React.ComponentProps<typeof TogglePrimitive>,\n 'ref'\n> {\n /** The pressed look; unpressed is the neutral outline, or a neutral fill in a soft group. */\n styleVariant?: ToggleStyle\n color?: SparkButtonColor\n size?: ToggleSize\n /** Draws a check on press. Icon sizes never show one. Defaults to `true`. */\n showCheck?: boolean\n}\n\n// Ported from volt-ui-experimental `lib/icons.tsx` DrawnCheck. Undrawing is\n// instant: the duration scales with --check-drawn.\nfunction DrawnCheck() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n data-slot=\"toggle-check\"\n className=\"absolute start-0 top-1/2 size-(--spark-icon-size) -translate-y-1/2 [opacity:var(--check-drawn,0)] transition-[stroke-dashoffset] [transition-duration:calc(var(--check-drawn,0)*260ms)] ease-out [stroke-dashoffset:calc(1_-_var(--check-drawn,0))] motion-reduce:transition-none\"\n >\n <path d=\"M5 12.5l4.5 4.5L19 7.5\" pathLength={1} strokeDasharray={1} />\n </svg>\n )\n}\n\n// volt SegmentedControl's split spacers: unpressed, the check's room is split\n// either side of the label; pressed, it moves left under the check. The label\n// slides, and the Toggle never resizes or shifts its group siblings.\nconst spacerClasses =\n 'min-w-0 shrink-[1000] w-[calc(var(--check-room)/2)] transition-[width] duration-200 ease-out motion-reduce:transition-none'\n\n// forwardRef keeps refs working for React 18 consumers (ref-as-prop is 19-only)\nconst Toggle = React.forwardRef<HTMLButtonElement, ToggleProps>(function Toggle(\n { className, styleVariant, color, size, showCheck, children, ...props },\n ref,\n) {\n const group = React.useContext(ToggleGroupContext)\n const resolvedSize = size ?? group.size ?? 'default'\n const resolvedColor = color ?? group.color\n const hasOwnLook = styleVariant !== undefined || color !== undefined\n const look = styleVariant ?? group.styleVariant ?? 'solid'\n const withCheck =\n (showCheck ?? group.showCheck ?? true) && !resolvedSize.startsWith('icon')\n\n return (\n <TogglePrimitive\n data-slot=\"toggle\"\n data-style={hasOwnLook ? look : undefined}\n data-accent-color={color ? accentByColor[color] : undefined}\n className={cn(\n buttonVariants({\n variant: 'secondary',\n size: resolvedSize,\n color: resolvedColor,\n }),\n 'group/toggle [--check-drawn:0] data-disabled:pointer-events-none data-disabled:opacity-50',\n 'data-pressed:bg-(--spark-style-bg,var(--color-primary)) data-pressed:text-(--spark-style-fg,var(--color-primary-foreground)) data-pressed:shadow-[inset_0_0_0_var(--spark-style-border-width,1px)_var(--spark-style-border,transparent)] data-pressed:[--check-drawn:1] data-pressed:hover:bg-(--spark-style-bg-hover,var(--color-primary-hover))',\n // Solid has no pressed border, so two glued pressed items would merge;\n // the line matches ButtonGroupSeparator's.\n look === 'solid' &&\n '[[data-slot=toggle-group][data-orientation=horizontal]>[data-pressed]+&]:data-pressed:shadow-[inset_1px_0_0_0_color-mix(in_oklab,currentColor_25%,transparent)] [[data-slot=toggle-group][data-orientation=vertical]>[data-pressed]+&]:data-pressed:shadow-[inset_0_1px_0_0_color-mix(in_oklab,currentColor_25%,transparent)]',\n // In a soft group the outline would frame the spaced items. The fill sits\n // a step under soft's a3 so a pressed neutral item still stands out.\n group.styleVariant === 'soft' &&\n 'not-data-pressed:bg-gray-a2 not-data-pressed:shadow-none not-data-pressed:hover:bg-gray-a3',\n withCheck &&\n 'gap-0 [--check-room:calc(var(--spark-icon-size)_+_0.5rem)]',\n className,\n )}\n ref={ref}\n {...props}\n >\n {withCheck ? (\n <>\n <span\n className={cn(\n spacerClasses,\n 'relative self-stretch group-data-pressed/toggle:w-(--check-room) group-data-pressed/toggle:shrink-0',\n )}\n >\n <DrawnCheck />\n </span>\n <span className=\"inline-flex min-w-0 items-center gap-2\">\n {children}\n </span>\n <span\n className={cn(spacerClasses, 'group-data-pressed/toggle:w-0')}\n />\n </>\n ) : (\n children\n )}\n </TogglePrimitive>\n )\n})\n\nToggle.displayName = 'Toggle'\n\nexport { Toggle }\n"],"mappings":";;;;;;;;;;;;;AA8BA,SAAS,aAAa;CACpB,OACE,iBAAA,GAAA,kBAAA,KAAC,OAAD;EACE,OAAM;EACN,SAAQ;EACR,MAAK;EACL,QAAO;EACP,aAAa;EACb,eAAc;EACd,gBAAe;EACf,eAAY;EACZ,aAAU;EACV,WAAU;YAEV,iBAAA,GAAA,kBAAA,KAAC,QAAD;GAAM,GAAE;GAAyB,YAAY;GAAG,iBAAiB;EAAI,CAAA;CAClE,CAAA;AAET;AAKA,MAAM,gBACJ;AAGF,MAAM,SAASA,MAAM,WAA2C,SAAS,OACvE,EAAE,WAAW,cAAc,OAAO,MAAM,WAAW,UAAU,GAAG,SAChE,KACA;CACA,MAAM,QAAQA,MAAM,WAAWC,iCAAAA,kBAAkB;CACjD,MAAM,eAAe,QAAQ,MAAM,QAAQ;CAC3C,MAAM,gBAAgB,SAAS,MAAM;CACrC,MAAM,aAAa,iBAAiB,KAAA,KAAa,UAAU,KAAA;CAC3D,MAAM,OAAO,gBAAgB,MAAM,gBAAgB;CACnD,MAAM,aACH,aAAa,MAAM,aAAa,SAAS,CAAC,aAAa,WAAW,MAAM;CAE3E,OACE,iBAAA,GAAA,kBAAA,KAACC,sBAAAA,QAAD;EACE,aAAU;EACV,cAAY,aAAa,OAAO,KAAA;EAChC,qBAAmB,QAAQC,0BAAAA,cAAc,SAAS,KAAA;EAClD,YAAA,GAAA,GAAA,IACEC,0BAAAA,eAAe;GACb,SAAS;GACT,MAAM;GACN,OAAO;EACT,CAAC,GACD,6FACA,qVAGA,SAAS,WACP,iUAGF,MAAM,iBAAiB,UACrB,8FACF,aACE,8DACF,SACF;EACK;EACL,GAAI;YAEH,YACC,iBAAA,GAAA,kBAAA,MAAA,kBAAA,UAAA,EAAA,UAAA;GACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;IACE,YAAA,GAAA,GAAA,IACE,eACA,qGACF;cAEA,iBAAA,GAAA,kBAAA,KAAC,YAAD,CAAa,CAAA;GACT,CAAA;GACN,iBAAA,GAAA,kBAAA,KAAC,QAAD;IAAM,WAAU;IACb;GACG,CAAA;GACN,iBAAA,GAAA,kBAAA,KAAC,QAAD,EACE,YAAA,GAAA,GAAA,IAAc,eAAe,+BAA+B,EAC7D,CAAA;EACD,EAAA,CAAA,IAEF;CAEa,CAAA;AAErB,CAAC;AAED,OAAO,cAAc"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { f as SparkStyle } from "../theme-types-Bn5E15-P.cjs";
|
|
4
|
-
import { SparkButtonColor, buttonVariants } from "./button.cjs";
|
|
5
|
-
import * as React$1 from "react";
|
|
6
|
-
import { VariantProps } from "class-variance-authority";
|
|
7
|
-
import { Toggle as Toggle$1 } from "@base-ui/react/toggle";
|
|
8
|
-
|
|
9
|
-
//#region src/components/toggle.d.ts
|
|
10
|
-
type ToggleSize = NonNullable<VariantProps<typeof buttonVariants>['size']>;
|
|
11
|
-
type ToggleStyle = Extract<SparkStyle, 'solid' | 'soft' | 'surface'>;
|
|
12
|
-
interface ToggleProps extends Omit<React$1.ComponentProps<typeof Toggle$1>, 'ref'> {
|
|
13
|
-
/** The pressed look; unpressed is the neutral outline, or a neutral fill in a soft group. */
|
|
14
|
-
styleVariant?: ToggleStyle;
|
|
15
|
-
color?: SparkButtonColor;
|
|
16
|
-
size?: ToggleSize;
|
|
17
|
-
/** Draws a check on press. Icon sizes never show one. Defaults to `true`. */
|
|
18
|
-
showCheck?: boolean;
|
|
19
|
-
}
|
|
20
|
-
declare const Toggle: React$1.ForwardRefExoticComponent<ToggleProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
21
|
-
//#endregion
|
|
22
|
-
export { Toggle, ToggleProps, ToggleStyle };
|
|
23
|
-
//# sourceMappingURL=toggle.d.cts.map
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { f as SparkStyle } from "../theme-types-Bn5E15-P.js";
|
|
4
|
-
import { SparkButtonColor, buttonVariants } from "./button.js";
|
|
5
|
-
import * as React$1 from "react";
|
|
6
|
-
import { VariantProps } from "class-variance-authority";
|
|
7
|
-
import { Toggle as Toggle$1 } from "@base-ui/react/toggle";
|
|
8
|
-
|
|
9
|
-
//#region src/components/toggle.d.ts
|
|
10
|
-
type ToggleSize = NonNullable<VariantProps<typeof buttonVariants>['size']>;
|
|
11
|
-
type ToggleStyle = Extract<SparkStyle, 'solid' | 'soft' | 'surface'>;
|
|
12
|
-
interface ToggleProps extends Omit<React$1.ComponentProps<typeof Toggle$1>, 'ref'> {
|
|
13
|
-
/** The pressed look; unpressed is the neutral outline, or a neutral fill in a soft group. */
|
|
14
|
-
styleVariant?: ToggleStyle;
|
|
15
|
-
color?: SparkButtonColor;
|
|
16
|
-
size?: ToggleSize;
|
|
17
|
-
/** Draws a check on press. Icon sizes never show one. Defaults to `true`. */
|
|
18
|
-
showCheck?: boolean;
|
|
19
|
-
}
|
|
20
|
-
declare const Toggle: React$1.ForwardRefExoticComponent<ToggleProps & React$1.RefAttributes<HTMLButtonElement>>;
|
|
21
|
-
//#endregion
|
|
22
|
-
export { Toggle, ToggleProps, ToggleStyle };
|
|
23
|
-
//# sourceMappingURL=toggle.d.ts.map
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
"use client";
|
|
3
|
-
import { accentByColor } from "../lib/accent-colors.js";
|
|
4
|
-
import { cn } from "../utils/cn.js";
|
|
5
|
-
import { ToggleGroupContext } from "../lib/toggle-group-context.js";
|
|
6
|
-
import { buttonVariants } from "./button.js";
|
|
7
|
-
import * as React$1 from "react";
|
|
8
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
-
import { Toggle as Toggle$1 } from "@base-ui/react/toggle";
|
|
10
|
-
//#region src/components/toggle.tsx
|
|
11
|
-
function DrawnCheck() {
|
|
12
|
-
return /* @__PURE__ */ jsx("svg", {
|
|
13
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
14
|
-
viewBox: "0 0 24 24",
|
|
15
|
-
fill: "none",
|
|
16
|
-
stroke: "currentColor",
|
|
17
|
-
strokeWidth: 2.5,
|
|
18
|
-
strokeLinecap: "round",
|
|
19
|
-
strokeLinejoin: "round",
|
|
20
|
-
"aria-hidden": "true",
|
|
21
|
-
"data-slot": "toggle-check",
|
|
22
|
-
className: "absolute start-0 top-1/2 size-(--spark-icon-size) -translate-y-1/2 [opacity:var(--check-drawn,0)] transition-[stroke-dashoffset] [transition-duration:calc(var(--check-drawn,0)*260ms)] ease-out [stroke-dashoffset:calc(1_-_var(--check-drawn,0))] motion-reduce:transition-none",
|
|
23
|
-
children: /* @__PURE__ */ jsx("path", {
|
|
24
|
-
d: "M5 12.5l4.5 4.5L19 7.5",
|
|
25
|
-
pathLength: 1,
|
|
26
|
-
strokeDasharray: 1
|
|
27
|
-
})
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
const spacerClasses = "min-w-0 shrink-[1000] w-[calc(var(--check-room)/2)] transition-[width] duration-200 ease-out motion-reduce:transition-none";
|
|
31
|
-
const Toggle = React$1.forwardRef(function Toggle({ className, styleVariant, color, size, showCheck, children, ...props }, ref) {
|
|
32
|
-
const group = React$1.useContext(ToggleGroupContext);
|
|
33
|
-
const resolvedSize = size ?? group.size ?? "default";
|
|
34
|
-
const resolvedColor = color ?? group.color;
|
|
35
|
-
const hasOwnLook = styleVariant !== void 0 || color !== void 0;
|
|
36
|
-
const look = styleVariant ?? group.styleVariant ?? "solid";
|
|
37
|
-
const withCheck = (showCheck ?? group.showCheck ?? true) && !resolvedSize.startsWith("icon");
|
|
38
|
-
return /* @__PURE__ */ jsx(Toggle$1, {
|
|
39
|
-
"data-slot": "toggle",
|
|
40
|
-
"data-style": hasOwnLook ? look : void 0,
|
|
41
|
-
"data-accent-color": color ? accentByColor[color] : void 0,
|
|
42
|
-
className: cn(buttonVariants({
|
|
43
|
-
variant: "secondary",
|
|
44
|
-
size: resolvedSize,
|
|
45
|
-
color: resolvedColor
|
|
46
|
-
}), "group/toggle [--check-drawn:0] data-disabled:pointer-events-none data-disabled:opacity-50", "data-pressed:bg-(--spark-style-bg,var(--color-primary)) data-pressed:text-(--spark-style-fg,var(--color-primary-foreground)) data-pressed:shadow-[inset_0_0_0_var(--spark-style-border-width,1px)_var(--spark-style-border,transparent)] data-pressed:[--check-drawn:1] data-pressed:hover:bg-(--spark-style-bg-hover,var(--color-primary-hover))", look === "solid" && "[[data-slot=toggle-group][data-orientation=horizontal]>[data-pressed]+&]:data-pressed:shadow-[inset_1px_0_0_0_color-mix(in_oklab,currentColor_25%,transparent)] [[data-slot=toggle-group][data-orientation=vertical]>[data-pressed]+&]:data-pressed:shadow-[inset_0_1px_0_0_color-mix(in_oklab,currentColor_25%,transparent)]", group.styleVariant === "soft" && "not-data-pressed:bg-gray-a2 not-data-pressed:shadow-none not-data-pressed:hover:bg-gray-a3", withCheck && "gap-0 [--check-room:calc(var(--spark-icon-size)_+_0.5rem)]", className),
|
|
47
|
-
ref,
|
|
48
|
-
...props,
|
|
49
|
-
children: withCheck ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
50
|
-
/* @__PURE__ */ jsx("span", {
|
|
51
|
-
className: cn(spacerClasses, "relative self-stretch group-data-pressed/toggle:w-(--check-room) group-data-pressed/toggle:shrink-0"),
|
|
52
|
-
children: /* @__PURE__ */ jsx(DrawnCheck, {})
|
|
53
|
-
}),
|
|
54
|
-
/* @__PURE__ */ jsx("span", {
|
|
55
|
-
className: "inline-flex min-w-0 items-center gap-2",
|
|
56
|
-
children
|
|
57
|
-
}),
|
|
58
|
-
/* @__PURE__ */ jsx("span", { className: cn(spacerClasses, "group-data-pressed/toggle:w-0") })
|
|
59
|
-
] }) : children
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
Toggle.displayName = "Toggle";
|
|
63
|
-
//#endregion
|
|
64
|
-
export { Toggle };
|
|
65
|
-
|
|
66
|
-
//# sourceMappingURL=toggle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toggle.js","names":["React","TogglePrimitive"],"sources":["../../src/components/toggle.tsx"],"sourcesContent":["'use client'\n\nimport { Toggle as TogglePrimitive } from '@base-ui/react/toggle'\nimport type { VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\nimport { accentByColor } from '../lib/accent-colors'\nimport type { SparkStyle } from '../lib/theme-types'\nimport { ToggleGroupContext } from '../lib/toggle-group-context'\nimport { cn } from '../utils/cn'\nimport { buttonVariants, type SparkButtonColor } from './button'\n\ntype ToggleSize = NonNullable<VariantProps<typeof buttonVariants>['size']>\n\n// ghost and outline are left out: pressed, they read weaker than the unpressed outline.\nexport type ToggleStyle = Extract<SparkStyle, 'solid' | 'soft' | 'surface'>\n\nexport interface ToggleProps extends Omit<\n React.ComponentProps<typeof TogglePrimitive>,\n 'ref'\n> {\n /** The pressed look; unpressed is the neutral outline, or a neutral fill in a soft group. */\n styleVariant?: ToggleStyle\n color?: SparkButtonColor\n size?: ToggleSize\n /** Draws a check on press. Icon sizes never show one. Defaults to `true`. */\n showCheck?: boolean\n}\n\n// Ported from volt-ui-experimental `lib/icons.tsx` DrawnCheck. Undrawing is\n// instant: the duration scales with --check-drawn.\nfunction DrawnCheck() {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={2.5}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n data-slot=\"toggle-check\"\n className=\"absolute start-0 top-1/2 size-(--spark-icon-size) -translate-y-1/2 [opacity:var(--check-drawn,0)] transition-[stroke-dashoffset] [transition-duration:calc(var(--check-drawn,0)*260ms)] ease-out [stroke-dashoffset:calc(1_-_var(--check-drawn,0))] motion-reduce:transition-none\"\n >\n <path d=\"M5 12.5l4.5 4.5L19 7.5\" pathLength={1} strokeDasharray={1} />\n </svg>\n )\n}\n\n// volt SegmentedControl's split spacers: unpressed, the check's room is split\n// either side of the label; pressed, it moves left under the check. The label\n// slides, and the Toggle never resizes or shifts its group siblings.\nconst spacerClasses =\n 'min-w-0 shrink-[1000] w-[calc(var(--check-room)/2)] transition-[width] duration-200 ease-out motion-reduce:transition-none'\n\n// forwardRef keeps refs working for React 18 consumers (ref-as-prop is 19-only)\nconst Toggle = React.forwardRef<HTMLButtonElement, ToggleProps>(function Toggle(\n { className, styleVariant, color, size, showCheck, children, ...props },\n ref,\n) {\n const group = React.useContext(ToggleGroupContext)\n const resolvedSize = size ?? group.size ?? 'default'\n const resolvedColor = color ?? group.color\n const hasOwnLook = styleVariant !== undefined || color !== undefined\n const look = styleVariant ?? group.styleVariant ?? 'solid'\n const withCheck =\n (showCheck ?? group.showCheck ?? true) && !resolvedSize.startsWith('icon')\n\n return (\n <TogglePrimitive\n data-slot=\"toggle\"\n data-style={hasOwnLook ? look : undefined}\n data-accent-color={color ? accentByColor[color] : undefined}\n className={cn(\n buttonVariants({\n variant: 'secondary',\n size: resolvedSize,\n color: resolvedColor,\n }),\n 'group/toggle [--check-drawn:0] data-disabled:pointer-events-none data-disabled:opacity-50',\n 'data-pressed:bg-(--spark-style-bg,var(--color-primary)) data-pressed:text-(--spark-style-fg,var(--color-primary-foreground)) data-pressed:shadow-[inset_0_0_0_var(--spark-style-border-width,1px)_var(--spark-style-border,transparent)] data-pressed:[--check-drawn:1] data-pressed:hover:bg-(--spark-style-bg-hover,var(--color-primary-hover))',\n // Solid has no pressed border, so two glued pressed items would merge;\n // the line matches ButtonGroupSeparator's.\n look === 'solid' &&\n '[[data-slot=toggle-group][data-orientation=horizontal]>[data-pressed]+&]:data-pressed:shadow-[inset_1px_0_0_0_color-mix(in_oklab,currentColor_25%,transparent)] [[data-slot=toggle-group][data-orientation=vertical]>[data-pressed]+&]:data-pressed:shadow-[inset_0_1px_0_0_color-mix(in_oklab,currentColor_25%,transparent)]',\n // In a soft group the outline would frame the spaced items. The fill sits\n // a step under soft's a3 so a pressed neutral item still stands out.\n group.styleVariant === 'soft' &&\n 'not-data-pressed:bg-gray-a2 not-data-pressed:shadow-none not-data-pressed:hover:bg-gray-a3',\n withCheck &&\n 'gap-0 [--check-room:calc(var(--spark-icon-size)_+_0.5rem)]',\n className,\n )}\n ref={ref}\n {...props}\n >\n {withCheck ? (\n <>\n <span\n className={cn(\n spacerClasses,\n 'relative self-stretch group-data-pressed/toggle:w-(--check-room) group-data-pressed/toggle:shrink-0',\n )}\n >\n <DrawnCheck />\n </span>\n <span className=\"inline-flex min-w-0 items-center gap-2\">\n {children}\n </span>\n <span\n className={cn(spacerClasses, 'group-data-pressed/toggle:w-0')}\n />\n </>\n ) : (\n children\n )}\n </TogglePrimitive>\n )\n})\n\nToggle.displayName = 'Toggle'\n\nexport { Toggle }\n"],"mappings":";;;;;;;;;;AA8BA,SAAS,aAAa;CACpB,OACE,oBAAC,OAAD;EACE,OAAM;EACN,SAAQ;EACR,MAAK;EACL,QAAO;EACP,aAAa;EACb,eAAc;EACd,gBAAe;EACf,eAAY;EACZ,aAAU;EACV,WAAU;YAEV,oBAAC,QAAD;GAAM,GAAE;GAAyB,YAAY;GAAG,iBAAiB;EAAI,CAAA;CAClE,CAAA;AAET;AAKA,MAAM,gBACJ;AAGF,MAAM,SAASA,QAAM,WAA2C,SAAS,OACvE,EAAE,WAAW,cAAc,OAAO,MAAM,WAAW,UAAU,GAAG,SAChE,KACA;CACA,MAAM,QAAQA,QAAM,WAAW,kBAAkB;CACjD,MAAM,eAAe,QAAQ,MAAM,QAAQ;CAC3C,MAAM,gBAAgB,SAAS,MAAM;CACrC,MAAM,aAAa,iBAAiB,KAAA,KAAa,UAAU,KAAA;CAC3D,MAAM,OAAO,gBAAgB,MAAM,gBAAgB;CACnD,MAAM,aACH,aAAa,MAAM,aAAa,SAAS,CAAC,aAAa,WAAW,MAAM;CAE3E,OACE,oBAACC,UAAD;EACE,aAAU;EACV,cAAY,aAAa,OAAO,KAAA;EAChC,qBAAmB,QAAQ,cAAc,SAAS,KAAA;EAClD,WAAW,GACT,eAAe;GACb,SAAS;GACT,MAAM;GACN,OAAO;EACT,CAAC,GACD,6FACA,qVAGA,SAAS,WACP,iUAGF,MAAM,iBAAiB,UACrB,8FACF,aACE,8DACF,SACF;EACK;EACL,GAAI;YAEH,YACC,qBAAA,UAAA,EAAA,UAAA;GACE,oBAAC,QAAD;IACE,WAAW,GACT,eACA,qGACF;cAEA,oBAAC,YAAD,CAAa,CAAA;GACT,CAAA;GACN,oBAAC,QAAD;IAAM,WAAU;IACb;GACG,CAAA;GACN,oBAAC,QAAD,EACE,WAAW,GAAG,eAAe,+BAA+B,EAC7D,CAAA;EACD,EAAA,CAAA,IAEF;CAEa,CAAA;AAErB,CAAC;AAED,OAAO,cAAc"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const require_chunk = require("../chunk-DY84GLCh.cjs");
|
|
4
|
-
let react = require("react");
|
|
5
|
-
react = require_chunk.__toESM(react, 1);
|
|
6
|
-
//#region src/lib/toggle-group-context.ts
|
|
7
|
-
/** `ToggleGroup`'s defaults for its `Toggle`s; kept out of the public exports. */
|
|
8
|
-
const ToggleGroupContext = react.createContext({});
|
|
9
|
-
//#endregion
|
|
10
|
-
exports.ToggleGroupContext = ToggleGroupContext;
|
|
11
|
-
|
|
12
|
-
//# sourceMappingURL=toggle-group-context.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-group-context.cjs","names":["React"],"sources":["../../src/lib/toggle-group-context.ts"],"sourcesContent":["import * as React from 'react'\nimport type { SparkButtonColor } from '../components/button'\nimport type { ButtonProps } from '../components/button'\nimport type { ToggleStyle } from '../components/toggle'\n\n/** `ToggleGroup`'s defaults for its `Toggle`s; kept out of the public exports. */\nexport const ToggleGroupContext = React.createContext<{\n styleVariant?: ToggleStyle\n color?: SparkButtonColor\n size?: ButtonProps['size']\n showCheck?: boolean\n}>({})\n"],"mappings":";;;;;;;AAMA,MAAa,qBAAqBA,MAAM,cAKrC,CAAC,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { ButtonProps, SparkButtonColor } from "../components/button.cjs";
|
|
4
|
-
import { ToggleStyle } from "../components/toggle.cjs";
|
|
5
|
-
import * as React$1 from "react";
|
|
6
|
-
|
|
7
|
-
//#region src/lib/toggle-group-context.d.ts
|
|
8
|
-
/** `ToggleGroup`'s defaults for its `Toggle`s; kept out of the public exports. */
|
|
9
|
-
declare const ToggleGroupContext: React$1.Context<{
|
|
10
|
-
styleVariant?: ToggleStyle;
|
|
11
|
-
color?: SparkButtonColor;
|
|
12
|
-
size?: ButtonProps["size"];
|
|
13
|
-
showCheck?: boolean;
|
|
14
|
-
}>;
|
|
15
|
-
//#endregion
|
|
16
|
-
export { ToggleGroupContext };
|
|
17
|
-
//# sourceMappingURL=toggle-group-context.d.cts.map
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { ButtonProps, SparkButtonColor } from "../components/button.js";
|
|
4
|
-
import { ToggleStyle } from "../components/toggle.js";
|
|
5
|
-
import * as React$1 from "react";
|
|
6
|
-
|
|
7
|
-
//#region src/lib/toggle-group-context.d.ts
|
|
8
|
-
/** `ToggleGroup`'s defaults for its `Toggle`s; kept out of the public exports. */
|
|
9
|
-
declare const ToggleGroupContext: React$1.Context<{
|
|
10
|
-
styleVariant?: ToggleStyle;
|
|
11
|
-
color?: SparkButtonColor;
|
|
12
|
-
size?: ButtonProps["size"];
|
|
13
|
-
showCheck?: boolean;
|
|
14
|
-
}>;
|
|
15
|
-
//#endregion
|
|
16
|
-
export { ToggleGroupContext };
|
|
17
|
-
//# sourceMappingURL=toggle-group-context.d.ts.map
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import * as React$1 from "react";
|
|
3
|
-
//#region src/lib/toggle-group-context.ts
|
|
4
|
-
/** `ToggleGroup`'s defaults for its `Toggle`s; kept out of the public exports. */
|
|
5
|
-
const ToggleGroupContext = React$1.createContext({});
|
|
6
|
-
//#endregion
|
|
7
|
-
export { ToggleGroupContext };
|
|
8
|
-
|
|
9
|
-
//# sourceMappingURL=toggle-group-context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-group-context.js","names":["React"],"sources":["../../src/lib/toggle-group-context.ts"],"sourcesContent":["import * as React from 'react'\nimport type { SparkButtonColor } from '../components/button'\nimport type { ButtonProps } from '../components/button'\nimport type { ToggleStyle } from '../components/toggle'\n\n/** `ToggleGroup`'s defaults for its `Toggle`s; kept out of the public exports. */\nexport const ToggleGroupContext = React.createContext<{\n styleVariant?: ToggleStyle\n color?: SparkButtonColor\n size?: ButtonProps['size']\n showCheck?: boolean\n}>({})\n"],"mappings":";;;;AAMA,MAAa,qBAAqBA,QAAM,cAKrC,CAAC,CAAC"}
|