@verbb/plugin-kit-react 1.0.5 → 1.0.6

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/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 1.0.6 - 2026-06-14
6
+
7
+ ### Added
8
+ - Added `ensureDocumentScrollStability()` and wire it into `configurePluginKitReact()` for Shadow DOM apps, reserving document scrollbar space so Base UI modal scroll lock does not shift Craft CP layouts.
9
+
10
+ ### Changed
11
+ - Changed `SelectInput` to default to `modal={true}` for outside pointer isolation while keeping `alignItemWithTrigger={false}` to avoid the extra scroll-lock path that caused layout jumps in embedded CP panes.
12
+ - Added an `alignItemWithTrigger` prop to `SelectInput` for cases that need the expand-to-trigger animation.
13
+
5
14
  ## 1.0.5 - 2026-06-12
6
15
 
7
16
  ### Fixed
@@ -20,6 +20,7 @@ interface SelectProps<T = unknown> extends Omit<SelectBaseProps, 'children' | 'v
20
20
  onBlur?: React.FocusEventHandler<HTMLButtonElement>;
21
21
  triggerClassName?: string;
22
22
  contentClassName?: string;
23
+ alignItemWithTrigger?: boolean;
23
24
  id?: string;
24
25
  'aria-invalid'?: boolean | 'true' | 'false';
