@flipdish/ui-library 0.39.1 → 0.40.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.
Files changed (21) hide show
  1. package/dist/components/atoms/RadioButton/index.cjs +3 -16
  2. package/dist/components/atoms/RadioButton/index.cjs.map +1 -1
  3. package/dist/components/atoms/RadioButton/index.d.ts.map +1 -1
  4. package/dist/components/atoms/RadioButton/index.js +3 -16
  5. package/dist/components/atoms/RadioButton/index.js.map +1 -1
  6. package/dist/components/organisms/GradientPicker/components/GradientArea.cjs +6 -39
  7. package/dist/components/organisms/GradientPicker/components/GradientArea.cjs.map +1 -1
  8. package/dist/components/organisms/GradientPicker/components/GradientArea.d.ts.map +1 -1
  9. package/dist/components/organisms/GradientPicker/components/GradientArea.js +7 -40
  10. package/dist/components/organisms/GradientPicker/components/GradientArea.js.map +1 -1
  11. package/dist/components/organisms/GradientPicker/gradientPicker.utils.cjs +45 -0
  12. package/dist/components/organisms/GradientPicker/gradientPicker.utils.cjs.map +1 -1
  13. package/dist/components/organisms/GradientPicker/gradientPicker.utils.d.ts +56 -0
  14. package/dist/components/organisms/GradientPicker/gradientPicker.utils.d.ts.map +1 -1
  15. package/dist/components/organisms/GradientPicker/gradientPicker.utils.js +45 -1
  16. package/dist/components/organisms/GradientPicker/gradientPicker.utils.js.map +1 -1
  17. package/dist/native/components/atoms/RadioButton/index.d.ts +47 -9
  18. package/dist/native/components/atoms/RadioButton/index.d.ts.map +1 -0
  19. package/dist/native/components/atoms/RadioButton/index.js +43 -0
  20. package/dist/native/components/atoms/RadioButton/index.js.map +1 -0
  21. package/package.json +1 -1
@@ -5,6 +5,7 @@ var cx = require('@flipdish/ui-library/utilities/cx');
5
5
  var testIdUtils = require('@flipdish/ui-library/utilities/testIdUtils');
6
6
  var React = require('react');
7
7
  var reactAriaComponents = require('react-aria-components');
8
+ var selectionControl_styles = require('../../__internal__/selectionControl/selectionControl.styles.cjs');
8
9
 
9
10
  const RadioGroupContext = React.createContext(null);
10
11
  /** Visual-only radio circle with no input behaviour, for building custom selectable controls; `RadioButton` renders it inside a react-aria `Radio`. */
@@ -23,24 +24,10 @@ const RadioButton = ({ label, hint, className, size = 'sm', 'data-testid': dataT
23
24
  size = context?.size ?? size;
24
25
  const fallbackTestId = testIdUtils.useResolvedTestId({ testId: dataTestId, segment: 'radio-button', rootName: 'radio-button' });
25
26
  const radioTestId = !dataTestId && context?.testIdPrefix ? testIdUtils.joinTestId(context.testIdPrefix, `option-${testIdUtils.slugifyTestId(String(ariaRadioProps.value))}`) : fallbackTestId;
26
- const sizes = {
27
- sm: {
28
- root: 'gap-2',
29
- textWrapper: '',
30
- label: 'text-sm font-medium',
31
- hint: 'text-sm',
32
- },
33
- md: {
34
- root: 'gap-3',
35
- textWrapper: 'gap-0.5',
36
- label: 'text-md font-medium',
37
- hint: 'text-md',
38
- },
39
- };
40
- return (jsxRuntime.jsx(reactAriaComponents.Radio, { ...ariaRadioProps, "data-testid": radioTestId, className: (state) => cx.cx('relative flex items-start', state.isDisabled && 'cursor-not-allowed', sizes[size].root, typeof className === 'function' ? className(state) : className), children: ({ isSelected, isDisabled, isFocusVisible }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(RadioButtonBase, { size: size, isSelected: isSelected, isDisabled: isDisabled, isFocusVisible: isFocusVisible, className: label || hint ? 'mt-0.5' : '' }), (label || hint) && (jsxRuntime.jsxs("div", { className: cx.cx('inline-flex flex-col', sizes[size].textWrapper), children: [label && jsxRuntime.jsx("p", { className: cx.cx('text-secondary select-none', sizes[size].label), children: label }), hint && (
27
+ return (jsxRuntime.jsx(reactAriaComponents.Radio, { ...ariaRadioProps, "data-testid": radioTestId, className: (state) => cx.cx('relative flex items-start', state.isDisabled && 'cursor-not-allowed', selectionControl_styles.selectionControlSizes[size].root, typeof className === 'function' ? className(state) : className), children: ({ isSelected, isDisabled, isFocusVisible }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(RadioButtonBase, { size: size, isSelected: isSelected, isDisabled: isDisabled, isFocusVisible: isFocusVisible, className: label || hint ? 'mt-0.5' : '' }), (label || hint) && (jsxRuntime.jsxs("div", { className: cx.cx('inline-flex flex-col', selectionControl_styles.selectionControlSizes[size].textWrapper), children: [label && jsxRuntime.jsx("p", { className: cx.cx('text-secondary select-none', selectionControl_styles.selectionControlSizes[size].label), children: label }), hint && (
41
28
  // biome-ignore lint/a11y/noStaticElementInteractions: This is a hint that is not interactive
42
29
  // biome-ignore lint/a11y/useKeyWithClickEvents: This is a hint that is not interactive
43
- jsxRuntime.jsx("span", { className: cx.cx('text-tertiary', sizes[size].hint), onClick: (event) => event.stopPropagation(), children: hint }))] }))] })) }));
30
+ jsxRuntime.jsx("span", { className: cx.cx('text-tertiary', selectionControl_styles.selectionControlSizes[size].hint), onClick: (event) => event.stopPropagation(), children: hint }))] }))] })) }));
44
31
  };
45
32
  RadioButton.displayName = 'RadioButton';
