@-reddacted-/react-ui 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import ColorPicker from "./ColorPicker";
3
- import { Button } from "./Button";
4
- import { randomHex } from "../theme/clipboard";
2
+ import ColorPicker from "./ColorPicker.js";
3
+ import { Button } from "./Button.js";
4
+ import { randomHex } from "../theme/clipboard.js";
5
5
  export function ColorField({ label, value, onChange, randomLabel = "Random color" }) {
6
6
  return (_jsxs("div", { style: rowStyle, children: [_jsx("label", { style: labelStyle, children: label }), _jsxs("div", { style: controlsStyle, children: [_jsx("code", { style: hexStyle, children: value }), _jsx(ColorPicker, { value: value, onChange: onChange, ariaLabel: label }), _jsx(Button, { variant: "ghost", onClick: () => onChange(randomHex()), style: randomBtnStyle, title: randomLabel, children: "\u21BB" })] })] }));
7
7
  }
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useLayoutEffect, useRef, useState } from "react";
3
3
  import { HexColorPicker } from "react-colorful";
4
- import { isHexColor } from "../theme/clipboard";
4
+ import { isHexColor } from "../theme/clipboard.js";
5
5
  const safe = (value) => (isHexColor(value) ? value : "#000000");
6
6
  export default function ColorPicker({ value, onChange, className, style, ariaLabel }) {
7
7
  const [open, setOpen] = useState(false);
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from "react";
3
- import { Button } from "./Button";
3
+ import { Button } from "./Button.js";
4
4
  export default function ConfirmDeleteButton({ onConfirm, label = "Delete", confirmLabel = "Are you sure?", className, style, resetDelay = 10000, }) {
5
5
  const [confirming, setConfirming] = useState(false);
6
6
  useEffect(() => {
@@ -1,5 +1,4 @@
1
1
  import type { ReactNode } from "react";
2
- export type LoadStatus = "loading" | "ready" | "error";
3
2
  export declare function PageMessage({ children }: {
4
3
  children: ReactNode;
5
4
  }): import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"PageStatus.d.ts","sourceRoot":"","sources":["../../src/components/PageStatus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAA;AAGrD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAA;AAEtD,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAEhE;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAoB,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,+BAQ1E;AAED,KAAK,iBAAiB,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,KAAiF,EACjF,UAAwB,GACzB,EAAE,iBAAiB,+BAenB"}
1
+ {"version":3,"file":"PageStatus.d.ts","sourceRoot":"","sources":["../../src/components/PageStatus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAA;AAGrD,wBAAgB,WAAW,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAEhE;AAED,wBAAgB,cAAc,CAAC,EAAE,KAAoB,EAAE,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,+BAQ1E;AAED,KAAK,iBAAiB,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,KAAiF,EACjF,UAAwB,GACzB,EAAE,iBAAiB,+BAenB"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Button } from "./Button";
2
+ import { Button } from "./Button.js";
3
3
  export function PageMessage({ children }) {
4
4
  return _jsx("div", { style: containerStyle, children: children });
5
5
  }
package/dist/index.d.ts CHANGED
@@ -1,20 +1,21 @@
1
- export { default as Modal, openModal, closeModal } from "./components/Modal";
2
- export { default as ColorPicker } from "./components/ColorPicker";
3
- export { default as ConfirmDeleteButton } from "./components/ConfirmDeleteButton";
4
- export { ColorField } from "./components/ColorField";
5
- export { Button, type ButtonVariant } from "./components/Button";
6
- export { NavBar, type NavLink } from "./components/NavBar";
7
- export { PageMessage, LoadingMessage, ErrorMessage, type LoadStatus } from "./components/PageStatus";
8
- export { ThemeProvider, useTheme } from "./theme/ThemeProvider";
9
- export { ThemeSelect } from "./theme/ThemeSelect";
10
- export { defaultPalette, themeVariableGroups, themeVariableKeys, type ThemeVariableGroup } from "./theme/palette";
11
- export { createLocalThemeStore, createHttpThemeStore, type ThemeStore } from "./theme/store";
12
- export { serializeColors, parseColors, isHexColor, randomHex } from "./theme/clipboard";
13
- export type { ThemeColors, ThemeDefinition, ThemeCatalog, ThemeDraft } from "./theme/types";
14
- export { PopupProvider } from "./popup/PopupProvider";
15
- export { PopupHost } from "./popup/PopupHost";
16
- export { createInterceptedFetch, type InterceptorHandlers } from "./popup/fetchInterceptor";
17
- export { createErrorRules, defaultMessages, type ErrorRules, type ErrorRulesOptions, type PopupMessages, } from "./popup/errorRules";
18
- export { fetchJson } from "./net/fetchJson";
19
- export { useDocumentTitle } from "./net/useDocumentTitle";
1
+ export { default as Modal, openModal, closeModal } from "./components/Modal.js";
2
+ export { default as ColorPicker } from "./components/ColorPicker.js";
3
+ export { default as ConfirmDeleteButton } from "./components/ConfirmDeleteButton.js";
4
+ export { ColorField } from "./components/ColorField.js";
5
+ export { Button, type ButtonVariant } from "./components/Button.js";
6
+ export { NavBar, type NavLink } from "./components/NavBar.js";
7
+ export { PageMessage, LoadingMessage, ErrorMessage } from "./components/PageStatus.js";
8
+ export { ThemeProvider, useTheme } from "./theme/ThemeProvider.js";
9
+ export { ThemeSelect } from "./theme/ThemeSelect.js";
10
+ export { defaultPalette, themeVariableGroups, themeVariableKeys, type ThemeVariableGroup } from "./theme/palette.js";
11
+ export { createLocalThemeStore, createHttpThemeStore, type ThemeStore } from "./theme/store.js";
12
+ export { serializeColors, parseColors, isHexColor, randomHex } from "./theme/clipboard.js";
13
+ export type { ThemeColors, ThemeDefinition, ThemeCatalog, ThemeDraft } from "./theme/types.js";
14
+ export { PopupProvider } from "./popup/PopupProvider.js";
15
+ export { PopupHost } from "./popup/PopupHost.js";
16
+ export { createInterceptedFetch, type InterceptorHandlers } from "./popup/fetchInterceptor.js";
17
+ export { createErrorRules, defaultMessages, type ErrorRules, type ErrorRulesOptions, type PopupMessages, } from "./popup/errorRules.js";
18
+ export { fetchJson } from "./net/fetchJson.js";
19
+ export { useDocumentTitle, useAsync, useElementSize, useClickOutside, useEscapeKey } from "@-reddacted-/react-hooks";
20
+ export type { AsyncStatus, AsyncStatus as LoadStatus, AsyncResult, ElementSize } from "@-reddacted-/react-hooks";
20
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC5E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEpG,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACjH,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,KAAK,UAAU,EAAE,MAAM,eAAe,CAAA;AAC5F,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACvF,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE3F,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,sBAAsB,EAAE,KAAK,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC3F,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,aAAa,GACnB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAC/E,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACnE,OAAO,EAAE,MAAM,EAAE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEtF,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AACpH,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC/F,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC1F,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE9F,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAE,KAAK,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAC9F,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,aAAa,GACnB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAG9C,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACpH,YAAY,EAAE,WAAW,EAAE,WAAW,IAAI,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA"}
package/dist/index.js CHANGED
@@ -1,18 +1,19 @@
1
- export { default as Modal, openModal, closeModal } from "./components/Modal";
2
- export { default as ColorPicker } from "./components/ColorPicker";
3
- export { default as ConfirmDeleteButton } from "./components/ConfirmDeleteButton";
4
- export { ColorField } from "./components/ColorField";
5
- export { Button } from "./components/Button";
6
- export { NavBar } from "./components/NavBar";
7
- export { PageMessage, LoadingMessage, ErrorMessage } from "./components/PageStatus";
8
- export { ThemeProvider, useTheme } from "./theme/ThemeProvider";
9
- export { ThemeSelect } from "./theme/ThemeSelect";
10
- export { defaultPalette, themeVariableGroups, themeVariableKeys } from "./theme/palette";
11
- export { createLocalThemeStore, createHttpThemeStore } from "./theme/store";
12
- export { serializeColors, parseColors, isHexColor, randomHex } from "./theme/clipboard";
13
- export { PopupProvider } from "./popup/PopupProvider";
14
- export { PopupHost } from "./popup/PopupHost";
15
- export { createInterceptedFetch } from "./popup/fetchInterceptor";
16
- export { createErrorRules, defaultMessages, } from "./popup/errorRules";
17
- export { fetchJson } from "./net/fetchJson";
18
- export { useDocumentTitle } from "./net/useDocumentTitle";
1
+ export { default as Modal, openModal, closeModal } from "./components/Modal.js";
2
+ export { default as ColorPicker } from "./components/ColorPicker.js";
3
+ export { default as ConfirmDeleteButton } from "./components/ConfirmDeleteButton.js";
4
+ export { ColorField } from "./components/ColorField.js";
5
+ export { Button } from "./components/Button.js";
6
+ export { NavBar } from "./components/NavBar.js";
7
+ export { PageMessage, LoadingMessage, ErrorMessage } from "./components/PageStatus.js";
8
+ export { ThemeProvider, useTheme } from "./theme/ThemeProvider.js";
9
+ export { ThemeSelect } from "./theme/ThemeSelect.js";
10
+ export { defaultPalette, themeVariableGroups, themeVariableKeys } from "./theme/palette.js";
11
+ export { createLocalThemeStore, createHttpThemeStore } from "./theme/store.js";
12
+ export { serializeColors, parseColors, isHexColor, randomHex } from "./theme/clipboard.js";
13
+ export { PopupProvider } from "./popup/PopupProvider.js";
14
+ export { PopupHost } from "./popup/PopupHost.js";
15
+ export { createInterceptedFetch } from "./popup/fetchInterceptor.js";
16
+ export { createErrorRules, defaultMessages, } from "./popup/errorRules.js";
17
+ export { fetchJson } from "./net/fetchJson.js";
18
+ // Réexportés depuis react-hooks : les appelants n'ont pas à connaître le découpage.
19
+ export { useDocumentTitle, useAsync, useElementSize, useClickOutside, useEscapeKey } from "@-reddacted-/react-hooks";
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode } from "react";
2
- import type { ErrorRulesOptions } from "./errorRules";
2
+ import type { ErrorRulesOptions } from "./errorRules.js";
3
3
  type PopupProviderProps = ErrorRulesOptions & {
4
4
  children: ReactNode;
5
5
  closeLabel?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"PopupProvider.d.ts","sourceRoot":"","sources":["../../src/popup/PopupProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,iBAAiB,EAAc,MAAM,cAAc,CAAA;AAMjE,KAAK,kBAAkB,GAAG,iBAAiB,GAAG;IAC5C,QAAQ,EAAE,SAAS,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,EAAE,kBAAkB,+BAkCzF"}
1
+ {"version":3,"file":"PopupProvider.d.ts","sourceRoot":"","sources":["../../src/popup/PopupProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,iBAAiB,EAAc,MAAM,iBAAiB,CAAA;AAMpE,KAAK,kBAAkB,GAAG,iBAAiB,GAAG;IAC5C,QAAQ,EAAE,SAAS,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,WAAW,EAAE,EAAE,kBAAkB,+BAkCzF"}
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useEffect, useRef, useState } from "react";
3
- import { createErrorRules } from "./errorRules";
4
- import { createInterceptedFetch } from "./fetchInterceptor";
5
- import { PopupHost } from "./PopupHost";
3
+ import { createErrorRules } from "./errorRules.js";
4
+ import { createInterceptedFetch } from "./fetchInterceptor.js";
5
+ import { PopupHost } from "./PopupHost.js";
6
6
  export function PopupProvider({ children, closeLabel, ...ruleOptions }) {
7
7
  const [messages, setMessages] = useState([]);
8
8
  // Les options arrivent en littéraux : les garder dans un ref évite de réinstaller
@@ -1,4 +1,4 @@
1
- import type { ErrorRules } from "./errorRules";
1
+ import type { ErrorRules } from "./errorRules.js";
2
2
  export type InterceptorHandlers = {
3
3
  onRequestStart: () => void;
4
4
  onError: (message: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"fetchInterceptor.d.ts","sourceRoot":"","sources":["../../src/popup/fetchInterceptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE9C,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC,CAAA;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,OAAO,KAAK,EACtB,QAAQ,EAAE,mBAAmB,EAC7B,KAAK,EAAE,UAAU,GAChB,OAAO,KAAK,CAYd"}
1
+ {"version":3,"file":"fetchInterceptor.d.ts","sourceRoot":"","sources":["../../src/popup/fetchInterceptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC,CAAA;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,OAAO,KAAK,EACtB,QAAQ,EAAE,mBAAmB,EAC7B,KAAK,EAAE,UAAU,GAChB,OAAO,KAAK,CAYd"}
@@ -1,6 +1,6 @@
1
1
  import type { ReactNode } from "react";
2
- import type { ThemeStore } from "./store";
3
- import type { ThemeColors, ThemeDefinition } from "./types";
2
+ import type { ThemeStore } from "./store.js";
3
+ import type { ThemeColors, ThemeDefinition } from "./types.js";
4
4
  type ThemeContextValue = {
5
5
  themes: ThemeDefinition[];
6
6
  defaultId: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/theme/ThemeProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAI3D,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,eAAe,EAAE,CAAA;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,aAAa,EAAE,WAAW,CAAA;IAC1B,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5B,CAAA;AAID,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,SAAS,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAOD,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,MAAM,EACN,KAAK,EACL,WAA4B,EAC5B,YAA4B,GAC7B,EAAE,kBAAkB,+BA6DpB;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAI5C"}
1
+ {"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/theme/ThemeProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAI9D,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,eAAe,EAAE,CAAA;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,aAAa,EAAE,WAAW,CAAA;IAC1B,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC5B,CAAA;AAID,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,SAAS,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAOD,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,MAAM,EACN,KAAK,EACL,WAA4B,EAC5B,YAA4B,GAC7B,EAAE,kBAAkB,+BA6DpB;AAED,wBAAgB,QAAQ,IAAI,iBAAiB,CAI5C"}
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { createContext, useCallback, useContext, useEffect, useMemo, useState } from "react";
3
- import { defaultPalette } from "./palette";
4
- import { createHttpThemeStore, createLocalThemeStore } from "./store";
3
+ import { defaultPalette } from "./palette.js";
4
+ import { createHttpThemeStore, createLocalThemeStore } from "./store.js";
5
5
  const SELECTION_KEY = "theme-id";
6
6
  const ThemeContext = createContext(null);
7
7
  function readSelection(key) {
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useTheme } from "./ThemeProvider";
2
+ import { useTheme } from "./ThemeProvider.js";
3
3
  export function ThemeSelect({ ariaLabel = "Theme", className, style }) {
4
4
  const { themes, currentId, selectTheme } = useTheme();
5
5
  if (themes.length < 2)
@@ -1,4 +1,4 @@
1
- import type { ThemeColors } from "./types";
1
+ import type { ThemeColors } from "./types.js";
2
2
  export declare function serializeColors(colors: ThemeColors): string;
3
3
  export declare function parseColors(text: string): ThemeColors;
4
4
  export declare function isHexColor(value: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../src/theme/clipboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAI1C,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAK3D;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAOrD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,SAAS,IAAI,MAAM,CAOlC"}
1
+ {"version":3,"file":"clipboard.d.ts","sourceRoot":"","sources":["../../src/theme/clipboard.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAI7C,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAK3D;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAOrD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,SAAS,IAAI,MAAM,CAOlC"}
@@ -1,4 +1,4 @@
1
- import { themeVariableKeys } from "./palette";
1
+ import { themeVariableKeys } from "./palette.js";
2
2
  const HEX = /^#[0-9a-fA-F]{6}$/;
3
3
  export function serializeColors(colors) {
4
4
  const lines = themeVariableKeys
@@ -1,4 +1,4 @@
1
- import type { ThemeColors } from "./types";
1
+ import type { ThemeColors } from "./types.js";
2
2
  export declare const defaultPalette: ThemeColors;
3
3
  export type ThemeVariableGroup = {
4
4
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../src/theme/palette.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,eAAO,MAAM,cAAc,EAAE,WAsB5B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACjD,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,EA+CnD,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAErC,CAAA"}
1
+ {"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../../src/theme/palette.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,eAAO,MAAM,cAAc,EAAE,WAsB5B,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACjD,CAAA;AAED,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,EA+CnD,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAErC,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { ThemeCatalog, ThemeDefinition, ThemeDraft } from "./types";
1
+ import type { ThemeCatalog, ThemeDefinition, ThemeDraft } from "./types.js";
2
2
  export type ThemeStore = {
3
3
  loadVisible(): Promise<ThemeCatalog>;
4
4
  loadAll(): Promise<ThemeCatalog>;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/theme/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAExE,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC,CAAA;IACpC,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,CAAA;IAChC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IACnD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACpD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACtC,CAAA;AAYD,wBAAgB,qBAAqB,CAAC,UAAU,GAAE,MAAoB,GAAG,UAAU,CA8ClF;AAmBD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAiB/D"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/theme/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE3E,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,IAAI,OAAO,CAAC,YAAY,CAAC,CAAA;IACpC,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,CAAA;IAChC,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;IACnD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACpD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACtC,CAAA;AAYD,wBAAgB,qBAAqB,CAAC,UAAU,GAAE,MAAoB,GAAG,UAAU,CA8ClF;AAmBD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAiB/D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@-reddacted-/react-ui",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Theming system, Modal, Button, ColorPicker, NavBar and fetch error popups for React",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -23,7 +23,8 @@
23
23
  "react-dom": ">=18"
24
24
  },
25
25
  "dependencies": {
26
- "react-colorful": "^5.6.1"
26
+ "react-colorful": "^5.6.1",
27
+ "@-reddacted-/react-hooks": "^0.2.0"
27
28
  },
28
29
  "devDependencies": {
29
30
  "@types/react": "^18.3.1",