@epilot/spark-ui 0.16.0 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/accordion.cjs +3 -6
- package/dist/components/accordion.cjs.map +1 -1
- package/dist/components/accordion.d.ts +1 -1
- package/dist/components/accordion.js +3 -6
- package/dist/components/accordion.js.map +1 -1
- package/dist/components/alert-dialog.cjs +4 -5
- package/dist/components/alert-dialog.cjs.map +1 -1
- package/dist/components/alert-dialog.js +4 -5
- package/dist/components/alert-dialog.js.map +1 -1
- package/dist/components/autocomplete.cjs +161 -0
- package/dist/components/autocomplete.cjs.map +1 -0
- package/dist/components/autocomplete.d.cts +76 -0
- package/dist/components/autocomplete.d.ts +76 -0
- package/dist/components/autocomplete.js +143 -0
- package/dist/components/autocomplete.js.map +1 -0
- package/dist/components/avatar.js +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/bar-chart.js +1 -1
- package/dist/components/battery-progress-row.cjs +14 -11
- package/dist/components/battery-progress-row.cjs.map +1 -1
- package/dist/components/battery-progress-row.d.cts +2 -10
- package/dist/components/battery-progress-row.d.ts +2 -10
- package/dist/components/battery-progress-row.js +14 -11
- package/dist/components/battery-progress-row.js.map +1 -1
- package/dist/components/box.js +1 -1
- package/dist/components/bubble.d.cts +1 -1
- package/dist/components/bubble.d.ts +1 -1
- package/dist/components/button-group.js +1 -1
- package/dist/components/button.cjs +6 -6
- 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 +7 -7
- package/dist/components/button.js.map +1 -1
- package/dist/components/calendar.cjs +4 -5
- package/dist/components/calendar.cjs.map +1 -1
- package/dist/components/calendar.js +4 -5
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/callout.cjs +18 -14
- package/dist/components/callout.cjs.map +1 -1
- package/dist/components/callout.d.cts +10 -4
- package/dist/components/callout.d.ts +10 -4
- package/dist/components/callout.js +18 -15
- package/dist/components/callout.js.map +1 -1
- package/dist/components/card.js +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/device-card.cjs +2 -6
- package/dist/components/device-card.cjs.map +1 -1
- package/dist/components/device-card.d.cts +3 -3
- package/dist/components/device-card.d.ts +3 -3
- package/dist/components/device-card.js +2 -6
- package/dist/components/device-card.js.map +1 -1
- package/dist/components/dialog.cjs +2 -5
- package/dist/components/dialog.cjs.map +1 -1
- package/dist/components/dialog.js +2 -5
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/dropdown-menu.cjs +4 -13
- package/dist/components/dropdown-menu.cjs.map +1 -1
- package/dist/components/dropdown-menu.js +4 -13
- package/dist/components/dropdown-menu.js.map +1 -1
- package/dist/components/empty-state.cjs +5 -5
- package/dist/components/empty-state.cjs.map +1 -1
- package/dist/components/empty-state.d.cts +3 -3
- package/dist/components/empty-state.d.ts +3 -3
- package/dist/components/empty-state.js +5 -5
- package/dist/components/empty-state.js.map +1 -1
- package/dist/components/icon.cjs +2 -3
- package/dist/components/icon.cjs.map +1 -1
- package/dist/components/icon.d.cts +0 -3
- package/dist/components/icon.d.ts +0 -3
- package/dist/components/icon.js +3 -4
- package/dist/components/icon.js.map +1 -1
- package/dist/components/info-block.d.cts +1 -1
- package/dist/components/info-block.d.ts +1 -1
- package/dist/components/input-otp.cjs +1 -1
- package/dist/components/input-otp.js +1 -1
- package/dist/components/input.cjs +1 -1
- package/dist/components/input.js +1 -1
- package/dist/components/line-chart.cjs +1 -1
- package/dist/components/line-chart.js +2 -2
- package/dist/components/list.cjs.map +1 -1
- package/dist/components/list.js.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 +3 -3
- package/dist/components/message-scroller.cjs.map +1 -1
- package/dist/components/message-scroller.js +4 -4
- package/dist/components/message-scroller.js.map +1 -1
- package/dist/components/metering-row.cjs +3 -3
- package/dist/components/metering-row.cjs.map +1 -1
- package/dist/components/metering-row.d.cts +3 -3
- package/dist/components/metering-row.d.ts +3 -3
- package/dist/components/metering-row.js +3 -3
- package/dist/components/metering-row.js.map +1 -1
- package/dist/components/money-saved-block.cjs +2 -5
- package/dist/components/money-saved-block.cjs.map +1 -1
- package/dist/components/money-saved-block.js +2 -5
- package/dist/components/money-saved-block.js.map +1 -1
- package/dist/components/on-off-button.cjs +2 -5
- package/dist/components/on-off-button.cjs.map +1 -1
- package/dist/components/on-off-button.js +2 -5
- package/dist/components/on-off-button.js.map +1 -1
- package/dist/components/page-header.cjs +2 -2
- package/dist/components/page-header.cjs.map +1 -1
- package/dist/components/page-header.d.cts +1 -1
- package/dist/components/page-header.d.ts +1 -1
- package/dist/components/page-header.js +2 -2
- package/dist/components/page-header.js.map +1 -1
- package/dist/components/period-tabs.cjs +3 -6
- package/dist/components/period-tabs.cjs.map +1 -1
- package/dist/components/period-tabs.js +3 -6
- package/dist/components/period-tabs.js.map +1 -1
- package/dist/components/pill.cjs +2 -5
- package/dist/components/pill.cjs.map +1 -1
- package/dist/components/pill.js +3 -6
- package/dist/components/pill.js.map +1 -1
- package/dist/components/power-history-chart.cjs +1 -1
- package/dist/components/power-history-chart.js +2 -2
- package/dist/components/power-history.cjs +1 -1
- package/dist/components/power-history.js +1 -1
- package/dist/components/power-network.cjs +3 -6
- package/dist/components/power-network.cjs.map +1 -1
- package/dist/components/power-network.js +4 -7
- package/dist/components/power-network.js.map +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/sankey-chart.cjs +56 -71
- package/dist/components/sankey-chart.cjs.map +1 -1
- package/dist/components/sankey-chart.js +56 -71
- package/dist/components/sankey-chart.js.map +1 -1
- package/dist/components/schedule-list.cjs +3 -9
- package/dist/components/schedule-list.cjs.map +1 -1
- package/dist/components/schedule-list.js +3 -9
- package/dist/components/schedule-list.js.map +1 -1
- package/dist/components/select.cjs +6 -18
- package/dist/components/select.cjs.map +1 -1
- package/dist/components/select.js +6 -18
- package/dist/components/select.js.map +1 -1
- package/dist/components/sheet.cjs +2 -5
- package/dist/components/sheet.cjs.map +1 -1
- package/dist/components/sheet.js +2 -5
- package/dist/components/sheet.js.map +1 -1
- package/dist/components/slider.cjs +9 -3
- package/dist/components/slider.cjs.map +1 -1
- package/dist/components/slider.js +9 -3
- package/dist/components/slider.js.map +1 -1
- package/dist/components/smart-toggle-button.cjs +2 -5
- package/dist/components/smart-toggle-button.cjs.map +1 -1
- package/dist/components/smart-toggle-button.js +2 -5
- package/dist/components/smart-toggle-button.js.map +1 -1
- package/dist/components/solar-forecast-chart.cjs +8 -9
- package/dist/components/solar-forecast-chart.cjs.map +1 -1
- package/dist/components/solar-forecast-chart.d.cts +2 -2
- package/dist/components/solar-forecast-chart.d.ts +2 -2
- package/dist/components/solar-forecast-chart.js +8 -9
- package/dist/components/solar-forecast-chart.js.map +1 -1
- package/dist/components/stepper.cjs +3 -9
- package/dist/components/stepper.cjs.map +1 -1
- package/dist/components/stepper.js +3 -9
- package/dist/components/stepper.js.map +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/tabs.cjs +2 -2
- package/dist/components/tabs.cjs.map +1 -1
- package/dist/components/tabs.js +2 -2
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/textarea.cjs +1 -1
- package/dist/components/textarea.js +1 -1
- package/dist/components/theme.js +1 -1
- package/dist/components/toast.cjs +9 -12
- package/dist/components/toast.cjs.map +1 -1
- package/dist/components/toast.js +9 -12
- package/dist/components/toast.js.map +1 -1
- package/dist/components/tooltip.cjs +2 -5
- package/dist/components/tooltip.cjs.map +1 -1
- package/dist/components/tooltip.js +2 -5
- package/dist/components/tooltip.js.map +1 -1
- package/dist/styles/index.css +0 -2
- package/package.json +3 -10
- package/dist/icons/index.cjs +0 -7
- package/dist/icons/index.d.cts +0 -4
- package/dist/icons/index.d.ts +0 -4
- package/dist/icons/index.js +0 -3
- package/dist/icons/material-symbol.cjs +0 -106
- package/dist/icons/material-symbol.cjs.map +0 -1
- package/dist/icons/material-symbol.d.cts +0 -21
- package/dist/icons/material-symbol.d.ts +0 -21
- package/dist/icons/material-symbol.js +0 -102
- package/dist/icons/material-symbol.js.map +0 -1
- package/dist/styles/material-symbol.css +0 -25
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.cjs","names":["TooltipPrimitive","
|
|
1
|
+
{"version":3,"file":"tooltip.cjs","names":["TooltipPrimitive","Info"],"sources":["../../src/components/tooltip.tsx"],"sourcesContent":["import { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip'\nimport { Info } from '@epilot/spark-icons'\nimport * as React from 'react'\nimport { cn } from '../utils/cn'\n\nconst TooltipProvider = ({\n delay = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) => {\n return <TooltipPrimitive.Provider delay={delay} {...props} />\n}\n\nconst TooltipPortal = ({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Portal>) => {\n return <TooltipPrimitive.Portal data-slot=\"tooltip-portal\" {...props} />\n}\n\ntype TooltipProps = React.ComponentProps<typeof TooltipPrimitive.Root>\n\nconst Tooltip = ({ ...props }: TooltipProps) => {\n return <TooltipPrimitive.Root {...props} />\n}\n\nconst TooltipTrigger = ({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) => {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\ntype TooltipContentProps = React.ComponentProps<typeof TooltipPrimitive.Popup> &\n Pick<\n TooltipPrimitive.Positioner.Props,\n 'align' | 'alignOffset' | 'side' | 'sideOffset'\n > & {\n hideArrow?: boolean\n variant?: 'default' | 'destructive'\n }\n\nconst TooltipContent = ({\n className,\n hideArrow = false,\n variant = 'default',\n children,\n align,\n alignOffset,\n side,\n sideOffset = 4,\n ...props\n}: TooltipContentProps) => {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n className=\"isolate z-50\"\n side={side}\n sideOffset={sideOffset}\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n data-variant={variant}\n className={cn(\n 'z-50 w-fit origin-(--transform-origin) rounded-lg p-2 text-xs leading-none transition-[opacity,scale,translate] duration-150',\n // enter: fade + zoom + a slight per-side slide (was animate-in)\n 'data-starting-style:scale-95 data-starting-style:opacity-0',\n 'data-[side=bottom]:data-starting-style:-translate-y-1 data-[side=left]:data-starting-style:translate-x-1 data-[side=right]:data-starting-style:-translate-x-1 data-[side=top]:data-starting-style:translate-y-1',\n // exit: instant (was data-[state=closed]:duration-0)\n 'data-ending-style:opacity-0 data-ending-style:duration-0',\n 'data-[variant=default]:bg-gray-12 data-[variant=default]:text-gray-1',\n 'data-[variant=destructive]:bg-red-12 data-[variant=destructive]:text-red-1',\n className,\n )}\n {...props}\n >\n {children}\n {!hideArrow && (\n <TooltipPrimitive.Arrow\n data-variant={variant}\n className={cn(\n 'z-50',\n // svg tip points up; rotate per side, overlap 2px for a seamless join\n 'data-[side=bottom]:top-[-8px]',\n 'data-[side=top]:bottom-[-8px] data-[side=top]:rotate-180',\n 'data-[side=left]:right-[-13px] data-[side=left]:rotate-90',\n 'data-[side=right]:left-[-13px] data-[side=right]:-rotate-90',\n 'data-[variant=default]:text-gray-12',\n 'data-[variant=destructive]:text-red-12',\n )}\n >\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 20 10\" width=\"20\">\n <path\n d=\"M9.66437 2.60207L4.80758 6.97318C4.07308 7.63423 3.11989 8 2.13172 8H0V10H20V8H18.5349C17.5468 8 16.5936 7.63423 15.8591 6.97318L11.0023 2.60207C10.622 2.2598 10.0447 2.25979 9.66437 2.60207Z\"\n fill=\"currentColor\"\n />\n </svg>\n </TooltipPrimitive.Arrow>\n )}\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\ninterface InfoTooltipProps {\n content: string\n label: string\n 'aria-label'?: string\n}\n\nconst InfoTooltip = ({\n content,\n label,\n 'aria-label': ariaLabel,\n}: InfoTooltipProps) => {\n return (\n <Tooltip>\n <TooltipTrigger\n render={\n <button\n aria-label={ariaLabel ?? label}\n className=\"focus-visible:ring-primary inline-flex size-6 min-h-[24px] min-w-[24px] shrink-0 cursor-help items-center justify-center rounded-full p-0 text-gray-light transition-colors hover:text-gray focus-visible:ring-2 focus-visible:outline-none\"\n type=\"button\"\n />\n }\n >\n <Info className=\"text-sm!\" />\n </TooltipTrigger>\n <TooltipContent className=\"max-w-xs whitespace-pre-line\">\n {content}\n </TooltipContent>\n </Tooltip>\n )\n}\n\nexport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n TooltipProvider,\n TooltipPortal,\n InfoTooltip,\n}\n"],"mappings":";;;;;;;;;;AAKA,MAAM,mBAAmB,EACvB,QAAQ,GACR,GAAG,YACyD;CAC5D,OAAO,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,UAAlB;EAAkC;EAAO,GAAI;CAAQ,CAAA;AAC9D;AAEA,MAAM,iBAAiB,EACrB,GAAG,YACuD;CAC1D,OAAO,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,QAAlB;EAAyB,aAAU;EAAiB,GAAI;CAAQ,CAAA;AACzE;AAIA,MAAM,WAAW,EAAE,GAAG,YAA0B;CAC9C,OAAO,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,MAAlB,EAAuB,GAAI,MAAQ,CAAA;AAC5C;AAEA,MAAM,kBAAkB,EACtB,GAAG,YACwD;CAC3D,OAAO,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,SAAlB;EAA0B,aAAU;EAAkB,GAAI;CAAQ,CAAA;AAC3E;AAWA,MAAM,kBAAkB,EACtB,WACA,YAAY,OACZ,UAAU,WACV,UACA,OACA,aACA,MACA,aAAa,GACb,GAAG,YACsB;CACzB,OACE,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,QAAlB,EAAA,UACE,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,YAAlB;EACS;EACM;EACb,WAAU;EACJ;EACM;YAEZ,iBAAA,GAAA,kBAAA,MAACA,uBAAAA,QAAiB,OAAlB;GACE,aAAU;GACV,gBAAc;GACd,YAAA,GAAA,OAAA,IACE,gIAEA,8DACA,mNAEA,4DACA,wEACA,8EACA,SACF;GACA,GAAI;aAdN,CAgBG,UACA,CAAC,aACA,iBAAA,GAAA,kBAAA,KAACA,uBAAAA,QAAiB,OAAlB;IACE,gBAAc;IACd,YAAA,GAAA,OAAA,IACE,QAEA,iCACA,4DACA,6DACA,+DACA,uCACA,wCACF;cAEA,iBAAA,GAAA,kBAAA,KAAC,OAAD;KAAK,MAAK;KAAO,QAAO;KAAK,SAAQ;KAAY,OAAM;eACrD,iBAAA,GAAA,kBAAA,KAAC,QAAD;MACE,GAAE;MACF,MAAK;KACN,CAAA;IACE,CAAA;GACiB,CAAA,CAEJ;;CACG,CAAA,EACN,CAAA;AAE7B;AAQA,MAAM,eAAe,EACnB,SACA,OACA,cAAc,gBACQ;CACtB,OACE,iBAAA,GAAA,kBAAA,MAAC,SAAD,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,KAAC,gBAAD;EACE,QACE,iBAAA,GAAA,kBAAA,KAAC,UAAD;GACE,cAAY,aAAa;GACzB,WAAU;GACV,MAAK;EACN,CAAA;YAGH,iBAAA,GAAA,kBAAA,KAACC,oBAAAA,MAAD,EAAM,WAAU,WAAY,CAAA;CACd,CAAA,GAChB,iBAAA,GAAA,kBAAA,KAAC,gBAAD;EAAgB,WAAU;YACvB;CACa,CAAA,CACT,EAAA,CAAA;AAEb"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../utils/cn.js";
|
|
3
|
-
import { MaterialSymbol } from "../icons/material-symbol.js";
|
|
4
3
|
import "react";
|
|
4
|
+
import { Info } from "@epilot/spark-icons";
|
|
5
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
6
|
import { Tooltip as Tooltip$1 } from "@base-ui/react/tooltip";
|
|
7
7
|
//#region src/components/tooltip.tsx
|
|
@@ -62,10 +62,7 @@ const InfoTooltip = ({ content, label, "aria-label": ariaLabel }) => {
|
|
|
62
62
|
className: "focus-visible:ring-primary inline-flex size-6 min-h-[24px] min-w-[24px] shrink-0 cursor-help items-center justify-center rounded-full p-0 text-gray-light transition-colors hover:text-gray focus-visible:ring-2 focus-visible:outline-none",
|
|
63
63
|
type: "button"
|
|
64
64
|
}),
|
|
65
|
-
children: /* @__PURE__ */ jsx(
|
|
66
|
-
className: "text-sm!",
|
|
67
|
-
name: "info"
|
|
68
|
-
})
|
|
65
|
+
children: /* @__PURE__ */ jsx(Info, { className: "text-sm!" })
|
|
69
66
|
}), /* @__PURE__ */ jsx(TooltipContent, {
|
|
70
67
|
className: "max-w-xs whitespace-pre-line",
|
|
71
68
|
children: content
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.js","names":["TooltipPrimitive"],"sources":["../../src/components/tooltip.tsx"],"sourcesContent":["import { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip'\nimport
|
|
1
|
+
{"version":3,"file":"tooltip.js","names":["TooltipPrimitive"],"sources":["../../src/components/tooltip.tsx"],"sourcesContent":["import { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip'\nimport { Info } from '@epilot/spark-icons'\nimport * as React from 'react'\nimport { cn } from '../utils/cn'\n\nconst TooltipProvider = ({\n delay = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) => {\n return <TooltipPrimitive.Provider delay={delay} {...props} />\n}\n\nconst TooltipPortal = ({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Portal>) => {\n return <TooltipPrimitive.Portal data-slot=\"tooltip-portal\" {...props} />\n}\n\ntype TooltipProps = React.ComponentProps<typeof TooltipPrimitive.Root>\n\nconst Tooltip = ({ ...props }: TooltipProps) => {\n return <TooltipPrimitive.Root {...props} />\n}\n\nconst TooltipTrigger = ({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) => {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\ntype TooltipContentProps = React.ComponentProps<typeof TooltipPrimitive.Popup> &\n Pick<\n TooltipPrimitive.Positioner.Props,\n 'align' | 'alignOffset' | 'side' | 'sideOffset'\n > & {\n hideArrow?: boolean\n variant?: 'default' | 'destructive'\n }\n\nconst TooltipContent = ({\n className,\n hideArrow = false,\n variant = 'default',\n children,\n align,\n alignOffset,\n side,\n sideOffset = 4,\n ...props\n}: TooltipContentProps) => {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n className=\"isolate z-50\"\n side={side}\n sideOffset={sideOffset}\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n data-variant={variant}\n className={cn(\n 'z-50 w-fit origin-(--transform-origin) rounded-lg p-2 text-xs leading-none transition-[opacity,scale,translate] duration-150',\n // enter: fade + zoom + a slight per-side slide (was animate-in)\n 'data-starting-style:scale-95 data-starting-style:opacity-0',\n 'data-[side=bottom]:data-starting-style:-translate-y-1 data-[side=left]:data-starting-style:translate-x-1 data-[side=right]:data-starting-style:-translate-x-1 data-[side=top]:data-starting-style:translate-y-1',\n // exit: instant (was data-[state=closed]:duration-0)\n 'data-ending-style:opacity-0 data-ending-style:duration-0',\n 'data-[variant=default]:bg-gray-12 data-[variant=default]:text-gray-1',\n 'data-[variant=destructive]:bg-red-12 data-[variant=destructive]:text-red-1',\n className,\n )}\n {...props}\n >\n {children}\n {!hideArrow && (\n <TooltipPrimitive.Arrow\n data-variant={variant}\n className={cn(\n 'z-50',\n // svg tip points up; rotate per side, overlap 2px for a seamless join\n 'data-[side=bottom]:top-[-8px]',\n 'data-[side=top]:bottom-[-8px] data-[side=top]:rotate-180',\n 'data-[side=left]:right-[-13px] data-[side=left]:rotate-90',\n 'data-[side=right]:left-[-13px] data-[side=right]:-rotate-90',\n 'data-[variant=default]:text-gray-12',\n 'data-[variant=destructive]:text-red-12',\n )}\n >\n <svg fill=\"none\" height=\"10\" viewBox=\"0 0 20 10\" width=\"20\">\n <path\n d=\"M9.66437 2.60207L4.80758 6.97318C4.07308 7.63423 3.11989 8 2.13172 8H0V10H20V8H18.5349C17.5468 8 16.5936 7.63423 15.8591 6.97318L11.0023 2.60207C10.622 2.2598 10.0447 2.25979 9.66437 2.60207Z\"\n fill=\"currentColor\"\n />\n </svg>\n </TooltipPrimitive.Arrow>\n )}\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\ninterface InfoTooltipProps {\n content: string\n label: string\n 'aria-label'?: string\n}\n\nconst InfoTooltip = ({\n content,\n label,\n 'aria-label': ariaLabel,\n}: InfoTooltipProps) => {\n return (\n <Tooltip>\n <TooltipTrigger\n render={\n <button\n aria-label={ariaLabel ?? label}\n className=\"focus-visible:ring-primary inline-flex size-6 min-h-[24px] min-w-[24px] shrink-0 cursor-help items-center justify-center rounded-full p-0 text-gray-light transition-colors hover:text-gray focus-visible:ring-2 focus-visible:outline-none\"\n type=\"button\"\n />\n }\n >\n <Info className=\"text-sm!\" />\n </TooltipTrigger>\n <TooltipContent className=\"max-w-xs whitespace-pre-line\">\n {content}\n </TooltipContent>\n </Tooltip>\n )\n}\n\nexport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n TooltipProvider,\n TooltipPortal,\n InfoTooltip,\n}\n"],"mappings":";;;;;;;AAKA,MAAM,mBAAmB,EACvB,QAAQ,GACR,GAAG,YACyD;CAC5D,OAAO,oBAACA,UAAiB,UAAlB;EAAkC;EAAO,GAAI;CAAQ,CAAA;AAC9D;AAEA,MAAM,iBAAiB,EACrB,GAAG,YACuD;CAC1D,OAAO,oBAACA,UAAiB,QAAlB;EAAyB,aAAU;EAAiB,GAAI;CAAQ,CAAA;AACzE;AAIA,MAAM,WAAW,EAAE,GAAG,YAA0B;CAC9C,OAAO,oBAACA,UAAiB,MAAlB,EAAuB,GAAI,MAAQ,CAAA;AAC5C;AAEA,MAAM,kBAAkB,EACtB,GAAG,YACwD;CAC3D,OAAO,oBAACA,UAAiB,SAAlB;EAA0B,aAAU;EAAkB,GAAI;CAAQ,CAAA;AAC3E;AAWA,MAAM,kBAAkB,EACtB,WACA,YAAY,OACZ,UAAU,WACV,UACA,OACA,aACA,MACA,aAAa,GACb,GAAG,YACsB;CACzB,OACE,oBAACA,UAAiB,QAAlB,EAAA,UACE,oBAACA,UAAiB,YAAlB;EACS;EACM;EACb,WAAU;EACJ;EACM;YAEZ,qBAACA,UAAiB,OAAlB;GACE,aAAU;GACV,gBAAc;GACd,WAAW,GACT,gIAEA,8DACA,mNAEA,4DACA,wEACA,8EACA,SACF;GACA,GAAI;aAdN,CAgBG,UACA,CAAC,aACA,oBAACA,UAAiB,OAAlB;IACE,gBAAc;IACd,WAAW,GACT,QAEA,iCACA,4DACA,6DACA,+DACA,uCACA,wCACF;cAEA,oBAAC,OAAD;KAAK,MAAK;KAAO,QAAO;KAAK,SAAQ;KAAY,OAAM;eACrD,oBAAC,QAAD;MACE,GAAE;MACF,MAAK;KACN,CAAA;IACE,CAAA;GACiB,CAAA,CAEJ;;CACG,CAAA,EACN,CAAA;AAE7B;AAQA,MAAM,eAAe,EACnB,SACA,OACA,cAAc,gBACQ;CACtB,OACE,qBAAC,SAAD,EAAA,UAAA,CACE,oBAAC,gBAAD;EACE,QACE,oBAAC,UAAD;GACE,cAAY,aAAa;GACzB,WAAU;GACV,MAAK;EACN,CAAA;YAGH,oBAAC,MAAD,EAAM,WAAU,WAAY,CAAA;CACd,CAAA,GAChB,oBAAC,gBAAD;EAAgB,WAAU;YACvB;CACa,CAAA,CACT,EAAA,CAAA;AAEb"}
|
package/dist/styles/index.css
CHANGED
|
@@ -77,8 +77,6 @@
|
|
|
77
77
|
/* Default Spark brand scale */
|
|
78
78
|
@import './spark-default.css' layer(base);
|
|
79
79
|
|
|
80
|
-
@import './material-symbol.css' layer(base);
|
|
81
|
-
|
|
82
80
|
/* Tailwind v4 theme: scales, semantic tokens, dark variant, safelist */
|
|
83
81
|
@import './theme.css';
|
|
84
82
|
@import './utilities.css';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epilot/spark-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "React UI component library from Spark SDK",
|
|
5
5
|
"homepage": "https://spark-ui.epilot.io/docs/ui",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -31,14 +31,6 @@
|
|
|
31
31
|
"types": "./dist/hooks/*.d.ts",
|
|
32
32
|
"default": "./dist/hooks/*.js"
|
|
33
33
|
},
|
|
34
|
-
"./icons": {
|
|
35
|
-
"types": "./dist/icons/index.d.ts",
|
|
36
|
-
"default": "./dist/icons/index.js"
|
|
37
|
-
},
|
|
38
|
-
"./icons/*": {
|
|
39
|
-
"types": "./dist/icons/*.d.ts",
|
|
40
|
-
"default": "./dist/icons/*.js"
|
|
41
|
-
},
|
|
42
34
|
"./lib/*": {
|
|
43
35
|
"types": "./dist/lib/*.d.ts",
|
|
44
36
|
"default": "./dist/lib/*.js"
|
|
@@ -73,7 +65,8 @@
|
|
|
73
65
|
"class-variance-authority": "^0.7.1",
|
|
74
66
|
"cnfast": "^0.0.8",
|
|
75
67
|
"colorjs.io": "^0.5.2",
|
|
76
|
-
"vaul": "^1.1.2"
|
|
68
|
+
"vaul": "^1.1.2",
|
|
69
|
+
"@epilot/spark-icons": "^0.0.2"
|
|
77
70
|
},
|
|
78
71
|
"devDependencies": {
|
|
79
72
|
"@tailwindcss/postcss": "^4.2.4",
|
package/dist/icons/index.cjs
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const require_icons_material_symbol = require("./material-symbol.cjs");
|
|
4
|
-
exports.MaterialSymbol = require_icons_material_symbol.MaterialSymbol;
|
|
5
|
-
exports.materialSymbolIconNames = require_icons_material_symbol.materialSymbolIconNames;
|
|
6
|
-
exports.materialSymbolIconNamesString = require_icons_material_symbol.materialSymbolIconNamesString;
|
|
7
|
-
exports.materialSymbolIconNamesURL = require_icons_material_symbol.materialSymbolIconNamesURL;
|
package/dist/icons/index.d.cts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { MaterialSymbol, MaterialSymbolIconName, MaterialSymbolProps, materialSymbolIconNames, materialSymbolIconNamesString, materialSymbolIconNamesURL } from "./material-symbol.cjs";
|
|
4
|
-
export { MaterialSymbol, type MaterialSymbolIconName, type MaterialSymbolProps, materialSymbolIconNames, materialSymbolIconNamesString, materialSymbolIconNamesURL };
|
package/dist/icons/index.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { MaterialSymbol, MaterialSymbolIconName, MaterialSymbolProps, materialSymbolIconNames, materialSymbolIconNamesString, materialSymbolIconNamesURL } from "./material-symbol.js";
|
|
4
|
-
export { MaterialSymbol, type MaterialSymbolIconName, type MaterialSymbolProps, materialSymbolIconNames, materialSymbolIconNamesString, materialSymbolIconNamesURL };
|
package/dist/icons/index.js
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
let react_jsx_runtime = require("react/jsx-runtime");
|
|
4
|
-
let cnfast = require("cnfast");
|
|
5
|
-
//#region src/icons/material-symbol.tsx
|
|
6
|
-
const materialSymbolIconNames = [
|
|
7
|
-
"access_time",
|
|
8
|
-
"add",
|
|
9
|
-
"alarm",
|
|
10
|
-
"arrow_downward",
|
|
11
|
-
"arrow_upward",
|
|
12
|
-
"auto_awesome",
|
|
13
|
-
"bar_chart",
|
|
14
|
-
"battery_0_bar",
|
|
15
|
-
"battery_1_bar",
|
|
16
|
-
"battery_2_bar",
|
|
17
|
-
"battery_3_bar",
|
|
18
|
-
"battery_4_bar",
|
|
19
|
-
"battery_5_bar",
|
|
20
|
-
"battery_6_bar",
|
|
21
|
-
"battery_charging_20",
|
|
22
|
-
"battery_charging_30",
|
|
23
|
-
"battery_charging_50",
|
|
24
|
-
"battery_charging_60",
|
|
25
|
-
"battery_charging_80",
|
|
26
|
-
"battery_charging_90",
|
|
27
|
-
"battery_charging_full",
|
|
28
|
-
"battery_full",
|
|
29
|
-
"bolt",
|
|
30
|
-
"calendar_month",
|
|
31
|
-
"cancel",
|
|
32
|
-
"check",
|
|
33
|
-
"check_circle",
|
|
34
|
-
"chevron_left",
|
|
35
|
-
"chevron_right",
|
|
36
|
-
"circle",
|
|
37
|
-
"close",
|
|
38
|
-
"close_fullscreen",
|
|
39
|
-
"content_copy",
|
|
40
|
-
"dashboard_2",
|
|
41
|
-
"delete",
|
|
42
|
-
"dishwasher",
|
|
43
|
-
"drag_indicator",
|
|
44
|
-
"edit",
|
|
45
|
-
"edit_square",
|
|
46
|
-
"electric_bolt",
|
|
47
|
-
"electric_car",
|
|
48
|
-
"electrical_services",
|
|
49
|
-
"ev_station",
|
|
50
|
-
"expand_more",
|
|
51
|
-
"heat_pump",
|
|
52
|
-
"home",
|
|
53
|
-
"info",
|
|
54
|
-
"laundry",
|
|
55
|
-
"layers",
|
|
56
|
-
"local_fire_department",
|
|
57
|
-
"more_vert",
|
|
58
|
-
"open_in_full",
|
|
59
|
-
"open_in_new",
|
|
60
|
-
"payments",
|
|
61
|
-
"pending",
|
|
62
|
-
"photo_camera",
|
|
63
|
-
"power",
|
|
64
|
-
"search",
|
|
65
|
-
"power_settings_new",
|
|
66
|
-
"price_change",
|
|
67
|
-
"recycling",
|
|
68
|
-
"refresh",
|
|
69
|
-
"schedule",
|
|
70
|
-
"settings",
|
|
71
|
-
"solar_power",
|
|
72
|
-
"speed",
|
|
73
|
-
"sunny",
|
|
74
|
-
"partly_cloudy_day",
|
|
75
|
-
"cloudy",
|
|
76
|
-
"rainy",
|
|
77
|
-
"weather_snowy",
|
|
78
|
-
"swap_vert",
|
|
79
|
-
"thermostat",
|
|
80
|
-
"toggle_on",
|
|
81
|
-
"track_changes",
|
|
82
|
-
"trending_down",
|
|
83
|
-
"trending_up",
|
|
84
|
-
"tune",
|
|
85
|
-
"warning",
|
|
86
|
-
"wifi_off"
|
|
87
|
-
];
|
|
88
|
-
const materialSymbolIconNamesString = [...materialSymbolIconNames].sort().join(",");
|
|
89
|
-
const materialSymbolIconNamesURL = `https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20,400,0,0&icon_names=${materialSymbolIconNamesString}&display=block`;
|
|
90
|
-
const MaterialSymbol = ({ name, className }) => {
|
|
91
|
-
if (!materialSymbolIconNames.includes(name)) console.warn(`[MaterialSymbol] "${name}" isn't a recognized icon name — it will render as literal text, not an icon. See materialSymbolIconNames from '@epilot/spark-ui/icons' for the full set.`);
|
|
92
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
93
|
-
"aria-hidden": "true",
|
|
94
|
-
className: (0, cnfast.cn)("material-symbols-rounded inline-block size-[1em] shrink-0 overflow-hidden text-(length:--spark-icon-size,20px)! leading-none select-none", className),
|
|
95
|
-
translate: "no",
|
|
96
|
-
children: name
|
|
97
|
-
});
|
|
98
|
-
};
|
|
99
|
-
MaterialSymbol.displayName = "MaterialSymbol";
|
|
100
|
-
//#endregion
|
|
101
|
-
exports.MaterialSymbol = MaterialSymbol;
|
|
102
|
-
exports.materialSymbolIconNames = materialSymbolIconNames;
|
|
103
|
-
exports.materialSymbolIconNamesString = materialSymbolIconNamesString;
|
|
104
|
-
exports.materialSymbolIconNamesURL = materialSymbolIconNamesURL;
|
|
105
|
-
|
|
106
|
-
//# sourceMappingURL=material-symbol.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"material-symbol.cjs","names":[],"sources":["../../src/icons/material-symbol.tsx"],"sourcesContent":["import { cn } from '../utils/cn'\n\nexport const materialSymbolIconNames = [\n 'access_time',\n 'add',\n 'alarm',\n 'arrow_downward',\n 'arrow_upward',\n 'auto_awesome',\n 'bar_chart',\n 'battery_0_bar',\n 'battery_1_bar',\n 'battery_2_bar',\n 'battery_3_bar',\n 'battery_4_bar',\n 'battery_5_bar',\n 'battery_6_bar',\n 'battery_charging_20',\n 'battery_charging_30',\n 'battery_charging_50',\n 'battery_charging_60',\n 'battery_charging_80',\n 'battery_charging_90',\n 'battery_charging_full',\n 'battery_full',\n 'bolt',\n 'calendar_month',\n 'cancel',\n 'check',\n 'check_circle',\n 'chevron_left',\n 'chevron_right',\n 'circle',\n 'close',\n 'close_fullscreen',\n 'content_copy',\n 'dashboard_2',\n 'delete',\n 'dishwasher',\n 'drag_indicator',\n 'edit',\n 'edit_square',\n 'electric_bolt',\n 'electric_car',\n 'electrical_services',\n 'ev_station',\n 'expand_more',\n 'heat_pump',\n 'home',\n 'info',\n 'laundry',\n 'layers',\n 'local_fire_department',\n 'more_vert',\n 'open_in_full',\n 'open_in_new',\n 'payments',\n 'pending',\n 'photo_camera',\n 'power',\n 'search',\n 'power_settings_new',\n 'price_change',\n 'recycling',\n 'refresh',\n 'schedule',\n 'settings',\n 'solar_power',\n 'speed',\n 'sunny',\n 'partly_cloudy_day',\n 'cloudy',\n 'rainy',\n 'weather_snowy',\n 'swap_vert',\n 'thermostat',\n 'toggle_on',\n 'track_changes',\n 'trending_down',\n 'trending_up',\n 'tune',\n 'warning',\n 'wifi_off',\n] as const\n\nexport const materialSymbolIconNamesString = [...materialSymbolIconNames]\n .sort()\n .join(',')\nexport const materialSymbolIconNamesURL = `https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20,400,0,0&icon_names=${materialSymbolIconNamesString}&display=block`\n\nexport type MaterialSymbolIconName = (typeof materialSymbolIconNames)[number]\n\nexport type MaterialSymbolProps = {\n name: MaterialSymbolIconName\n className?: string\n}\n\nconst MaterialSymbol = ({ name, className }: MaterialSymbolProps) => {\n if (!materialSymbolIconNames.includes(name)) {\n console.warn(\n `[MaterialSymbol] \"${name}\" isn't a recognized icon name — it will render as literal text, not an icon. See materialSymbolIconNames from '@epilot/spark-ui/icons' for the full set.`,\n )\n }\n\n return (\n <span\n aria-hidden=\"true\"\n className={cn(\n // !important: the Google Fonts stylesheet is unlayered (24px) and beats every layered\n // utility — default size is --spark-icon-size. size-[1em] keeps the box tied to the\n // effective font-size so text-[Npx]! overrides don't leave a 20px box around a smaller glyph.\n 'material-symbols-rounded inline-block size-[1em] shrink-0 overflow-hidden text-(length:--spark-icon-size,20px)! leading-none select-none',\n className,\n )}\n translate=\"no\"\n >\n {name}\n </span>\n )\n}\nMaterialSymbol.displayName = 'MaterialSymbol'\n\nexport { MaterialSymbol }\n"],"mappings":";;;;;AAEA,MAAa,0BAA0B;CACrC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAa,gCAAgC,CAAC,GAAG,uBAAuB,EACrE,KAAK,EACL,KAAK,GAAG;AACX,MAAa,6BAA6B,+GAA+G,8BAA8B;AASvL,MAAM,kBAAkB,EAAE,MAAM,gBAAqC;CACnE,IAAI,CAAC,wBAAwB,SAAS,IAAI,GACxC,QAAQ,KACN,qBAAqB,KAAK,0JAC5B;CAGF,OACE,iBAAA,GAAA,kBAAA,KAAC,QAAD;EACE,eAAY;EACZ,YAAA,GAAA,OAAA,IAIE,4IACA,SACF;EACA,WAAU;YAET;CACG,CAAA;AAEV;AACA,eAAe,cAAc"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
//#region src/icons/material-symbol.d.ts
|
|
4
|
-
declare const materialSymbolIconNames: readonly ["access_time", "add", "alarm", "arrow_downward", "arrow_upward", "auto_awesome", "bar_chart", "battery_0_bar", "battery_1_bar", "battery_2_bar", "battery_3_bar", "battery_4_bar", "battery_5_bar", "battery_6_bar", "battery_charging_20", "battery_charging_30", "battery_charging_50", "battery_charging_60", "battery_charging_80", "battery_charging_90", "battery_charging_full", "battery_full", "bolt", "calendar_month", "cancel", "check", "check_circle", "chevron_left", "chevron_right", "circle", "close", "close_fullscreen", "content_copy", "dashboard_2", "delete", "dishwasher", "drag_indicator", "edit", "edit_square", "electric_bolt", "electric_car", "electrical_services", "ev_station", "expand_more", "heat_pump", "home", "info", "laundry", "layers", "local_fire_department", "more_vert", "open_in_full", "open_in_new", "payments", "pending", "photo_camera", "power", "search", "power_settings_new", "price_change", "recycling", "refresh", "schedule", "settings", "solar_power", "speed", "sunny", "partly_cloudy_day", "cloudy", "rainy", "weather_snowy", "swap_vert", "thermostat", "toggle_on", "track_changes", "trending_down", "trending_up", "tune", "warning", "wifi_off"];
|
|
5
|
-
declare const materialSymbolIconNamesString: string;
|
|
6
|
-
declare const materialSymbolIconNamesURL: string;
|
|
7
|
-
type MaterialSymbolIconName = (typeof materialSymbolIconNames)[number];
|
|
8
|
-
type MaterialSymbolProps = {
|
|
9
|
-
name: MaterialSymbolIconName;
|
|
10
|
-
className?: string;
|
|
11
|
-
};
|
|
12
|
-
declare const MaterialSymbol: {
|
|
13
|
-
({
|
|
14
|
-
name,
|
|
15
|
-
className
|
|
16
|
-
}: MaterialSymbolProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
-
displayName: string;
|
|
18
|
-
};
|
|
19
|
-
//#endregion
|
|
20
|
-
export { MaterialSymbol, MaterialSymbolIconName, MaterialSymbolProps, materialSymbolIconNames, materialSymbolIconNamesString, materialSymbolIconNamesURL };
|
|
21
|
-
//# sourceMappingURL=material-symbol.d.cts.map
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
//#region src/icons/material-symbol.d.ts
|
|
4
|
-
declare const materialSymbolIconNames: readonly ["access_time", "add", "alarm", "arrow_downward", "arrow_upward", "auto_awesome", "bar_chart", "battery_0_bar", "battery_1_bar", "battery_2_bar", "battery_3_bar", "battery_4_bar", "battery_5_bar", "battery_6_bar", "battery_charging_20", "battery_charging_30", "battery_charging_50", "battery_charging_60", "battery_charging_80", "battery_charging_90", "battery_charging_full", "battery_full", "bolt", "calendar_month", "cancel", "check", "check_circle", "chevron_left", "chevron_right", "circle", "close", "close_fullscreen", "content_copy", "dashboard_2", "delete", "dishwasher", "drag_indicator", "edit", "edit_square", "electric_bolt", "electric_car", "electrical_services", "ev_station", "expand_more", "heat_pump", "home", "info", "laundry", "layers", "local_fire_department", "more_vert", "open_in_full", "open_in_new", "payments", "pending", "photo_camera", "power", "search", "power_settings_new", "price_change", "recycling", "refresh", "schedule", "settings", "solar_power", "speed", "sunny", "partly_cloudy_day", "cloudy", "rainy", "weather_snowy", "swap_vert", "thermostat", "toggle_on", "track_changes", "trending_down", "trending_up", "tune", "warning", "wifi_off"];
|
|
5
|
-
declare const materialSymbolIconNamesString: string;
|
|
6
|
-
declare const materialSymbolIconNamesURL: string;
|
|
7
|
-
type MaterialSymbolIconName = (typeof materialSymbolIconNames)[number];
|
|
8
|
-
type MaterialSymbolProps = {
|
|
9
|
-
name: MaterialSymbolIconName;
|
|
10
|
-
className?: string;
|
|
11
|
-
};
|
|
12
|
-
declare const MaterialSymbol: {
|
|
13
|
-
({
|
|
14
|
-
name,
|
|
15
|
-
className
|
|
16
|
-
}: MaterialSymbolProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
-
displayName: string;
|
|
18
|
-
};
|
|
19
|
-
//#endregion
|
|
20
|
-
export { MaterialSymbol, MaterialSymbolIconName, MaterialSymbolProps, materialSymbolIconNames, materialSymbolIconNamesString, materialSymbolIconNamesURL };
|
|
21
|
-
//# sourceMappingURL=material-symbol.d.ts.map
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { cn } from "../utils/cn.js";
|
|
3
|
-
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
//#region src/icons/material-symbol.tsx
|
|
5
|
-
const materialSymbolIconNames = [
|
|
6
|
-
"access_time",
|
|
7
|
-
"add",
|
|
8
|
-
"alarm",
|
|
9
|
-
"arrow_downward",
|
|
10
|
-
"arrow_upward",
|
|
11
|
-
"auto_awesome",
|
|
12
|
-
"bar_chart",
|
|
13
|
-
"battery_0_bar",
|
|
14
|
-
"battery_1_bar",
|
|
15
|
-
"battery_2_bar",
|
|
16
|
-
"battery_3_bar",
|
|
17
|
-
"battery_4_bar",
|
|
18
|
-
"battery_5_bar",
|
|
19
|
-
"battery_6_bar",
|
|
20
|
-
"battery_charging_20",
|
|
21
|
-
"battery_charging_30",
|
|
22
|
-
"battery_charging_50",
|
|
23
|
-
"battery_charging_60",
|
|
24
|
-
"battery_charging_80",
|
|
25
|
-
"battery_charging_90",
|
|
26
|
-
"battery_charging_full",
|
|
27
|
-
"battery_full",
|
|
28
|
-
"bolt",
|
|
29
|
-
"calendar_month",
|
|
30
|
-
"cancel",
|
|
31
|
-
"check",
|
|
32
|
-
"check_circle",
|
|
33
|
-
"chevron_left",
|
|
34
|
-
"chevron_right",
|
|
35
|
-
"circle",
|
|
36
|
-
"close",
|
|
37
|
-
"close_fullscreen",
|
|
38
|
-
"content_copy",
|
|
39
|
-
"dashboard_2",
|
|
40
|
-
"delete",
|
|
41
|
-
"dishwasher",
|
|
42
|
-
"drag_indicator",
|
|
43
|
-
"edit",
|
|
44
|
-
"edit_square",
|
|
45
|
-
"electric_bolt",
|
|
46
|
-
"electric_car",
|
|
47
|
-
"electrical_services",
|
|
48
|
-
"ev_station",
|
|
49
|
-
"expand_more",
|
|
50
|
-
"heat_pump",
|
|
51
|
-
"home",
|
|
52
|
-
"info",
|
|
53
|
-
"laundry",
|
|
54
|
-
"layers",
|
|
55
|
-
"local_fire_department",
|
|
56
|
-
"more_vert",
|
|
57
|
-
"open_in_full",
|
|
58
|
-
"open_in_new",
|
|
59
|
-
"payments",
|
|
60
|
-
"pending",
|
|
61
|
-
"photo_camera",
|
|
62
|
-
"power",
|
|
63
|
-
"search",
|
|
64
|
-
"power_settings_new",
|
|
65
|
-
"price_change",
|
|
66
|
-
"recycling",
|
|
67
|
-
"refresh",
|
|
68
|
-
"schedule",
|
|
69
|
-
"settings",
|
|
70
|
-
"solar_power",
|
|
71
|
-
"speed",
|
|
72
|
-
"sunny",
|
|
73
|
-
"partly_cloudy_day",
|
|
74
|
-
"cloudy",
|
|
75
|
-
"rainy",
|
|
76
|
-
"weather_snowy",
|
|
77
|
-
"swap_vert",
|
|
78
|
-
"thermostat",
|
|
79
|
-
"toggle_on",
|
|
80
|
-
"track_changes",
|
|
81
|
-
"trending_down",
|
|
82
|
-
"trending_up",
|
|
83
|
-
"tune",
|
|
84
|
-
"warning",
|
|
85
|
-
"wifi_off"
|
|
86
|
-
];
|
|
87
|
-
const materialSymbolIconNamesString = [...materialSymbolIconNames].sort().join(",");
|
|
88
|
-
const materialSymbolIconNamesURL = `https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20,400,0,0&icon_names=${materialSymbolIconNamesString}&display=block`;
|
|
89
|
-
const MaterialSymbol = ({ name, className }) => {
|
|
90
|
-
if (!materialSymbolIconNames.includes(name)) console.warn(`[MaterialSymbol] "${name}" isn't a recognized icon name — it will render as literal text, not an icon. See materialSymbolIconNames from '@epilot/spark-ui/icons' for the full set.`);
|
|
91
|
-
return /* @__PURE__ */ jsx("span", {
|
|
92
|
-
"aria-hidden": "true",
|
|
93
|
-
className: cn("material-symbols-rounded inline-block size-[1em] shrink-0 overflow-hidden text-(length:--spark-icon-size,20px)! leading-none select-none", className),
|
|
94
|
-
translate: "no",
|
|
95
|
-
children: name
|
|
96
|
-
});
|
|
97
|
-
};
|
|
98
|
-
MaterialSymbol.displayName = "MaterialSymbol";
|
|
99
|
-
//#endregion
|
|
100
|
-
export { MaterialSymbol, materialSymbolIconNames, materialSymbolIconNamesString, materialSymbolIconNamesURL };
|
|
101
|
-
|
|
102
|
-
//# sourceMappingURL=material-symbol.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"material-symbol.js","names":[],"sources":["../../src/icons/material-symbol.tsx"],"sourcesContent":["import { cn } from '../utils/cn'\n\nexport const materialSymbolIconNames = [\n 'access_time',\n 'add',\n 'alarm',\n 'arrow_downward',\n 'arrow_upward',\n 'auto_awesome',\n 'bar_chart',\n 'battery_0_bar',\n 'battery_1_bar',\n 'battery_2_bar',\n 'battery_3_bar',\n 'battery_4_bar',\n 'battery_5_bar',\n 'battery_6_bar',\n 'battery_charging_20',\n 'battery_charging_30',\n 'battery_charging_50',\n 'battery_charging_60',\n 'battery_charging_80',\n 'battery_charging_90',\n 'battery_charging_full',\n 'battery_full',\n 'bolt',\n 'calendar_month',\n 'cancel',\n 'check',\n 'check_circle',\n 'chevron_left',\n 'chevron_right',\n 'circle',\n 'close',\n 'close_fullscreen',\n 'content_copy',\n 'dashboard_2',\n 'delete',\n 'dishwasher',\n 'drag_indicator',\n 'edit',\n 'edit_square',\n 'electric_bolt',\n 'electric_car',\n 'electrical_services',\n 'ev_station',\n 'expand_more',\n 'heat_pump',\n 'home',\n 'info',\n 'laundry',\n 'layers',\n 'local_fire_department',\n 'more_vert',\n 'open_in_full',\n 'open_in_new',\n 'payments',\n 'pending',\n 'photo_camera',\n 'power',\n 'search',\n 'power_settings_new',\n 'price_change',\n 'recycling',\n 'refresh',\n 'schedule',\n 'settings',\n 'solar_power',\n 'speed',\n 'sunny',\n 'partly_cloudy_day',\n 'cloudy',\n 'rainy',\n 'weather_snowy',\n 'swap_vert',\n 'thermostat',\n 'toggle_on',\n 'track_changes',\n 'trending_down',\n 'trending_up',\n 'tune',\n 'warning',\n 'wifi_off',\n] as const\n\nexport const materialSymbolIconNamesString = [...materialSymbolIconNames]\n .sort()\n .join(',')\nexport const materialSymbolIconNamesURL = `https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@20,400,0,0&icon_names=${materialSymbolIconNamesString}&display=block`\n\nexport type MaterialSymbolIconName = (typeof materialSymbolIconNames)[number]\n\nexport type MaterialSymbolProps = {\n name: MaterialSymbolIconName\n className?: string\n}\n\nconst MaterialSymbol = ({ name, className }: MaterialSymbolProps) => {\n if (!materialSymbolIconNames.includes(name)) {\n console.warn(\n `[MaterialSymbol] \"${name}\" isn't a recognized icon name — it will render as literal text, not an icon. See materialSymbolIconNames from '@epilot/spark-ui/icons' for the full set.`,\n )\n }\n\n return (\n <span\n aria-hidden=\"true\"\n className={cn(\n // !important: the Google Fonts stylesheet is unlayered (24px) and beats every layered\n // utility — default size is --spark-icon-size. size-[1em] keeps the box tied to the\n // effective font-size so text-[Npx]! overrides don't leave a 20px box around a smaller glyph.\n 'material-symbols-rounded inline-block size-[1em] shrink-0 overflow-hidden text-(length:--spark-icon-size,20px)! leading-none select-none',\n className,\n )}\n translate=\"no\"\n >\n {name}\n </span>\n )\n}\nMaterialSymbol.displayName = 'MaterialSymbol'\n\nexport { MaterialSymbol }\n"],"mappings":";;;;AAEA,MAAa,0BAA0B;CACrC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAa,gCAAgC,CAAC,GAAG,uBAAuB,EACrE,KAAK,EACL,KAAK,GAAG;AACX,MAAa,6BAA6B,+GAA+G,8BAA8B;AASvL,MAAM,kBAAkB,EAAE,MAAM,gBAAqC;CACnE,IAAI,CAAC,wBAAwB,SAAS,IAAI,GACxC,QAAQ,KACN,qBAAqB,KAAK,0JAC5B;CAGF,OACE,oBAAC,QAAD;EACE,eAAY;EACZ,WAAW,GAIT,4IACA,SACF;EACA,WAAU;YAET;CACG,CAAA;AAEV;AACA,eAAe,cAAc"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
@layer base {
|
|
2
|
-
.material-symbols-rounded {
|
|
3
|
-
font-family: 'Material Symbols Rounded';
|
|
4
|
-
font-weight: normal;
|
|
5
|
-
font-style: normal;
|
|
6
|
-
font-size: 1em;
|
|
7
|
-
line-height: 1;
|
|
8
|
-
letter-spacing: normal;
|
|
9
|
-
text-transform: none;
|
|
10
|
-
display: inline-block;
|
|
11
|
-
white-space: nowrap;
|
|
12
|
-
word-wrap: normal;
|
|
13
|
-
direction: ltr;
|
|
14
|
-
font-feature-settings: 'liga';
|
|
15
|
-
-webkit-font-smoothing: antialiased;
|
|
16
|
-
font-variation-settings:
|
|
17
|
-
'FILL' 0,
|
|
18
|
-
'wght' 400,
|
|
19
|
-
'GRAD' 0,
|
|
20
|
-
'opsz' 20;
|
|
21
|
-
width: 1em;
|
|
22
|
-
height: 1em;
|
|
23
|
-
overflow: hidden;
|
|
24
|
-
}
|
|
25
|
-
}
|