46
33
  /** Wrapper around react-aria-components' `RadioGroup` that stacks its `RadioButton` children and passes them `size` and a derived `data-testid`. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../src/components/atoms/RadioButton/index.tsx"],"sourcesContent":[null],"names":["createContext","_jsx","cx","useContext","useResolvedTestId","joinTestId","slugifyTestId","AriaRadio","_jsxs","_Fragment","AriaRadioGroup"],"mappings":";;;;;;;;AAiBA,MAAM,iBAAiB,GAAGA,mBAAa,CAA+B,IAAI,CAAC;AAe3E;AACO,MAAM,eAAe,GAAG,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,GAAG,IAAI,EAAwB,KAAI;IAC1H,QACEC,cAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEC,KAAE,CACX,wIAAwI,EACxI,IAAI,KAAK,IAAI,IAAI,QAAQ,EACzB,UAAU,IAAI,iCAAiC,EAC/C,UAAU,IAAI,+BAA+B,EAC7C,UAAU,IAAI,CAAC,UAAU,IAAI,aAAa,EAC1C,cAAc,IAAI,+CAA+C,EACjE,SAAS,CACV,EAAA,QAAA,EAEDD,cAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEC,KAAE,CAAC,oEAAoE,EAAE,IAAI,KAAK,IAAI,IAAI,QAAQ,EAAE,UAAU,IAAI,aAAa,CAAC,EAAA,CAC3I,EAAA,CACE;AAEV;AACA,eAAe,CAAC,WAAW,GAAG,iBAAiB;AAe/C;;;;;AAKG;AACI,MAAM,WAAW,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,cAAc,EAAoB,KAAI;AACrI,IAAA,MAAM,OAAO,GAAGC,gBAAU,CAAC,iBAAiB,CAAC;AAE7C,IAAA,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,IAAI;AAE5B,IAAA,MAAM,cAAc,GAAGC,6BAAiB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AACnH,IAAA,MAAM,WAAW,GACf,CAAC,UAAU,IAAI,OAAO,EAAE,YAAY,GAAGC,sBAAU,CAAC,OAAO,CAAC,YAAY,EAAE,CAAA,OAAA,EAAUC,yBAAa,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,cAAc;AAEnJ,IAAA,MAAM,KAAK,GAAG;AACZ,QAAA,EAAE,EAAE;AACF,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,KAAK,EAAE,qBAAqB;AAC5B,YAAA,IAAI,EAAE,SAAS;AAChB,SAAA;AACD,QAAA,EAAE,EAAE;AACF,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,KAAK,EAAE,qBAAqB;AAC5B,YAAA,IAAI,EAAE,SAAS;AAChB,SAAA;KACF;AAED,IAAA,QACEL,cAAA,CAACM,yBAAS,EAAA,EAAA,GACJ,cAAc,EAAA,aAAA,EACL,WAAW,EACxB,SAAS,EAAE,CAAC,KAAK,KACfL,KAAE,CACA,2BAA2B,EAC3B,KAAK,CAAC,UAAU,IAAI,oBAAoB,EACxC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAChB,OAAO,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAC/D,YAGF,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAC1CM,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,CACER,cAAA,CAAC,eAAe,EAAA,EACd,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAE,KAAK,IAAI,IAAI,GAAG,QAAQ,GAAG,EAAE,EAAA,CACxC,EACD,CAAC,KAAK,IAAI,IAAI,MACbO,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEN,KAAE,CAAC,sBAAsB,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,EAAA,QAAA,EAAA,CAChE,KAAK,IAAID,sBAAG,SAAS,EAAEC,KAAE,CAAC,4BAA4B,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAA,QAAA,EAAG,KAAK,EAAA,CAAK,EACvF,IAAI;;;AAGH,wBAAAD,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEC,KAAE,CAAC,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,eAAe,EAAE,EAAA,QAAA,EAChG,IAAI,EAAA,CACA,CACR,IACG,CACP,CAAA,EAAA,CACA,CACJ,EAAA,CACS;AAEhB;AACA,WAAW,CAAC,WAAW,GAAG,aAAa;AASvC;MACa,UAAU,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,KAAK,EAAmB,KAAI;AACvH,IAAA,MAAM,UAAU,GAAGE,6BAAiB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AAE7G,IAAA,QACEH,cAAA,CAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,YACnEA,cAAA,CAACS,8BAAc,EAAA,EAAA,GAAK,KAAK,iBAAe,UAAU,EAAE,SAAS,EAAER,KAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC,EAAA,QAAA,EAChG,QAAQ,EAAA,CACM,EAAA,CACU;AAEjC;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/components/atoms/RadioButton/index.tsx"],"sourcesContent":[null],"names":["createContext","_jsx","cx","useContext","useResolvedTestId","joinTestId","slugifyTestId","AriaRadio","selectionControlSizes","_jsxs","_Fragment","AriaRadioGroup"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/RadioButton/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,SAAS,EAAE,KAAK,GAAG,EAAc,MAAM,OAAO,CAAC;AAC5E,OAAO,EAGL,KAAK,eAAe,IAAI,mBAAmB,EAC3C,KAAK,UAAU,IAAI,cAAc,EAClC,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,MAAM,WAAW,oBAAoB;IACnC,wDAAwD;IACxD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sEAAsE;IACtE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sDAAsD;IACtD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,uJAAuJ;AACvJ,eAAO,MAAM,eAAe;kEAAwE,oBAAoB;;CAkBvH,CAAC;AAGF,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,0GAA0G;IAC1G,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,oEAAoE;IACpE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,iDAAiD;IACjD,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC5B,wGAAwG;IACxG,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW;qFAA2F,gBAAgB;;CA8DlI,CAAC;AAGF,UAAU,eAAgB,SAAQ,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,EAAE,mBAAmB;IACxF,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,oJAAoJ;AACpJ,eAAO,MAAM,UAAU,GAAI,oEAA2E,eAAe,gCAUpH,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/RadioButton/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,SAAS,EAAE,KAAK,GAAG,EAAc,MAAM,OAAO,CAAC;AAC5E,OAAO,EAGL,KAAK,eAAe,IAAI,mBAAmB,EAC3C,KAAK,UAAU,IAAI,cAAc,EAClC,MAAM,uBAAuB,CAAC;AAG/B,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,MAAM,WAAW,oBAAoB;IACnC,wDAAwD;IACxD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,sEAAsE;IACtE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sDAAsD;IACtD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,uJAAuJ;AACvJ,eAAO,MAAM,eAAe;kEAAwE,oBAAoB;;CAkBvH,CAAC;AAGF,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,0GAA0G;IAC1G,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,oEAAoE;IACpE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,iDAAiD;IACjD,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC5B,wGAAwG;IACxG,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW;qFAA2F,gBAAgB;;CA+ClI,CAAC;AAGF,UAAU,eAAgB,SAAQ,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,EAAE,mBAAmB;IACxF,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,oJAAoJ;AACpJ,eAAO,MAAM,UAAU,GAAI,oEAA2E,eAAe,gCAUpH,CAAC"}
@@ -3,6 +3,7 @@ import { cx } from '@flipdish/ui-library/utilities/cx';
3
3
  import { useResolvedTestId, joinTestId, slugifyTestId } from '@flipdish/ui-library/utilities/testIdUtils';
4
4
  import { createContext, useContext } from 'react';
5
5
  import { Radio, RadioGroup as RadioGroup$1 } from 'react-aria-components';
6
+ import { selectionControlSizes } from '../../__internal__/selectionControl/selectionControl.styles.js';
6
7
 
7
8
  const RadioGroupContext = createContext(null);
8
9
  /** Visual-only radio circle with no input behaviour, for building custom selectable controls; `RadioButton` renders it inside a react-aria `Radio`. */