25
26
  'aria-describedby'?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"SelectInput.d.ts","sourceRoot":"","sources":["../../src/components/SelectInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,MAAM,EAOT,MAAM,oCAAoC,CAAC;AAE5C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAc,MAAM,OAAO,CAAC;AAKnD,MAAM,WAAW,MAAM,CAAC,CAAC,GAAG,OAAO;IAC/B,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,WAAW,CAAC,CAAC,GAAG,OAAO,IAAI;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;CACxB,CAAC;AAoCF,KAAK,eAAe,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC;AAErD,UAAU,WAAW,CAAC,CAAC,GAAG,OAAO,CAC7B,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,OAAO,GAAG,cAAc,GAAG,eAAe,CAAC;IACtF,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACpD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,WAAW,gGA4ItB,CAAC;AAEH,eAAe,MAAM,CAAC;AACtB,YAAY,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"SelectInput.d.ts","sourceRoot":"","sources":["../../src/components/SelectInput.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,MAAM,EAOT,MAAM,oCAAoC,CAAC;AAE5C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAc,MAAM,OAAO,CAAC;AAKnD,MAAM,WAAW,MAAM,CAAC,CAAC,GAAG,OAAO;IAC/B,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,WAAW,CAAC,CAAC,GAAG,OAAO,IAAI;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;CACxB,CAAC;AAoCF,KAAK,eAAe,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC;AAErD,UAAU,WAAW,CAAC,CAAC,GAAG,OAAO,CAC7B,SAAQ,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,OAAO,GAAG,cAAc,GAAG,eAAe,CAAC;IACtF,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACpD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,cAAc,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,WAAW,gGAkJtB,CAAC;AAEH,eAAe,MAAM,CAAC;AACtB,YAAY,EAAE,WAAW,EAAE,CAAC"}
@@ -6,7 +6,7 @@ import "./index.js";
6
6
  import { forwardRef } from "react";
7
7
  import { jsx, jsxs } from "react/jsx-runtime";
8
8
  //#region src/components/SelectInput.tsx
9
- var SelectInput = forwardRef(({ options, placeholder, size, onChange, value, triggerClassName, contentClassName, isInvalid, id, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedBy, "aria-errormessage": ariaErrorMessage, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...selectProps }, ref) => {
9
+ var SelectInput = forwardRef(({ options, placeholder, size, onChange, value, triggerClassName, contentClassName, alignItemWithTrigger = false, isInvalid, id, modal = true, "aria-invalid": ariaInvalid, "aria-describedby": ariaDescribedBy, "aria-errormessage": ariaErrorMessage, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...selectProps }, ref) => {
10
10
  const handleValueChange = (nextValue) => {
11
11
  if (onChange) onChange(nextValue);
12
12
  };
@@ -35,6 +35,7 @@ var SelectInput = forwardRef(({ options, placeholder, size, onChange, value, tri
35
35
  onValueChange: handleValueChange,
36
36
  size,
37
37
  items: flatOptions,
38
+ modal,
38
39
  ...selectProps,
39
40
  children: [/* @__PURE__ */ jsxs(SelectTrigger, {
40
41
  ref,
@@ -62,6 +63,7 @@ var SelectInput = forwardRef(({ options, placeholder, size, onChange, value, tri
62
63
  })]
63
64
  }), options?.length > 0 && /* @__PURE__ */ jsx(SelectContent, {
64
65
  className: contentClassName,
66
+ alignItemWithTrigger,
65
67
  children: groupedOptions.map((group) => {
66
68
  return /* @__PURE__ */ jsxs(SelectGroup, { children: [group.group && /* @__PURE__ */ jsx(SelectLabel, { children: group.group }), group.options?.map((option) => {
67
69
  return /* @__PURE__ */ jsxs(SelectItem, {
@@ -1 +1 @@
1
- {"version":3,"file":"SelectInput.js","names":[],"sources":["../../src/components/SelectInput.tsx"],"sourcesContent":["import {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n SelectLabel,\n} from '@verbb/plugin-kit-react/components';\n\nimport type React from 'react';\nimport { ComponentProps, forwardRef } from 'react';\nimport { Status } from '@verbb/plugin-kit-react/components/Status';\nimport { cn } from '@verbb/plugin-kit-react/utils';\n\n\nexport interface Option<T = unknown> {\n value: T;\n label: string;\n disabled?: boolean;\n status?: string;\n}\n\ntype OptionGroup<T = unknown> = {\n group: string;\n options: Option<T>[];\n};\n\n// const valueToString = (val: Option['value']) => {\n// if (val === null) { return '__null__'; }\n// if (val === undefined) {\n// console.error('option value cannot be undefined');\n// return '__undefined__';\n// }\n// if (val === Infinity) { return '__Infinity__'; }\n// if (val === -Infinity) { return '__-Infinity__'; }\n// if (Number.isNaN(val)) { return '__NaN__'; }\n// if (typeof val === 'symbol') { return `__symbol__${val.description}`; }\n// // console.log(JSON.stringify(val));\n// return JSON.stringify(val);\n// };\n\n// const stringToValue = (str: string) => {\n// switch (str) {\n// case '__null__':\n// return null;\n// case '__undefined__':\n// return undefined;\n// case '__Infinity__':\n// return Infinity;\n// case '__-Infinity__':\n// return -Infinity;\n// case '__NaN__':\n// return NaN;\n// default:\n// if (str.startsWith('__symbol__')) {\n// return Symbol(str.slice(10));\n// }\n// return JSON.parse(str);\n// }\n// };\n\ntype SelectBaseProps = ComponentProps<typeof Select>;\n\ninterface SelectProps<T = unknown>\n extends Omit<SelectBaseProps, 'children' | 'value' | 'defaultValue' | 'onValueChange'> {\n options: Array<Option<T> | OptionGroup<T>>;\n placeholder?: string;\n onChange?: (value: T) => void;\n value?: T;\n isInvalid?: boolean;\n onBlur?: React.FocusEventHandler<HTMLButtonElement>;\n triggerClassName?: string;\n contentClassName?: string;\n id?: string;\n 'aria-invalid'?: boolean | 'true' | 'false';\n 'aria-describedby'?: string;\n 'aria-errormessage'?: string;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n}\n\nexport const SelectInput = forwardRef<HTMLButtonElement, SelectProps>(({\n options,\n placeholder,\n size,\n onChange,\n value,\n triggerClassName,\n contentClassName,\n isInvalid,\n id,\n 'aria-invalid': ariaInvalid,\n 'aria-describedby': ariaDescribedBy,\n 'aria-errormessage': ariaErrorMessage,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...selectProps\n}, ref) => {\n const handleValueChange = (nextValue: SelectProps['value']) => {\n if (onChange) {\n onChange(nextValue);\n }\n };\n\n // const hasEmptyOption = options?.find((option) => { return option.value === ''; });\n\n // let defaultValue = undefined;\n\n // // Only show placeholder when value is initially undefined,\n // // or when the value is an empty string and there's an empty option\n // if (value === undefined || value === '') {\n // if (hasEmptyOption) {\n // defaultValue = valueToString('');\n // } else {\n // defaultValue = undefined;\n // }\n // } else {\n // defaultValue = valueToString(value);\n // }\n\n const hasGroup = (option: Option<unknown> | OptionGroup<unknown>): option is OptionGroup<unknown> => {\n return typeof option === 'object' && option !== null && 'group' in option;\n };\n\n const groupedOptions = options.map((option, index) => {\n if (hasGroup(option)) {\n return option;\n }\n\n return {\n group: null,\n options: [option],\n _key: `ungrouped-${index}`,\n };\n });\n\n const flatOptions = options.flatMap((option) => {\n if (hasGroup(option)) {\n return option.options;\n }\n\n return [option];\n });\n\n const selectedOption = flatOptions.find((option) => {\n return String(option.value) === String(value);\n });\n const resolvedPlaceholder = placeholder || '';\n const resolvedIsInvalid = Boolean(isInvalid || ariaInvalid === true || ariaInvalid === 'true');\n\n return (\n <Select\n value={value}\n onValueChange={handleValueChange}\n size={size}\n items={flatOptions as ComponentProps<typeof Select>['items']}\n {...selectProps}\n >\n <SelectTrigger\n ref={ref}\n id={id}\n aria-invalid={resolvedIsInvalid}\n aria-describedby={ariaDescribedBy}\n aria-errormessage={ariaErrorMessage}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n className={cn(\n selectedOption?.status && 'relative [&_[data-slot=select-value]]:pl-5',\n '[&_[data-slot=select-value]]:overflow-hidden [&_[data-slot=select-value]>span]:block [&_[data-slot=select-value]>span]:min-w-0 [&_[data-slot=select-value]>span]:max-w-full [&_[data-slot=select-value]>span]:truncate',\n triggerClassName,\n )}\n >\n {selectedOption?.status && (\n <Status\n status={selectedOption.status}\n className=\"absolute left-2.5 top-1/2 -translate-y-1/2\"\n />\n )}\n <SelectValue placeholder={placeholder}>\n {selectedOption ? (\n <span className=\"block min-w-0 max-w-full truncate\" title={selectedOption.label}>\n {selectedOption.label}\n </span>\n ) : (\n <span className=\"block min-w-0 max-w-full truncate text-slate-500\" title={resolvedPlaceholder}>\n {resolvedPlaceholder}\n </span>\n )}\n </SelectValue>\n </SelectTrigger>\n\n {options?.length > 0 && (\n <SelectContent className={contentClassName}>\n {groupedOptions.map((group) => {\n return (\n <SelectGroup key={group.group ?? group._key}>\n {group.group && <SelectLabel>{group.group}</SelectLabel>}\n\n {group.options?.map((option) => {\n return (\n <SelectItem\n key={String(option.value)}\n value={option.value}\n disabled={option.disabled}\n >\n {option.status && (\n <Status status={option.status} />\n )}\n <span className=\"block min-w-0 flex-1 truncate\" title={option.label}>\n {option.label}\n </span>\n </SelectItem>\n );\n })}\n </SelectGroup>\n );\n })}\n </SelectContent>\n )}\n </Select>\n );\n});\n\nexport default Select;\nexport type { SelectProps };\n"],"mappings":";;;;;;;;AAkFA,IAAa,cAAc,YAA4C,EACnE,SACA,aACA,MACA,UACA,OACA,kBACA,kBACA,WACA,IACA,gBAAgB,aAChB,oBAAoB,iBACpB,qBAAqB,kBACrB,cAAc,WACd,mBAAmB,gBACnB,GAAG,eACJ,QAAQ;CACP,MAAM,qBAAqB,cAAoC;AAC3D,MAAI,SACA,UAAS,UAAU;;CAoB3B,MAAM,YAAY,WAAmF;AACjG,SAAO,OAAO,WAAW,YAAY,WAAW,QAAQ,WAAW;;CAGvE,MAAM,iBAAiB,QAAQ,KAAK,QAAQ,UAAU;AAClD,MAAI,SAAS,OAAO,CAChB,QAAO;AAGX,SAAO;GACH,OAAO;GACP,SAAS,CAAC,OAAO;GACjB,MAAM,aAAa;GACtB;GACH;CAEF,MAAM,cAAc,QAAQ,SAAS,WAAW;AAC5C,MAAI,SAAS,OAAO,CAChB,QAAO,OAAO;AAGlB,SAAO,CAAC,OAAO;GACjB;CAEF,MAAM,iBAAiB,YAAY,MAAM,WAAW;AAChD,SAAO,OAAO,OAAO,MAAM,KAAK,OAAO,MAAM;GAC/C;CACF,MAAM,sBAAsB,eAAe;CAC3C,MAAM,oBAAoB,QAAQ,aAAa,gBAAgB,QAAQ,gBAAgB,OAAO;AAE9F,QACI,qBAAC,QAAD;EACW;EACP,eAAe;EACT;EACN,OAAO;EACP,GAAI;YALR,CAOI,qBAAC,eAAD;GACS;GACD;GACJ,gBAAc;GACd,oBAAkB;GAClB,qBAAmB;GACnB,cAAY;GACZ,mBAAiB;GACjB,WAAW,GACP,gBAAgB,UAAU,8CAC1B,0NACA,iBACH;aAZL,CAcK,gBAAgB,UACb,oBAAC,QAAD;IACI,QAAQ,eAAe;IACvB,WAAU;IACZ,CAAA,EAEN,oBAAC,aAAD;IAA0B;cACrB,iBACG,oBAAC,QAAD;KAAM,WAAU;KAAoC,OAAO,eAAe;eACrE,eAAe;KACb,CAAA,GAEP,oBAAC,QAAD;KAAM,WAAU;KAAmD,OAAO;eACrE;KACE,CAAA;IAED,CAAA,CACF;MAEf,SAAS,SAAS,KACf,oBAAC,eAAD;GAAe,WAAW;aACrB,eAAe,KAAK,UAAU;AAC3B,WACI,qBAAC,aAAD,EAAA,UAAA,CACK,MAAM,SAAS,oBAAC,aAAD,EAAA,UAAc,MAAM,OAAoB,CAAA,EAEvD,MAAM,SAAS,KAAK,WAAW;AAC5B,YACI,qBAAC,YAAD;MAEI,OAAO,OAAO;MACd,UAAU,OAAO;gBAHrB,CAKK,OAAO,UACJ,oBAAC,QAAD,EAAQ,QAAQ,OAAO,QAAU,CAAA,EAErC,oBAAC,QAAD;OAAM,WAAU;OAAgC,OAAO,OAAO;iBACzD,OAAO;OACL,CAAA,CACE;QAVJ,OAAO,OAAO,MAAM,CAUhB;MAEnB,CACQ,EAAA,EAnBI,MAAM,SAAS,MAAM,KAmBzB;KAEpB;GACU,CAAA,CAEf;;EAEf;AAEF,IAAA,sBAAe"}
1
+ {"version":3,"file":"SelectInput.js","names":[],"sources":["../../src/components/SelectInput.tsx"],"sourcesContent":["import {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n SelectLabel,\n} from '@verbb/plugin-kit-react/components';\n\nimport type React from 'react';\nimport { ComponentProps, forwardRef } from 'react';\nimport { Status } from '@verbb/plugin-kit-react/components/Status';\nimport { cn } from '@verbb/plugin-kit-react/utils';\n\n\nexport interface Option<T = unknown> {\n value: T;\n label: string;\n disabled?: boolean;\n status?: string;\n}\n\ntype OptionGroup<T = unknown> = {\n group: string;\n options: Option<T>[];\n};\n\n// const valueToString = (val: Option['value']) => {\n// if (val === null) { return '__null__'; }\n// if (val === undefined) {\n// console.error('option value cannot be undefined');\n// return '__undefined__';\n// }\n// if (val === Infinity) { return '__Infinity__'; }\n// if (val === -Infinity) { return '__-Infinity__'; }\n// if (Number.isNaN(val)) { return '__NaN__'; }\n// if (typeof val === 'symbol') { return `__symbol__${val.description}`; }\n// // console.log(JSON.stringify(val));\n// return JSON.stringify(val);\n// };\n\n// const stringToValue = (str: string) => {\n// switch (str) {\n// case '__null__':\n// return null;\n// case '__undefined__':\n// return undefined;\n// case '__Infinity__':\n// return Infinity;\n// case '__-Infinity__':\n// return -Infinity;\n// case '__NaN__':\n// return NaN;\n// default:\n// if (str.startsWith('__symbol__')) {\n// return Symbol(str.slice(10));\n// }\n// return JSON.parse(str);\n// }\n// };\n\ntype SelectBaseProps = ComponentProps<typeof Select>;\n\ninterface SelectProps<T = unknown>\n extends Omit<SelectBaseProps, 'children' | 'value' | 'defaultValue' | 'onValueChange'> {\n options: Array<Option<T> | OptionGroup<T>>;\n placeholder?: string;\n onChange?: (value: T) => void;\n value?: T;\n isInvalid?: boolean;\n onBlur?: React.FocusEventHandler<HTMLButtonElement>;\n triggerClassName?: string;\n contentClassName?: string;\n alignItemWithTrigger?: boolean;\n id?: string;\n 'aria-invalid'?: boolean | 'true' | 'false';\n 'aria-describedby'?: string;\n 'aria-errormessage'?: string;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n}\n\nexport const SelectInput = forwardRef<HTMLButtonElement, SelectProps>(({\n options,\n placeholder,\n size,\n onChange,\n value,\n triggerClassName,\n contentClassName,\n alignItemWithTrigger = false,\n isInvalid,\n id,\n modal = true,\n 'aria-invalid': ariaInvalid,\n 'aria-describedby': ariaDescribedBy,\n 'aria-errormessage': ariaErrorMessage,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...selectProps\n}, ref) => {\n const handleValueChange = (nextValue: SelectProps['value']) => {\n if (onChange) {\n onChange(nextValue);\n }\n };\n\n // const hasEmptyOption = options?.find((option) => { return option.value === ''; });\n\n // let defaultValue = undefined;\n\n // // Only show placeholder when value is initially undefined,\n // // or when the value is an empty string and there's an empty option\n // if (value === undefined || value === '') {\n // if (hasEmptyOption) {\n // defaultValue = valueToString('');\n // } else {\n // defaultValue = undefined;\n // }\n // } else {\n // defaultValue = valueToString(value);\n // }\n\n const hasGroup = (option: Option<unknown> | OptionGroup<unknown>): option is OptionGroup<unknown> => {\n return typeof option === 'object' && option !== null && 'group' in option;\n };\n\n const groupedOptions = options.map((option, index) => {\n if (hasGroup(option)) {\n return option;\n }\n\n return {\n group: null,\n options: [option],\n _key: `ungrouped-${index}`,\n };\n });\n\n const flatOptions = options.flatMap((option) => {\n if (hasGroup(option)) {\n return option.options;\n }\n\n return [option];\n });\n\n const selectedOption = flatOptions.find((option) => {\n return String(option.value) === String(value);\n });\n const resolvedPlaceholder = placeholder || '';\n const resolvedIsInvalid = Boolean(isInvalid || ariaInvalid === true || ariaInvalid === 'true');\n\n return (\n <Select\n value={value}\n onValueChange={handleValueChange}\n size={size}\n items={flatOptions as ComponentProps<typeof Select>['items']}\n modal={modal}\n {...selectProps}\n >\n <SelectTrigger\n ref={ref}\n id={id}\n aria-invalid={resolvedIsInvalid}\n aria-describedby={ariaDescribedBy}\n aria-errormessage={ariaErrorMessage}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n className={cn(\n selectedOption?.status && 'relative [&_[data-slot=select-value]]:pl-5',\n '[&_[data-slot=select-value]]:overflow-hidden [&_[data-slot=select-value]>span]:block [&_[data-slot=select-value]>span]:min-w-0 [&_[data-slot=select-value]>span]:max-w-full [&_[data-slot=select-value]>span]:truncate',\n triggerClassName,\n )}\n >\n {selectedOption?.status && (\n <Status\n status={selectedOption.status}\n className=\"absolute left-2.5 top-1/2 -translate-y-1/2\"\n />\n )}\n <SelectValue placeholder={placeholder}>\n {selectedOption ? (\n <span className=\"block min-w-0 max-w-full truncate\" title={selectedOption.label}>\n {selectedOption.label}\n </span>\n ) : (\n <span className=\"block min-w-0 max-w-full truncate text-slate-500\" title={resolvedPlaceholder}>\n {resolvedPlaceholder}\n </span>\n )}\n </SelectValue>\n </SelectTrigger>\n\n {options?.length > 0 && (\n <SelectContent\n className={contentClassName}\n alignItemWithTrigger={alignItemWithTrigger}\n >\n {groupedOptions.map((group) => {\n return (\n <SelectGroup key={group.group ?? group._key}>\n {group.group && <SelectLabel>{group.group}</SelectLabel>}\n\n {group.options?.map((option) => {\n return (\n <SelectItem\n key={String(option.value)}\n value={option.value}\n disabled={option.disabled}\n >\n {option.status && (\n <Status status={option.status} />\n )}\n <span className=\"block min-w-0 flex-1 truncate\" title={option.label}>\n {option.label}\n </span>\n </SelectItem>\n );\n })}\n </SelectGroup>\n );\n })}\n </SelectContent>\n )}\n </Select>\n );\n});\n\nexport default Select;\nexport type { SelectProps };\n"],"mappings":";;;;;;;;AAmFA,IAAa,cAAc,YAA4C,EACnE,SACA,aACA,MACA,UACA,OACA,kBACA,kBACA,uBAAuB,OACvB,WACA,IACA,QAAQ,MACR,gBAAgB,aAChB,oBAAoB,iBACpB,qBAAqB,kBACrB,cAAc,WACd,mBAAmB,gBACnB,GAAG,eACJ,QAAQ;CACP,MAAM,qBAAqB,cAAoC;AAC3D,MAAI,SACA,UAAS,UAAU;;CAoB3B,MAAM,YAAY,WAAmF;AACjG,SAAO,OAAO,WAAW,YAAY,WAAW,QAAQ,WAAW;;CAGvE,MAAM,iBAAiB,QAAQ,KAAK,QAAQ,UAAU;AAClD,MAAI,SAAS,OAAO,CAChB,QAAO;AAGX,SAAO;GACH,OAAO;GACP,SAAS,CAAC,OAAO;GACjB,MAAM,aAAa;GACtB;GACH;CAEF,MAAM,cAAc,QAAQ,SAAS,WAAW;AAC5C,MAAI,SAAS,OAAO,CAChB,QAAO,OAAO;AAGlB,SAAO,CAAC,OAAO;GACjB;CAEF,MAAM,iBAAiB,YAAY,MAAM,WAAW;AAChD,SAAO,OAAO,OAAO,MAAM,KAAK,OAAO,MAAM;GAC/C;CACF,MAAM,sBAAsB,eAAe;CAC3C,MAAM,oBAAoB,QAAQ,aAAa,gBAAgB,QAAQ,gBAAgB,OAAO;AAE9F,QACI,qBAAC,QAAD;EACW;EACP,eAAe;EACT;EACN,OAAO;EACA;EACP,GAAI;YANR,CAQI,qBAAC,eAAD;GACS;GACD;GACJ,gBAAc;GACd,oBAAkB;GAClB,qBAAmB;GACnB,cAAY;GACZ,mBAAiB;GACjB,WAAW,GACP,gBAAgB,UAAU,8CAC1B,0NACA,iBACH;aAZL,CAcK,gBAAgB,UACb,oBAAC,QAAD;IACI,QAAQ,eAAe;IACvB,WAAU;IACZ,CAAA,EAEN,oBAAC,aAAD;IAA0B;cACrB,iBACG,oBAAC,QAAD;KAAM,WAAU;KAAoC,OAAO,eAAe;eACrE,eAAe;KACb,CAAA,GAEP,oBAAC,QAAD;KAAM,WAAU;KAAmD,OAAO;eACrE;KACE,CAAA;IAED,CAAA,CACF;MAEf,SAAS,SAAS,KACf,oBAAC,eAAD;GACI,WAAW;GACW;aAErB,eAAe,KAAK,UAAU;AAC3B,WACI,qBAAC,aAAD,EAAA,UAAA,CACK,MAAM,SAAS,oBAAC,aAAD,EAAA,UAAc,MAAM,OAAoB,CAAA,EAEvD,MAAM,SAAS,KAAK,WAAW;AAC5B,YACI,qBAAC,YAAD;MAEI,OAAO,OAAO;MACd,UAAU,OAAO;gBAHrB,CAKK,OAAO,UACJ,oBAAC,QAAD,EAAQ,QAAQ,OAAO,QAAU,CAAA,EAErC,oBAAC,QAAD;OAAM,WAAU;OAAgC,OAAO,OAAO;iBACzD,OAAO;OACL,CAAA,CACE;QAVJ,OAAO,OAAO,MAAM,CAUhB;MAEnB,CACQ,EAAA,EAnBI,MAAM,SAAS,MAAM,KAmBzB;KAEpB;GACU,CAAA,CAEf;;EAEf;AAEF,IAAA,sBAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAgD,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACnG,OAAO,EAAiB,KAAK,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAE5E,KAAK,iBAAiB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,KAAK,MAAM,CAAC;AAEjG,MAAM,MAAM,oBAAoB,GAAG;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC;IAClD,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;CAClD,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,QAAQ,oBAAoB,KAAG,IAwBtE,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAgD,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AACnG,OAAO,EAAiB,KAAK,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAG5E,KAAK,iBAAiB,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,eAAe,KAAK,MAAM,CAAC;AAEjG,MAAM,MAAM,oBAAoB,GAAG;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC;IAClD,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAC;CAClD,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,QAAQ,oBAAoB,KAAG,IA4BtE,CAAC"}
@@ -1,10 +1,14 @@
1
1
  import { setPortalClassName, setPortalContainer, setShadowRootSelectors } from "./portal.js";
2
2
  import { setTranslateFunction, setTranslationCategory } from "./translation.js";
3
3
  import { setHostBridge } from "./hostBridge.js";
4
+ import { ensureDocumentScrollStability } from "./documentScrollStability.js";
4
5
  //#region src/utils/config.ts
5
6
  var configurePluginKitReact = (config) => {
6
7
  if (config.portalClassName) setPortalClassName(config.portalClassName);
7
- if (config.portalContainer) setPortalContainer(config.portalContainer);
8
+ if (config.portalContainer) {
9
+ setPortalContainer(config.portalContainer);
10
+ if (config.portalContainer instanceof ShadowRoot) ensureDocumentScrollStability();
11
+ }
8
12
  if (config.shadowRootSelectors) setShadowRootSelectors(config.shadowRootSelectors);
9
13
  if (config.translationCategory) setTranslationCategory(config.translationCategory);
10
14
  if (config.translate) setTranslateFunction(config.translate);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","names":[],"sources":["../../src/utils/config.ts"],"sourcesContent":["import { setPortalClassName, setPortalContainer, setShadowRootSelectors } from './portal';\nimport { setTranslationCategory, setTranslateFunction, type TranslateParams } from './translation';\nimport { setHostBridge, type PluginKitReactHostBridge } from './hostBridge';\n\ntype TranslateFunction = (category: string, message: string, params?: TranslateParams) => string;\n\nexport type PluginKitReactConfig = {\n portalClassName?: string;\n portalContainer?: HTMLElement | ShadowRoot | null;\n shadowRootSelectors?: string[];\n translationCategory?: string;\n translate?: TranslateFunction;\n hostBridge?: Partial<PluginKitReactHostBridge>;\n};\n\nexport const configurePluginKitReact = (config: PluginKitReactConfig): void => {\n if (config.portalClassName) {\n setPortalClassName(config.portalClassName);\n }\n\n if (config.portalContainer) {\n setPortalContainer(config.portalContainer);\n }\n\n if (config.shadowRootSelectors) {\n setShadowRootSelectors(config.shadowRootSelectors);\n }\n\n if (config.translationCategory) {\n setTranslationCategory(config.translationCategory);\n }\n\n if (config.translate) {\n setTranslateFunction(config.translate);\n }\n\n if (config.hostBridge) {\n setHostBridge(config.hostBridge);\n }\n};\n"],"mappings":";;;;AAeA,IAAa,2BAA2B,WAAuC;AAC3E,KAAI,OAAO,gBACP,oBAAmB,OAAO,gBAAgB;AAG9C,KAAI,OAAO,gBACP,oBAAmB,OAAO,gBAAgB;AAG9C,KAAI,OAAO,oBACP,wBAAuB,OAAO,oBAAoB;AAGtD,KAAI,OAAO,oBACP,wBAAuB,OAAO,oBAAoB;AAGtD,KAAI,OAAO,UACP,sBAAqB,OAAO,UAAU;AAG1C,KAAI,OAAO,WACP,eAAc,OAAO,WAAW"}
1
+ {"version":3,"file":"config.js","names":[],"sources":["../../src/utils/config.ts"],"sourcesContent":["import { setPortalClassName, setPortalContainer, setShadowRootSelectors } from './portal';\nimport { setTranslationCategory, setTranslateFunction, type TranslateParams } from './translation';\nimport { setHostBridge, type PluginKitReactHostBridge } from './hostBridge';\nimport { ensureDocumentScrollStability } from './documentScrollStability';\n\ntype TranslateFunction = (category: string, message: string, params?: TranslateParams) => string;\n\nexport type PluginKitReactConfig = {\n portalClassName?: string;\n portalContainer?: HTMLElement | ShadowRoot | null;\n shadowRootSelectors?: string[];\n translationCategory?: string;\n translate?: TranslateFunction;\n hostBridge?: Partial<PluginKitReactHostBridge>;\n};\n\nexport const configurePluginKitReact = (config: PluginKitReactConfig): void => {\n if (config.portalClassName) {\n setPortalClassName(config.portalClassName);\n }\n\n if (config.portalContainer) {\n setPortalContainer(config.portalContainer);\n\n if (config.portalContainer instanceof ShadowRoot) {\n ensureDocumentScrollStability();\n }\n }\n\n if (config.shadowRootSelectors) {\n setShadowRootSelectors(config.shadowRootSelectors);\n }\n\n if (config.translationCategory) {\n setTranslationCategory(config.translationCategory);\n }\n\n if (config.translate) {\n setTranslateFunction(config.translate);\n }\n\n if (config.hostBridge) {\n setHostBridge(config.hostBridge);\n }\n};\n"],"mappings":";;;;;AAgBA,IAAa,2BAA2B,WAAuC;AAC3E,KAAI,OAAO,gBACP,oBAAmB,OAAO,gBAAgB;AAG9C,KAAI,OAAO,iBAAiB;AACxB,qBAAmB,OAAO,gBAAgB;AAE1C,MAAI,OAAO,2BAA2B,WAClC,gCAA+B;;AAIvC,KAAI,OAAO,oBACP,wBAAuB,OAAO,oBAAoB;AAGtD,KAAI,OAAO,oBACP,wBAAuB,OAAO,oBAAoB;AAGtD,KAAI,OAAO,UACP,sBAAqB,OAAO,UAAU;AAG1C,KAAI,OAAO,WACP,eAAc,OAAO,WAAW"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Reserve scrollbar space on the document root so Base UI modal scroll lock
3
+ * can use the stable gutter path instead of padding/body width compensation.
4
+ * Safe to call multiple times; only injects once.
5
+ */
6
+ export declare const ensureDocumentScrollStability: () => void;
7
+ //# sourceMappingURL=documentScrollStability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentScrollStability.d.ts","sourceRoot":"","sources":["../../src/utils/documentScrollStability.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,QAAO,IAahD,CAAC"}
@@ -0,0 +1,19 @@
1
+ //#region src/utils/documentScrollStability.ts
2
+ var DOCUMENT_SCROLL_STABILITY_STYLE_ID = "plugin-kit-document-scroll-stability";
3
+ /**
4
+ * Reserve scrollbar space on the document root so Base UI modal scroll lock
5
+ * can use the stable gutter path instead of padding/body width compensation.
6
+ * Safe to call multiple times; only injects once.
7
+ */
8
+ var ensureDocumentScrollStability = () => {
9
+ if (typeof document === "undefined") return;
10
+ if (document.querySelector(`style[data-plugin-kit-style-id="${DOCUMENT_SCROLL_STABILITY_STYLE_ID}"]`)) return;
11
+ const style = document.createElement("style");
12
+ style.setAttribute("data-plugin-kit-style-id", DOCUMENT_SCROLL_STABILITY_STYLE_ID);
13
+ style.textContent = "html { scrollbar-gutter: stable; }";
14
+ document.head.appendChild(style);
15
+ };
16
+ //#endregion
17
+ export { ensureDocumentScrollStability };
18
+
19
+ //# sourceMappingURL=documentScrollStability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"documentScrollStability.js","names":[],"sources":["../../src/utils/documentScrollStability.ts"],"sourcesContent":["const DOCUMENT_SCROLL_STABILITY_STYLE_ID = 'plugin-kit-document-scroll-stability';\n\n/**\n * Reserve scrollbar space on the document root so Base UI modal scroll lock\n * can use the stable gutter path instead of padding/body width compensation.\n * Safe to call multiple times; only injects once.\n */\nexport const ensureDocumentScrollStability = (): void => {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (document.querySelector(`style[data-plugin-kit-style-id=\"${DOCUMENT_SCROLL_STABILITY_STYLE_ID}\"]`)) {\n return;\n }\n\n const style = document.createElement('style');\n style.setAttribute('data-plugin-kit-style-id', DOCUMENT_SCROLL_STABILITY_STYLE_ID);\n style.textContent = 'html { scrollbar-gutter: stable; }';\n document.head.appendChild(style);\n};\n"],"mappings":";AAAA,IAAM,qCAAqC;;;;;;AAO3C,IAAa,sCAA4C;AACrD,KAAI,OAAO,aAAa,YACpB;AAGJ,KAAI,SAAS,cAAc,mCAAmC,mCAAmC,IAAI,CACjG;CAGJ,MAAM,QAAQ,SAAS,cAAc,QAAQ;AAC7C,OAAM,aAAa,4BAA4B,mCAAmC;AAClF,OAAM,cAAc;AACpB,UAAS,KAAK,YAAY,MAAM"}
@@ -1,6 +1,7 @@
1
1
  export * from '@verbb/plugin-kit';
2
2
  export * from './classes';
3
3
  export * from './config';
4
+ export * from './documentScrollStability';
4
5
  export * from './craftHostBridge';
5
6
  export * from './handle';
6
7
  export * from './hostBridge';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAGlC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAGlC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC"}
@@ -3,6 +3,7 @@ import { cn } from "./classes.js";
3
3
  import { getPortalClassName, getPortalContainer, getPortalTargetForAppend, getShadowRootSelectors, setPortalClassName, setPortalContainer, setShadowRootSelectors } from "./portal.js";
4
4
  import { setTranslateFunction, setTranslationCategory, translate } from "./translation.js";
5
5
  import { getHostBridge, hostFormatDate, hostGetLocale, hostGetTimepickerOptions, hostOpenElementSelector, hostRequest, setHostBridge } from "./hostBridge.js";
6
+ import { ensureDocumentScrollStability } from "./documentScrollStability.js";
6
7
  import { configurePluginKitReact } from "./config.js";
7
8
  import { createCraftHostBridge } from "./craftHostBridge.js";
8
9
  import { buildUniqueHandleFromSource, getDynamicReservedHandles } from "./handle.js";
@@ -24,6 +25,7 @@ var utils_exports = /* @__PURE__ */ __exportAll({
24
25
  configurePluginKitReact: () => configurePluginKitReact,
25
26
  createCraftHostBridge: () => createCraftHostBridge,
26
27
  createSchemaFieldIndex: () => createSchemaFieldIndex,
28
+ ensureDocumentScrollStability: () => ensureDocumentScrollStability,
27
29
  evaluateCondition: () => evaluateCondition,
28
30
  extractFieldNames: () => extractFieldNames,
29
31
  extractFields: () => extractFields,
@@ -61,6 +63,6 @@ var utils_exports = /* @__PURE__ */ __exportAll({
61
63
  import * as import__verbb_plugin_kit from "@verbb/plugin-kit";
62
64
  __reExport(utils_exports, import__verbb_plugin_kit);
63
65
  //#endregion
64
- export { buildUniqueHandleFromSource, clearTimeOptionsCache, cn, configurePluginKitReact, createCraftHostBridge, createSchemaFieldIndex, evaluateCondition, extractFieldNames, extractFields, generateTimeOptions, getDynamicReservedHandles, getHostBridge, getPortalClassName, getPortalContainer, getPortalTargetForAppend, getRichTextHtml, getRichTextText, getSchemaFieldIndex, getSchemaFieldNames, getShadowRootSelectors, hasSchemaErrors, hasSchemaErrorsCached, hostFormatDate, hostGetLocale, hostGetTimepickerOptions, hostOpenElementSelector, hostRequest, normalizeAttrs, normalizeSchemaNode, setHostBridge, setPortalClassName, setPortalContainer, setShadowRootSelectors, setTranslateFunction, setTranslationCategory, translate, traverseSchema, utils_exports, validateFormValues, zustandHmrFix };
66
+ export { buildUniqueHandleFromSource, clearTimeOptionsCache, cn, configurePluginKitReact, createCraftHostBridge, createSchemaFieldIndex, ensureDocumentScrollStability, evaluateCondition, extractFieldNames, extractFields, generateTimeOptions, getDynamicReservedHandles, getHostBridge, getPortalClassName, getPortalContainer, getPortalTargetForAppend, getRichTextHtml, getRichTextText, getSchemaFieldIndex, getSchemaFieldNames, getShadowRootSelectors, hasSchemaErrors, hasSchemaErrorsCached, hostFormatDate, hostGetLocale, hostGetTimepickerOptions, hostOpenElementSelector, hostRequest, normalizeAttrs, normalizeSchemaNode, setHostBridge, setPortalClassName, setPortalContainer, setShadowRootSelectors, setTranslateFunction, setTranslationCategory, translate, traverseSchema, utils_exports, validateFormValues, zustandHmrFix };
65
67
 
66
68
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/utils/index.ts"],"sourcesContent":["// Re-export all utilities from the base plugin-kit package\nexport * from '@verbb/plugin-kit';\n\n// Export local utilities\nexport * from './classes';\nexport * from './config';\nexport * from './craftHostBridge';\nexport * from './handle';\nexport * from './hostBridge';\nexport * from './portal';\nexport * from './schema';\nexport * from './schemaFieldNames';\nexport * from './schemaIndex';\nexport * from './schemaIndexCache';\nexport * from './schemaNormalize';\nexport * from './store';\nexport * from './timeOptions';\nexport * from './tiptap';\nexport * from './translation';\nexport * from './validation';\n"],"mappings":""}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/utils/index.ts"],"sourcesContent":["// Re-export all utilities from the base plugin-kit package\nexport * from '@verbb/plugin-kit';\n\n// Export local utilities\nexport * from './classes';\nexport * from './config';\nexport * from './documentScrollStability';\nexport * from './craftHostBridge';\nexport * from './handle';\nexport * from './hostBridge';\nexport * from './portal';\nexport * from './schema';\nexport * from './schemaFieldNames';\nexport * from './schemaIndex';\nexport * from './schemaIndexCache';\nexport * from './schemaNormalize';\nexport * from './store';\nexport * from './timeOptions';\nexport * from './tiptap';\nexport * from './translation';\nexport * from './validation';\n"],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verbb/plugin-kit-react",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
@@ -154,7 +154,7 @@
154
154
  "@tiptap/react": "^3.22.4",
155
155
  "@types/prismjs": "^1.26.6",
156
156
  "@uiw/react-codemirror": "^4.25.10",
157
- "@verbb/plugin-kit": "1.0.0",
157
+ "@verbb/plugin-kit": "1.0.6",
158
158
  "class-variance-authority": "^0.7.1",
159
159
  "clsx": "^2.1.1",
160
160
  "cmdk": "^1.1.1",