@@ -21,24 +22,10 @@ const RadioButton = ({ label, hint, className, size = 'sm', 'data-testid': dataT
21
22
  size = context?.size ?? size;
22
23
  const fallbackTestId = useResolvedTestId({ testId: dataTestId, segment: 'radio-button', rootName: 'radio-button' });
23
24
  const radioTestId = !dataTestId && context?.testIdPrefix ? joinTestId(context.testIdPrefix, `option-${slugifyTestId(String(ariaRadioProps.value))}`) : fallbackTestId;
24
- const sizes = {
25
- sm: {
26
- root: 'gap-2',
27
- textWrapper: '',
28
- label: 'text-sm font-medium',
29
- hint: 'text-sm',
30
- },
31
- md: {
32
- root: 'gap-3',
33
- textWrapper: 'gap-0.5',
34
- label: 'text-md font-medium',
35
- hint: 'text-md',
36
- },
37
- };
38
- return (jsx(Radio, { ...ariaRadioProps, "data-testid": radioTestId, className: (state) => cx('relative flex items-start', state.isDisabled && 'cursor-not-allowed', sizes[size].root, typeof className === 'function' ? className(state) : className), children: ({ isSelected, isDisabled, isFocusVisible }) => (jsxs(Fragment, { children: [jsx(RadioButtonBase, { size: size, isSelected: isSelected, isDisabled: isDisabled, isFocusVisible: isFocusVisible, className: label || hint ? 'mt-0.5' : '' }), (label || hint) && (jsxs("div", { className: cx('inline-flex flex-col', sizes[size].textWrapper), children: [label && jsx("p", { className: cx('text-secondary select-none', sizes[size].label), children: label }), hint && (
25
+ return (jsx(Radio, { ...ariaRadioProps, "data-testid": radioTestId, className: (state) => cx('relative flex items-start', state.isDisabled && 'cursor-not-allowed', selectionControlSizes[size].root, typeof className === 'function' ? className(state) : className), children: ({ isSelected, isDisabled, isFocusVisible }) => (jsxs(Fragment, { children: [jsx(RadioButtonBase, { size: size, isSelected: isSelected, isDisabled: isDisabled, isFocusVisible: isFocusVisible, className: label || hint ? 'mt-0.5' : '' }), (label || hint) && (jsxs("div", { className: cx('inline-flex flex-col', selectionControlSizes[size].textWrapper), children: [label && jsx("p", { className: cx('text-secondary select-none', selectionControlSizes[size].label), children: label }), hint && (
39
26
  // biome-ignore lint/a11y/noStaticElementInteractions: This is a hint that is not interactive
40
27
  // biome-ignore lint/a11y/useKeyWithClickEvents: This is a hint that is not interactive
41
- jsx("span", { className: cx('text-tertiary', sizes[size].hint), onClick: (event) => event.stopPropagation(), children: hint }))] }))] })) }));
28
+ jsx("span", { className: cx('text-tertiary', selectionControlSizes[size].hint), onClick: (event) => event.stopPropagation(), children: hint }))] }))] })) }));
42
29
  };
43
30
  RadioButton.displayName = 'RadioButton';
44
31
  /** Wrapper around react-aria-components' `RadioGroup` that stacks its `RadioButton` children and passes them `size` and a derived `data-testid`. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/atoms/RadioButton/index.tsx"],"sourcesContent":[null],"names":["_jsx","AriaRadio","_jsxs","_Fragment","AriaRadioGroup"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/atoms/RadioButton/index.tsx"],"sourcesContent":[null],"names":["_jsx","AriaRadio","_jsxs","_Fragment","AriaRadioGroup"],"mappings":"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"}
@@ -34,7 +34,7 @@ const GradientArea = () => {
34
34
  const stopPt = (position) => gradientPicker_utils.lerp(line.start, line.end, position / 100);
35
35
  const startPt = stopPt(firstStop?.position ?? 0);
36
36
  const endPt = stopPt(lastStop?.position ?? 100);
37
- /** Drag state stored in a ref to avoid re-renders during pointer moves. */
37
+ // A ref, not state: pointer moves must not re-render the area on every event.
38
38
  const dragRef = React.useRef(null);
39
39
  /** Start dragging an endpoint (first or last sorted stop). */
40
40
  const handleEndpointDown = React.useCallback((e, which) => {
@@ -81,47 +81,14 @@ const GradientArea = () => {
81
81
  const stop = stops.find((s) => s.id === stopId);
82
82
  dragRef.current = { kind: 'inner', stopId, offset: rawPos - (stop?.position ?? 50) };
83
83
  }, [actions, stops, line]);
84
- /** Handle pointer move for both endpoint and inner stop drags. */
85
84
  const handlePointerMove = React.useCallback((e) => {
86
85
  if (!areaRef.current || !dragRef.current)
87
86
  return;
88
- const raw = gradientPicker_utils.pointerPt(e, areaRef.current);
89
- const drag = dragRef.current;
90
- if (drag.kind === 'endpoint') {
91
- let pt = gradientPicker_utils.clampPt({ x: raw.x - drag.offset.x, y: raw.y - drag.offset.y });
92
- // Keep a minimum distance between endpoints to prevent a zero-length line
93
- if (gradientPicker_utils.dist(pt, drag.fixedPt) < 5) {
94
- const dx = pt.x - drag.fixedPt.x;
95
- const dy = pt.y - drag.fixedPt.y;
96
- const d = gradientPicker_utils.dist(pt, drag.fixedPt) || 1;
97
- pt = { x: drag.fixedPt.x + (dx / d) * 5, y: drag.fixedPt.y + (dy / d) * 5 };
98
- }
99
- // Edge-extended line through dragged + fixed points — both lie on it, so projection is lossless.
100
- const dirStart = drag.which === 'start' ? pt : drag.fixedPt;
101
- const dirEnd = drag.which === 'start' ? drag.fixedPt : pt;
102
- const edgeLine = gradientPicker_utils.extendLineToEdges(dirStart, dirEnd);
103
- let draggedPos = gradientPicker_utils.clamp(gradientPicker_utils.projectOntoLine(pt, edgeLine.start, edgeLine.end) * 100, 0, 100);
104
- const fixedPos = gradientPicker_utils.clamp(gradientPicker_utils.projectOntoLine(drag.fixedPt, edgeLine.start, edgeLine.end) * 100, 0, 100);
105
- // Prevent the endpoint from crossing past the nearest inner stop
106
- if (drag.which === 'start' && draggedPos > drag.boundaryPos) {
107
- draggedPos = drag.boundaryPos;
108
- pt = gradientPicker_utils.lerp(edgeLine.start, edgeLine.end, draggedPos / 100);
109
- }
110
- else if (drag.which === 'end' && draggedPos < drag.boundaryPos) {
111
- draggedPos = drag.boundaryPos;
112
- pt = gradientPicker_utils.lerp(edgeLine.start, edgeLine.end, draggedPos / 100);
113
- }
114
- actions.setLineEndpoint(edgeLine, [
115
- { id: drag.draggedStopId, position: draggedPos },
116
- { id: drag.fixedStopId, position: fixedPos },
117
- ]);
118
- }
119
- else {
120
- // Project the pointer onto the gradient line and update the stop's position
121
- const t = gradientPicker_utils.projectOntoLine(raw, line.start, line.end);
122
- const pos = Math.round(gradientPicker_utils.clamp(t * 100 - drag.offset, 0, 100));
123
- actions.moveStop(drag.stopId, pos);
124
- }
87
+ const update = gradientPicker_utils.resolveGradientAreaDrag(dragRef.current, gradientPicker_utils.pointerPt(e, areaRef.current), line);
88
+ if (update.kind === 'endpoint')
89
+ actions.setLineEndpoint(update.line, update.positions);
90
+ else
91
+ actions.moveStop(update.stopId, update.position);
125
92
  }, [actions, line]);
126
93
  const handlePointerUp = React.useCallback(() => {
127
94
  dragRef.current = null;
@@ -1 +1 @@
1
- {"version":3,"file":"GradientArea.cjs","sources":["../../../../../src/components/organisms/GradientPicker/components/GradientArea.tsx"],"sourcesContent":[null],"names":["useGradientColorPicker","useRef","useTestIdPrefix","joinTestId","lerp","useCallback","pointerPt","projectOntoLine","clamp","clampPt","dist","extendLineToEdges","toGradientCSSFromLine","_jsxs","_jsx","cx"],"mappings":"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"}
1
+ {"version":3,"file":"GradientArea.cjs","sources":["../../../../../src/components/organisms/GradientPicker/components/GradientArea.tsx"],"sourcesContent":[null],"names":["useGradientColorPicker","useRef","useTestIdPrefix","joinTestId","lerp","useCallback","pointerPt","projectOntoLine","clamp","resolveGradientAreaDrag","toGradientCSSFromLine","_jsxs","_jsx","cx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GradientArea.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/GradientPicker/components/GradientArea.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,YAAY,yBA0NxB,CAAC"}
1
+ {"version":3,"file":"GradientArea.d.ts","sourceRoot":"","sources":["../../../../../src/components/organisms/GradientPicker/components/GradientArea.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,YAAY,yBA+JxB,CAAC"}
@@ -2,7 +2,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { cx } from '@flipdish/ui-library/utilities/cx';
3
3
  import { useTestIdPrefix, joinTestId } from '@flipdish/ui-library/utilities/testIdUtils';
4
4
  import { useRef, useCallback } from 'react';
5
- import { pointerPt, projectOntoLine, clampPt, dist, extendLineToEdges, clamp, lerp, toGradientCSSFromLine } from '../gradientPicker.utils.js';
5
+ import { pointerPt, projectOntoLine, resolveGradientAreaDrag, toGradientCSSFromLine, lerp, clamp } from '../gradientPicker.utils.js';
6
6
  import { useGradientColorPicker } from '../providers/GradientPicker.provider.js';
7
7
 
8
8
  /**
@@ -32,7 +32,7 @@ const GradientArea = () => {
32
32
  const stopPt = (position) => lerp(line.start, line.end, position / 100);
33
33
  const startPt = stopPt(firstStop?.position ?? 0);
34
34
  const endPt = stopPt(lastStop?.position ?? 100);
35
- /** Drag state stored in a ref to avoid re-renders during pointer moves. */
35
+ // A ref, not state: pointer moves must not re-render the area on every event.
36
36
  const dragRef = useRef(null);
37
37
  /** Start dragging an endpoint (first or last sorted stop). */
38
38
  const handleEndpointDown = useCallback((e, which) => {
@@ -79,47 +79,14 @@ const GradientArea = () => {
79
79
  const stop = stops.find((s) => s.id === stopId);
80
80
  dragRef.current = { kind: 'inner', stopId, offset: rawPos - (stop?.position ?? 50) };
81
81
  }, [actions, stops, line]);
82
- /** Handle pointer move for both endpoint and inner stop drags. */
83
82
  const handlePointerMove = useCallback((e) => {
84
83
  if (!areaRef.current || !dragRef.current)
85
84
  return;
86
- const raw = pointerPt(e, areaRef.current);
87
- const drag = dragRef.current;
88
- if (drag.kind === 'endpoint') {
89
- let pt = clampPt({ x: raw.x - drag.offset.x, y: raw.y - drag.offset.y });
90
- // Keep a minimum distance between endpoints to prevent a zero-length line
91
- if (dist(pt, drag.fixedPt) < 5) {
92
- const dx = pt.x - drag.fixedPt.x;
93
- const dy = pt.y - drag.fixedPt.y;
94
- const d = dist(pt, drag.fixedPt) || 1;
95
- pt = { x: drag.fixedPt.x + (dx / d) * 5, y: drag.fixedPt.y + (dy / d) * 5 };
96
- }
97
- // Edge-extended line through dragged + fixed points — both lie on it, so projection is lossless.
98
- const dirStart = drag.which === 'start' ? pt : drag.fixedPt;
99
- const dirEnd = drag.which === 'start' ? drag.fixedPt : pt;
100
- const edgeLine = extendLineToEdges(dirStart, dirEnd);
101
- let draggedPos = clamp(projectOntoLine(pt, edgeLine.start, edgeLine.end) * 100, 0, 100);
102
- const fixedPos = clamp(projectOntoLine(drag.fixedPt, edgeLine.start, edgeLine.end) * 100, 0, 100);
103
- // Prevent the endpoint from crossing past the nearest inner stop
104
- if (drag.which === 'start' && draggedPos > drag.boundaryPos) {
105
- draggedPos = drag.boundaryPos;
106
- pt = lerp(edgeLine.start, edgeLine.end, draggedPos / 100);
107
- }
108
- else if (drag.which === 'end' && draggedPos < drag.boundaryPos) {
109
- draggedPos = drag.boundaryPos;
110
- pt = lerp(edgeLine.start, edgeLine.end, draggedPos / 100);
111
- }
112
- actions.setLineEndpoint(edgeLine, [
113
- { id: drag.draggedStopId, position: draggedPos },
114
- { id: drag.fixedStopId, position: fixedPos },
115
- ]);
116
- }
117
- else {
118
- // Project the pointer onto the gradient line and update the stop's position
119
- const t = projectOntoLine(raw, line.start, line.end);
120
- const pos = Math.round(clamp(t * 100 - drag.offset, 0, 100));
121
- actions.moveStop(drag.stopId, pos);
122
- }
85
+ const update = resolveGradientAreaDrag(dragRef.current, pointerPt(e, areaRef.current), line);
86
+ if (update.kind === 'endpoint')
87
+ actions.setLineEndpoint(update.line, update.positions);
88
+ else
89
+ actions.moveStop(update.stopId, update.position);
123
90
  }, [actions, line]);
124
91
  const handlePointerUp = useCallback(() => {
125
92
  dragRef.current = null;
@@ -1 +1 @@
1
- {"version":3,"file":"GradientArea.js","sources":["../../../../../src/components/organisms/GradientPicker/components/GradientArea.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"GradientArea.js","sources":["../../../../../src/components/organisms/GradientPicker/components/GradientArea.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -83,6 +83,50 @@ const extendLineToEdges = (p, q) => {
83
83
  end: { x: p.x + tMax * dx, y: p.y + tMax * dy },
84
84
  };
85
85
  };
86
+ const MIN_ENDPOINT_GAP = 5;
87
+ /**
88
+ * Resolves one pointer move on the gradient area into the next line or stop position.
89
+ *
90
+ * @param drag Endpoint or inner-stop drag captured on pointer down.
91
+ * @param raw Pointer position as a percentage of the area.
92
+ * @param line Current gradient line. Inner stops slide along it; endpoints rebuild the line.
93
+ * @returns The updated line and endpoint positions, or the inner stop's next position.
94
+ */
95
+ const resolveGradientAreaDrag = (drag, raw, line) => {
96
+ if (drag.kind === 'inner') {
97
+ const t = projectOntoLine(raw, line.start, line.end);
98
+ return { kind: 'inner', stopId: drag.stopId, position: Math.round(clamp(t * 100 - drag.offset, 0, 100)) };
99
+ }
100
+ let pt = clampPt({ x: raw.x - drag.offset.x, y: raw.y - drag.offset.y });
101
+ // Keep a minimum distance between endpoints to prevent a zero-length line.
102
+ if (dist(pt, drag.fixedPt) < MIN_ENDPOINT_GAP) {
103
+ const dx = pt.x - drag.fixedPt.x;
104
+ const dy = pt.y - drag.fixedPt.y;
105
+ const d = dist(pt, drag.fixedPt) || 1;
106
+ pt = { x: drag.fixedPt.x + (dx / d) * MIN_ENDPOINT_GAP, y: drag.fixedPt.y + (dy / d) * MIN_ENDPOINT_GAP };
107
+ }
108
+ // Edge-extended line through dragged + fixed points — both lie on it, so projection is lossless.
109
+ const dirStart = drag.which === 'start' ? pt : drag.fixedPt;
110
+ const dirEnd = drag.which === 'start' ? drag.fixedPt : pt;
111
+ const edgeLine = extendLineToEdges(dirStart, dirEnd);
112
+ let draggedPos = clamp(projectOntoLine(pt, edgeLine.start, edgeLine.end) * 100, 0, 100);
113
+ const fixedPos = clamp(projectOntoLine(drag.fixedPt, edgeLine.start, edgeLine.end) * 100, 0, 100);
114
+ // Prevent the endpoint from crossing past the nearest inner stop.
115
+ if (drag.which === 'start' && draggedPos > drag.boundaryPos) {
116
+ draggedPos = drag.boundaryPos;
117
+ }
118
+ else if (drag.which === 'end' && draggedPos < drag.boundaryPos) {
119
+ draggedPos = drag.boundaryPos;
120
+ }
121
+ return {
122
+ kind: 'endpoint',
123
+ line: edgeLine,
124
+ positions: [
125
+ { id: drag.draggedStopId, position: draggedPos },
126
+ { id: drag.fixedStopId, position: fixedPos },
127
+ ],
128
+ };
129
+ };
86
130
  /** Move a gradient stop to a new position, proportionally pushing adjacent stops. */
87
131
  const moveStopTo = (stops, stopId, newPos) => {
88
132
  const sorted = [...stops].sort((a, b) => a.position - b.position);
@@ -159,6 +203,7 @@ exports.nextStopId = nextStopId;
159
203
  exports.pointerPt = pointerPt;
160
204
  exports.pointsToAngle = pointsToAngle;
161
205
  exports.projectOntoLine = projectOntoLine;
206
+ exports.resolveGradientAreaDrag = resolveGradientAreaDrag;
162
207
  exports.toGradientCSS = toGradientCSS;
163
208
  exports.toGradientCSSFromLine = toGradientCSSFromLine;
164
209
  //# sourceMappingURL=gradientPicker.utils.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"gradientPicker.utils.cjs","sources":["../../../../src/components/organisms/GradientPicker/gradientPicker.utils.ts"],"sourcesContent":[null],"names":["parseColor"],"mappings":"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"}
1
+ {"version":3,"file":"gradientPicker.utils.cjs","sources":["../../../../src/components/organisms/GradientPicker/gradientPicker.utils.ts"],"sourcesContent":[null],"names":["parseColor"],"mappings":"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"}
@@ -47,6 +47,62 @@ export declare const extendLineToEdges: (p: Point, q: Point) => {
47
47
  start: Point;
48
48
  end: Point;
49
49
  };
50
+ /** Endpoint thumb drag captured on pointer down in the gradient area. */
51
+ export interface GradientEndpointDrag {
52
+ /** `start` is the first sorted stop; `end` is the last. */
53
+ which: 'start' | 'end';
54
+ /** Pointer-to-thumb offset so the thumb does not jump to the cursor. */
55
+ offset: Point;
56
+ /** Stop under the pointer. */
57
+ draggedStopId: string;
58
+ /** Opposite endpoint, held at `fixedPt`. */
59
+ fixedStopId: string;
60
+ /** Snapshotted 2D position of the opposite endpoint. */
61
+ fixedPt: Point;
62
+ /** Nearest inner stop; the dragged endpoint cannot cross it. */
63
+ boundaryPos: number;
64
+ }
65
+ /** Inner-stop drag captured on pointer down; the stop slides along the current line. */
66
+ export interface GradientInnerAreaDrag {
67
+ /** Stop under the pointer. */
68
+ stopId: string;
69
+ /** Projected pointer minus the stop's position at grab time. */
70
+ offset: number;
71
+ }
72
+ /** Area drag in progress. `null` means the pointer is up. */
73
+ export type GradientAreaDrag = ({
74
+ kind: 'endpoint';
75
+ } & GradientEndpointDrag) | ({
76
+ kind: 'inner';
77
+ } & GradientInnerAreaDrag);
78
+ /** Line and stop positions to apply after one pointer move. */
79
+ export type GradientAreaDragUpdate = {
80
+ kind: 'endpoint';
81
+ line: {
82
+ start: Point;
83
+ end: Point;
84
+ };
85
+ positions: {
86
+ id: string;
87
+ position: number;
88
+ }[];
89
+ } | {
90
+ kind: 'inner';
91
+ stopId: string;
92
+ position: number;
93
+ };
94
+ /**
95
+ * Resolves one pointer move on the gradient area into the next line or stop position.
96
+ *
97
+ * @param drag Endpoint or inner-stop drag captured on pointer down.
98
+ * @param raw Pointer position as a percentage of the area.
99
+ * @param line Current gradient line. Inner stops slide along it; endpoints rebuild the line.
100
+ * @returns The updated line and endpoint positions, or the inner stop's next position.
101
+ */
102
+ export declare const resolveGradientAreaDrag: (drag: GradientAreaDrag, raw: Point, line: {
103
+ start: Point;
104
+ end: Point;
105
+ }) => GradientAreaDragUpdate;
50
106
  /** Move a gradient stop to a new position, proportionally pushing adjacent stops. */
51
107
  export declare const moveStopTo: (stops: GradientStop[], stopId: string, newPos: number) => GradientStop[];
52
108
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"gradientPicker.utils.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/GradientPicker/gradientPicker.utils.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAEvE,yCAAyC;AACzC,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,eAAO,MAAM,UAAU,2DAA4B,CAAC;AAEpD,+CAA+C;AAC/C,eAAO,MAAM,IAAI,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,KAAG,KAGnD,CAAC;AAEH,2FAA2F;AAC3F,eAAO,MAAM,SAAS,GAAI,GAAG,YAAY,GAAG,KAAK,CAAC,YAAY,EAAE,IAAI,WAAW,KAAG,KAGjF,CAAC;AAEF,mDAAmD;AACnD,eAAO,MAAM,KAAK,GAAI,GAAG,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,WAAoC,CAAC;AAC9F,uCAAuC;AACvC,eAAO,MAAM,OAAO,GAAI,GAAG,KAAK,KAAG,KAA2D,CAAC;AAC/F,iDAAiD;AACjD,eAAO,MAAM,IAAI,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,WAAqC,CAAC;AAE7E,2EAA2E;AAC3E,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,KAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,KAAK,CAAA;CAW1E,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK,EAAE,KAAK,KAAK,KAAG,MAKxD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,MAM9D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,KAAK,CAAA;CAyBhF,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,UAAU,GAAI,OAAO,YAAY,EAAE,EAAE,QAAQ,MAAM,EAAE,QAAQ,MAAM,KAAG,YAAY,EAS9F,CAAC;AAqBF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,KAAG;IAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAqBzF,CAAC;AAYF,eAAO,MAAM,aAAa,GAAI,OAAO,YAAY,EAAE,EAAE,MAAM,YAAY,EAAE,OAAO,MAAM,KAAG,MA2BxF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,YAAY,EAAE,EAAE,MAAM,YAAY,EAAE,WAAW,KAAK,EAAE,SAAS,KAAK,KAAG,MASnH,CAAC"}
1
+ {"version":3,"file":"gradientPicker.utils.d.ts","sourceRoot":"","sources":["../../../../src/components/organisms/GradientPicker/gradientPicker.utils.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAEvE,yCAAyC;AACzC,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,eAAO,MAAM,UAAU,2DAA4B,CAAC;AAEpD,+CAA+C;AAC/C,eAAO,MAAM,IAAI,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,KAAG,KAGnD,CAAC;AAEH,2FAA2F;AAC3F,eAAO,MAAM,SAAS,GAAI,GAAG,YAAY,GAAG,KAAK,CAAC,YAAY,EAAE,IAAI,WAAW,KAAG,KAGjF,CAAC;AAEF,mDAAmD;AACnD,eAAO,MAAM,KAAK,GAAI,GAAG,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,WAAoC,CAAC;AAC9F,uCAAuC;AACvC,eAAO,MAAM,OAAO,GAAI,GAAG,KAAK,KAAG,KAA2D,CAAC;AAC/F,iDAAiD;AACjD,eAAO,MAAM,IAAI,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,WAAqC,CAAC;AAE7E,2EAA2E;AAC3E,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,KAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,KAAK,CAAA;CAW1E,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,aAAa,GAAI,OAAO,KAAK,EAAE,KAAK,KAAK,KAAG,MAKxD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG,MAM9D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,GAAG,KAAK,EAAE,GAAG,KAAK,KAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,KAAK,CAAA;CAyBhF,CAAC;AAEF,yEAAyE;AACzE,MAAM,WAAW,oBAAoB;IACnC,2DAA2D;IAC3D,KAAK,EAAE,OAAO,GAAG,KAAK,CAAC;IACvB,wEAAwE;IACxE,MAAM,EAAE,KAAK,CAAC;IACd,8BAA8B;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,OAAO,EAAE,KAAK,CAAC;IACf,gEAAgE;IAChE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wFAAwF;AACxF,MAAM,WAAW,qBAAqB;IACpC,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,6DAA6D;AAC7D,MAAM,MAAM,gBAAgB,GAAG,CAAC;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GAAG,qBAAqB,CAAC,CAAC;AAE3H,+DAA+D;AAC/D,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,KAAK,CAAA;KAAE,CAAC;IAAC,SAAS,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,GACvG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAIxD;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,GAAI,MAAM,gBAAgB,EAAE,KAAK,KAAK,EAAE,MAAM;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,KAAK,CAAA;CAAE,KAAG,sBAuChH,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,UAAU,GAAI,OAAO,YAAY,EAAE,EAAE,QAAQ,MAAM,EAAE,QAAQ,MAAM,KAAG,YAAY,EAS9F,CAAC;AAqBF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,KAAG;IAAE,KAAK,EAAE,YAAY,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAqBzF,CAAC;AAYF,eAAO,MAAM,aAAa,GAAI,OAAO,YAAY,EAAE,EAAE,MAAM,YAAY,EAAE,OAAO,MAAM,KAAG,MA2BxF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,OAAO,YAAY,EAAE,EAAE,MAAM,YAAY,EAAE,WAAW,KAAK,EAAE,SAAS,KAAK,KAAG,MASnH,CAAC"}
@@ -81,6 +81,50 @@ const extendLineToEdges = (p, q) => {
81
81
  end: { x: p.x + tMax * dx, y: p.y + tMax * dy },
82
82
  };
83
83
  };
84
+ const MIN_ENDPOINT_GAP = 5;
85
+ /**
86
+ * Resolves one pointer move on the gradient area into the next line or stop position.
87
+ *
88
+ * @param drag Endpoint or inner-stop drag captured on pointer down.
89
+ * @param raw Pointer position as a percentage of the area.
90
+ * @param line Current gradient line. Inner stops slide along it; endpoints rebuild the line.
91
+ * @returns The updated line and endpoint positions, or the inner stop's next position.
92
+ */
93
+ const resolveGradientAreaDrag = (drag, raw, line) => {
94
+ if (drag.kind === 'inner') {
95
+ const t = projectOntoLine(raw, line.start, line.end);
96
+ return { kind: 'inner', stopId: drag.stopId, position: Math.round(clamp(t * 100 - drag.offset, 0, 100)) };
97
+ }
98
+ let pt = clampPt({ x: raw.x - drag.offset.x, y: raw.y - drag.offset.y });
99
+ // Keep a minimum distance between endpoints to prevent a zero-length line.
100
+ if (dist(pt, drag.fixedPt) < MIN_ENDPOINT_GAP) {
101
+ const dx = pt.x - drag.fixedPt.x;
102
+ const dy = pt.y - drag.fixedPt.y;
103
+ const d = dist(pt, drag.fixedPt) || 1;
104
+ pt = { x: drag.fixedPt.x + (dx / d) * MIN_ENDPOINT_GAP, y: drag.fixedPt.y + (dy / d) * MIN_ENDPOINT_GAP };
105
+ }
106
+ // Edge-extended line through dragged + fixed points — both lie on it, so projection is lossless.
107
+ const dirStart = drag.which === 'start' ? pt : drag.fixedPt;
108
+ const dirEnd = drag.which === 'start' ? drag.fixedPt : pt;
109
+ const edgeLine = extendLineToEdges(dirStart, dirEnd);
110
+ let draggedPos = clamp(projectOntoLine(pt, edgeLine.start, edgeLine.end) * 100, 0, 100);
111
+ const fixedPos = clamp(projectOntoLine(drag.fixedPt, edgeLine.start, edgeLine.end) * 100, 0, 100);
112
+ // Prevent the endpoint from crossing past the nearest inner stop.
113
+ if (drag.which === 'start' && draggedPos > drag.boundaryPos) {
114
+ draggedPos = drag.boundaryPos;
115
+ }
116
+ else if (drag.which === 'end' && draggedPos < drag.boundaryPos) {
117
+ draggedPos = drag.boundaryPos;
118
+ }
119
+ return {
120
+ kind: 'endpoint',
121
+ line: edgeLine,
122
+ positions: [
123
+ { id: drag.draggedStopId, position: draggedPos },
124
+ { id: drag.fixedStopId, position: fixedPos },
125
+ ],
126
+ };
127
+ };
84
128
  /** Move a gradient stop to a new position, proportionally pushing adjacent stops. */
85
129
  const moveStopTo = (stops, stopId, newPos) => {
86
130
  const sorted = [...stops].sort((a, b) => a.position - b.position);
@@ -146,5 +190,5 @@ const toGradientCSSFromLine = (stops, type, lineStart, lineEnd) => {
146
190
  return toGradientCSS(mappedStops, type, angle);
147
191
  };
148
192
 
149
- export { angleToPoints, clamp, clampPt, dist, extendLineToEdges, lerp, moveStopTo, nextStopId, pointerPt, pointsToAngle, projectOntoLine, toGradientCSS, toGradientCSSFromLine };
193
+ export { angleToPoints, clamp, clampPt, dist, extendLineToEdges, lerp, moveStopTo, nextStopId, pointerPt, pointsToAngle, projectOntoLine, resolveGradientAreaDrag, toGradientCSS, toGradientCSSFromLine };
150
194
  //# sourceMappingURL=gradientPicker.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gradientPicker.utils.js","sources":["../../../../src/components/organisms/GradientPicker/gradientPicker.utils.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gradientPicker.utils.js","sources":["../../../../src/components/organisms/GradientPicker/gradientPicker.utils.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,12 +1,50 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface RadioButtonProps {
3
+ /** Identifies this option within its `RadioGroup`; selecting it sets the group's value to this. */
4
+ value: string;
5
+ /** Sets the circle size and the label and hint text size; a parent `RadioGroup`'s `size` overrides it. */
6
+ size?: 'sm' | 'md';
7
+ /** Text shown beside the circle; pressing it selects the option. */
8
+ label?: ReactNode;
9
+ /** Supporting text shown below the label. */
10
+ hint?: ReactNode;
11
+ /** Disables this option and shows a reduced-opacity state. */
12
+ isDisabled?: boolean;
13
+ /** Extra classes merged onto the root `Pressable`. */
14
+ className?: string;
15
+ /** Web-style accessible name, used as `accessibilityLabel` so shared call sites work on both platforms. */
16
+ 'aria-label'?: string;
17
+ /** Overrides the derived `testID` (defaults to `<group>--option-<value>` or `fd-radio-button`). */
18
+ 'data-testid'?: string;
19
+ }
1
20
  /**
2
- * `RadioButton` has no React Native implementation.
21
+ * React Native `RadioButton` — the same circle, dot, label and hint as web, built from
22
+ * `Pressable` and `View` instead of a react-aria `Radio`. Selection lives in the parent
23
+ * `RadioGroup`; there is no arrow-key navigation between options on touch devices.
3
24
  *
4
- * This is a generated types-only stub (scripts/emit-native-stubs.mjs). It exists so
5
- * that importing `@flipdish/ui-library/components/atoms/RadioButton` from React Native fails at
6
- * compile time rather than resolving to the web build's types. There is no
7
- * matching `index.js`, so Metro cannot bundle this module either.
8
- *
9
- * To make `RadioButton` available on React Native, add an `index.native.tsx` beside
10
- * its `index.tsx` — the build picks it up automatically and this stub disappears.
25
+ * @summary one option in a mutually exclusive group (React Native)
11
26
  */
12
- export declare const __NO_REACT_NATIVE_IMPLEMENTATION__: never;
27
+ export declare const RadioButton: ({ value, label, hint, className, size: sizeProp, isDisabled: isDisabledProp, "aria-label": ariaLabel, "data-testid": dataTestId, }: RadioButtonProps) => import("react").JSX.Element;
28
+ export interface RadioGroupProps {
29
+ /** The `RadioButton` options. */
30
+ children: ReactNode;
31
+ /** Sets the size of every option in the group. */
32
+ size?: 'sm' | 'md';
33
+ /** Controlled selected value. */
34
+ value?: string | null;
35
+ /** Initial selected value for uncontrolled usage. */
36
+ defaultValue?: string | null;
37
+ /** Called with the newly selected option's `value`. */
38
+ onChange?: (value: string) => void;
39
+ /** Disables every option in the group. */
40
+ isDisabled?: boolean;
41
+ /** Extra classes merged onto the root `View`. */
42
+ className?: string;
43
+ /** Web-style accessible name for the group; native has no `aria-labelledby`, so set this whenever the group needs a name. */
44
+ 'aria-label'?: string;
45
+ /** Overrides the `testID` (defaults to `fd-radio-group`). */
46
+ 'data-testid'?: string;
47
+ }
48
+ /** React Native `RadioGroup` that stacks its `RadioButton` children, owns which one is selected, and passes them `size` and a derived `testID`. */
49
+ export declare const RadioGroup: ({ children, className, size, value, defaultValue, onChange, isDisabled, "aria-label": ariaLabel, "data-testid": dataTestId, }: RadioGroupProps) => import("react").JSX.Element;
50
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/atoms/RadioButton/index.native.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,SAAS,EAAwB,MAAM,OAAO,CAAC;AAgB5E,MAAM,WAAW,gBAAgB;IAC/B,mGAAmG;IACnG,KAAK,EAAE,MAAM,CAAC;IACd,0GAA0G;IAC1G,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,oEAAoE;IACpE,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2GAA2G;IAC3G,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mGAAmG;IACnG,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,GAAI,oIASzB,gBAAgB,gCAqClB,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,kDAAkD;IAClD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,uDAAuD;IACvD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6HAA6H;IAC7H,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,mJAAmJ;AACnJ,eAAO,MAAM,UAAU,GAAI,+HAUxB,eAAe,gCAkBjB,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { cx } from '../../../utilities/cx/index.js';
3
+ import { useResolvedTestId, joinTestId, slugifyTestId } from '../../../utilities/testIdUtils/index.js';
4
+ import { createContext, useContext, useState } from 'react';
5
+ import { Pressable, View } from 'react-native';
6
+ import { SelectionControlText } from '../../__internal__/selectionControl/SelectionControlText.js';
7
+ import { selectionControlSizes } from '../../__internal__/selectionControl/selectionControl.styles.js';
8
+ import { SELECTION_CONTROL_HIT_SLOP, getAccessibleHint, getAccessibleName } from '../../__internal__/selectionControl/selectionControl.utils.js';
9
+
10
+ const RadioGroupContext = createContext(null);
11
+ /**
12
+ * React Native `RadioButton` — the same circle, dot, label and hint as web, built from
13
+ * `Pressable` and `View` instead of a react-aria `Radio`. Selection lives in the parent
14
+ * `RadioGroup`; there is no arrow-key navigation between options on touch devices.
15
+ *
16
+ * @summary one option in a mutually exclusive group (React Native)
17
+ */
18
+ const RadioButton = ({ value, label, hint, className, size: sizeProp = 'sm', isDisabled: isDisabledProp, 'aria-label': ariaLabel, 'data-testid': dataTestId, }) => {
19
+ const group = useContext(RadioGroupContext);
20
+ const size = group?.size ?? sizeProp;
21
+ const isDisabled = Boolean(isDisabledProp || group?.isDisabled);
22
+ const isSelected = group?.selectedValue === value;
23
+ const fallbackTestId = useResolvedTestId({ testId: dataTestId, segment: 'radio-button', rootName: 'radio-button' });
24
+ const radioTestId = !dataTestId && group ? joinTestId(group.testIdPrefix, `option-${slugifyTestId(value)}`) : fallbackTestId;
25
+ return (jsxs(Pressable, { testID: radioTestId, disabled: isDisabled, onPress: () => group?.select(value), accessibilityRole: "radio", hitSlop: SELECTION_CONTROL_HIT_SLOP, accessibilityLabel: getAccessibleName(ariaLabel, label), accessibilityHint: getAccessibleHint(hint), accessibilityState: { checked: isSelected, disabled: isDisabled }, className: cx('relative flex flex-row items-start self-start', selectionControlSizes[size].root, className), children: [jsx(View, { className: cx('size-4 shrink-0 items-center justify-center rounded-full border border-primary bg-primary', size === 'md' && 'size-5', isSelected && 'border-brand-solid bg-brand-solid', isDisabled && 'opacity-50', isDisabled && !isSelected && 'bg-tertiary', (label || hint) && 'mt-0.5'), children: isSelected ? jsx(View, { className: cx('size-1.5 rounded-full bg-fg-white', size === 'md' && 'size-2') }) : null }), jsx(SelectionControlText, { size: size, label: label, hint: hint })] }));
26
+ };
27
+ /** React Native `RadioGroup` that stacks its `RadioButton` children, owns which one is selected, and passes them `size` and a derived `testID`. */
28
+ const RadioGroup = ({ children, className, size = 'sm', value, defaultValue = null, onChange, isDisabled = false, 'aria-label': ariaLabel, 'data-testid': dataTestId, }) => {
29
+ const rootTestId = useResolvedTestId({ testId: dataTestId, segment: 'radio-group', rootName: 'radio-group' });
30
+ const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
31
+ const selectedValue = value !== undefined ? value : uncontrolledValue;
32
+ const select = (next) => {
33
+ if (next === selectedValue)
34
+ return;
35
+ if (value === undefined)
36
+ setUncontrolledValue(next);
37
+ onChange?.(next);
38
+ };
39
+ return (jsx(RadioGroupContext.Provider, { value: { size, testIdPrefix: rootTestId, selectedValue, isDisabled, select }, children: jsx(View, { testID: rootTestId, accessibilityRole: "radiogroup", accessibilityLabel: ariaLabel, className: cx('flex flex-col gap-4', className), children: children }) }));
40
+ };
41
+
42
+ export { RadioButton, RadioGroup };
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/components/atoms/RadioButton/index.native.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flipdish/ui-library",
3
- "version": "0.39.1",
3
+ "version": "0.40.0",
4
4
  "description": "Flipdish Design System — atomic-design component library (Tailwind v4 + UntitledUI + React Aria).",
5
5
  "type": "module",
6
6
  "imports": {