@frontify/fondue 12.0.0-beta.1 → 12.0.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/components/Button/Button.es.js +52 -52
  2. package/dist/components/Button/Button.es.js.map +1 -1
  3. package/dist/components/EditableText/EditableText.d.ts +2 -0
  4. package/dist/components/EditableText/EditableText.es.js +40 -40
  5. package/dist/components/EditableText/EditableText.es.js.map +1 -1
  6. package/dist/components/EditableText/lib/helper.d.ts +1 -0
  7. package/dist/components/EditableText/lib/helper.es.js +6 -5
  8. package/dist/components/EditableText/lib/helper.es.js.map +1 -1
  9. package/dist/components/OrderableList/OrderableList.es.js +34 -32
  10. package/dist/components/OrderableList/OrderableList.es.js.map +1 -1
  11. package/dist/components/RichTextEditor/RichTextEditor.es.js +46 -42
  12. package/dist/components/RichTextEditor/RichTextEditor.es.js.map +1 -1
  13. package/dist/components/RichTextEditor/helper.d.ts +1 -0
  14. package/dist/components/RichTextEditor/helper.es.js +8 -0
  15. package/dist/components/RichTextEditor/helper.es.js.map +1 -0
  16. package/dist/components/Switch/Switch.es.js +59 -42
  17. package/dist/components/Switch/Switch.es.js.map +1 -1
  18. package/dist/components/TextInput/TextInput.es.js +42 -40
  19. package/dist/components/TextInput/TextInput.es.js.map +1 -1
  20. package/dist/components/Tooltip/Tooltip.d.ts +3 -1
  21. package/dist/components/Tooltip/Tooltip.es.js +39 -34
  22. package/dist/components/Tooltip/Tooltip.es.js.map +1 -1
  23. package/dist/components/Tree/Node.es.js +37 -36
  24. package/dist/components/Tree/Node.es.js.map +1 -1
  25. package/dist/extractedThirdPartyStyles.css +8 -0
  26. package/dist/index.cjs.js +4 -4
  27. package/dist/index.cjs.js.map +1 -1
  28. package/dist/index.umd.js +4 -4
  29. package/dist/index.umd.js.map +1 -1
  30. package/dist/styles.css +1 -1
  31. package/package.json +1 -1
  32. package/tailwind.config.js +73 -72
@@ -1,11 +1,11 @@
1
- import i, { useEffect as y, useCallback as I } from "react";
2
- import { Plate as V } from "@udecode/plate";
3
- import { useMemoizedId as W } from "../../hooks/useMemoizedId.es.js";
4
- import { debounce as v } from "../../utilities/debounce.es.js";
5
- import { Toolbar as z } from "./components/Toolbar/Toolbar.es.js";
6
- import { RichTextEditorContext as G } from "./context/RichTextEditorContext.es.js";
7
- import { useEditorState as L } from "./hooks/useEditorState.es.js";
8
- import { useEditorResize as M } from "./hooks/useEditorResize.es.js";
1
+ import i, { useEffect as _, useCallback as v } from "react";
2
+ import { Plate as x } from "@udecode/plate";
3
+ import { useMemoizedId as I } from "../../hooks/useMemoizedId.es.js";
4
+ import { debounce as V } from "../../utilities/debounce.es.js";
5
+ import { Toolbar as W } from "./components/Toolbar/Toolbar.es.js";
6
+ import { RichTextEditorContext as w } from "./context/RichTextEditorContext.es.js";
7
+ import { useEditorState as z } from "./hooks/useEditorState.es.js";
8
+ import { useEditorResize as D } from "./hooks/useEditorResize.es.js";
9
9
  import "../../foundation/Icon/Generated/IconAdobeCreativeCloud.es.js";
10
10
  import "../../foundation/Icon/Generated/IconAdobeCreativeCloud12.es.js";
11
11
  import "../../foundation/Icon/Generated/IconAdobeCreativeCloud16.es.js";
@@ -1644,63 +1644,67 @@ import "../../foundation/Icon/Generated/IconWorkflowShapes24.es.js";
1644
1644
  import "../../foundation/Icon/Generated/IconWorkflowShapes32.es.js";
1645
1645
  import "../../foundation/Icon/IconsMap.es.js";
1646
1646
  import { TextStyles as u } from "./utils/textStyles.es.js";
1647
- import { PaddingSizes as T } from "./types.es.js";
1648
- import { defaultActions as w } from "./utils/actions.es.js";
1647
+ import { PaddingSizes as G } from "./types.es.js";
1648
+ import { defaultActions as L } from "./utils/actions.es.js";
1649
1649
  import "slate";
1650
- import { ON_SAVE_DELAY_IN_MS as D } from "./utils/constants.es.js";
1650
+ import { ON_SAVE_DELAY_IN_MS as M } from "./utils/constants.es.js";
1651
1651
  import { defaultDesignTokens as E } from "./utils/defaultDesignTokens.es.js";
1652
1652
  import { parseRawValue as J } from "./utils/parseRawValue.es.js";
1653
1653
  import { EditorPositioningWrapper as j } from "./EditorPositioningWrapper/index.es.js";
1654
1654
  import { getEditorConfig as F } from "./utils/editorConfig.es.js";
1655
1655
  import "./EditorActions/Plugins/index.es.js";
1656
1656
  import { GeneratePlugins as H } from "./EditorActions/GeneratePlugins.es.js";
1657
+ import { forceTabOutOfActiveElement as K } from "./helper.es.js";
1657
1658
  import { Position as Y } from "./EditorPositioningWrapper/types.es.js";
1658
- const WV = ({
1659
+ const Wx = ({
1659
1660
  id: P,
1660
1661
  value: g,
1661
- placeholder: N = "",
1662
- readonly: R = !1,
1663
- clear: b = !1,
1664
- designTokens: o = E,
1665
- actions: n = w,
1666
- onTextChange: a,
1667
- onBlur: f,
1668
- padding: A = T.None,
1669
- position: O = Y.FLOATING,
1662
+ placeholder: b = "",
1663
+ readonly: N = !1,
1664
+ clear: O = !1,
1665
+ designTokens: t = E,
1666
+ actions: n = L,
1667
+ onTextChange: f,
1668
+ onBlur: a,
1669
+ padding: A = G.None,
1670
+ position: R = Y.FLOATING,
1670
1671
  plugins: c
1671
1672
  }) => {
1672
- const r = W(P), { localValue: m } = L(r, b), { editorRef: S, editorWidth: l } = M(), h = {
1673
- placeholder: N,
1674
- readOnly: R,
1675
- onBlur: () => f && f(JSON.stringify(m.current)),
1676
- className: A
1673
+ const r = I(P), { localValue: m } = z(r, O), { editorRef: S, editorWidth: l } = D(), h = {
1674
+ placeholder: b,
1675
+ readOnly: N,
1676
+ onBlur: () => a && a(JSON.stringify(m.current)),
1677
+ className: A,
1678
+ onKeyDown: (o) => {
1679
+ o.code === "Tab" && K();
1680
+ }
1677
1681
  };
1678
- y(() => {
1679
- for (const t of Object.values(u).filter((x) => x !== u.ELEMENT_PARAGRAPH))
1680
- o[t] || (o[t] = E[t]);
1681
- }, [o]);
1682
- const s = v((t) => {
1683
- a && a(JSON.stringify(t));
1684
- }, D), C = I((t) => {
1685
- s(t), m.current = t;
1686
- }, [s, m]), d = j[O], p = H(r, c), e = p && n.length === 0 && c, _ = e ? p.create() : F();
1687
- return /* @__PURE__ */ i.createElement(G.Provider, {
1688
- value: { designTokens: o, PositioningWrapper: d }
1682
+ _(() => {
1683
+ for (const o of Object.values(u).filter((T) => T !== u.ELEMENT_PARAGRAPH))
1684
+ t[o] || (t[o] = E[o]);
1685
+ }, [t]);
1686
+ const s = V((o) => {
1687
+ f && f(JSON.stringify(o));
1688
+ }, M), y = v((o) => {
1689
+ s(o), m.current = o;
1690
+ }, [s, m]), d = j[R], p = H(r, c), e = p && n.length === 0 && c, C = e ? p.create() : F();
1691
+ return /* @__PURE__ */ i.createElement(w.Provider, {
1692
+ value: { designTokens: t, PositioningWrapper: d }
1689
1693
  }, /* @__PURE__ */ i.createElement(d.PlateWrapper, {
1690
1694
  ref: S
1691
- }, /* @__PURE__ */ i.createElement(V, {
1695
+ }, /* @__PURE__ */ i.createElement(x, {
1692
1696
  id: r,
1693
1697
  initialValue: J(g),
1694
- onChange: C,
1698
+ onChange: y,
1695
1699
  editableProps: h,
1696
- plugins: _
1697
- }, e && p.toolbar(l), !e && /* @__PURE__ */ i.createElement(z, {
1700
+ plugins: C
1701
+ }, e && p.toolbar(l), !e && /* @__PURE__ */ i.createElement(W, {
1698
1702
  editorId: r,
1699
1703
  actions: n,
1700
1704
  editorWidth: l
1701
1705
  }))));
1702
1706
  };
1703
1707
  export {
1704
- WV as RichTextEditor
1708
+ Wx as RichTextEditor
1705
1709
  };
1706
1710
  //# sourceMappingURL=RichTextEditor.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextEditor.es.js","sources":["../../../src/components/RichTextEditor/RichTextEditor.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport React, { FC, useCallback, useEffect } from 'react';\nimport { Plate, TNode } from '@udecode/plate';\nimport { useMemoizedId } from '@hooks/useMemoizedId';\nimport { debounce } from '@utilities/debounce';\nimport { EditableProps } from 'slate-react/dist/components/editable';\nimport { Toolbar } from './components/Toolbar/Toolbar';\nimport { RichTextEditorContext } from './context/RichTextEditorContext';\nimport { useEditorResize, useEditorState } from './hooks';\nimport { DesignTokens, PaddingSizes } from './types';\nimport { EditorActions, defaultActions } from './utils/actions';\nimport { ON_SAVE_DELAY_IN_MS } from './utils';\nimport { defaultDesignTokens } from './utils/defaultDesignTokens';\nimport { parseRawValue } from './utils/parseRawValue';\nimport { TextStyles } from './utils/textStyles';\nimport { EditorPositioningWrapper } from './EditorPositioningWrapper';\nimport { Position } from './EditorPositioningWrapper';\nimport { getEditorConfig } from './utils/editorConfig';\nimport { GeneratePlugins, PluginComposer } from './EditorActions';\n\nexport type RichTextEditorProps = {\n id?: string;\n placeholder?: string;\n value?: string;\n onTextChange?: (value: string) => void;\n onBlur?: (value: string) => void;\n readonly?: boolean;\n clear?: boolean;\n designTokens?: DesignTokens;\n actions?: EditorActions[][];\n padding?: PaddingSizes;\n position?: Position;\n plugins?: PluginComposer;\n};\n\nexport const RichTextEditor: FC<RichTextEditorProps> = ({\n id,\n value: initialValue,\n placeholder = '',\n readonly = false,\n clear = false,\n designTokens = defaultDesignTokens,\n actions = defaultActions,\n onTextChange,\n onBlur,\n padding = PaddingSizes.None,\n position = Position.FLOATING,\n plugins,\n}) => {\n const editorId = useMemoizedId(id);\n const { localValue } = useEditorState(editorId, clear);\n const { editorRef, editorWidth } = useEditorResize();\n\n const editableProps: EditableProps = {\n placeholder,\n readOnly: readonly,\n onBlur: () => onBlur && onBlur(JSON.stringify(localValue.current)),\n className: padding,\n };\n\n useEffect(() => {\n for (const element of Object.values(TextStyles).filter(\n (textStyle) => textStyle !== TextStyles.ELEMENT_PARAGRAPH,\n )) {\n if (!designTokens[element]) {\n designTokens[element] = defaultDesignTokens[element];\n }\n }\n }, [designTokens]);\n\n const debouncedOnChange = debounce((value: TNode[]) => {\n onTextChange && onTextChange(JSON.stringify(value));\n }, ON_SAVE_DELAY_IN_MS);\n\n const onChange = useCallback(\n (value) => {\n debouncedOnChange(value);\n localValue.current = value;\n },\n [debouncedOnChange, localValue],\n );\n\n const PositioningWrapper = EditorPositioningWrapper[position];\n\n const config = GeneratePlugins(editorId, plugins);\n const isNew = config && actions.length === 0 && plugins;\n const editorConfig = isNew ? config.create() : getEditorConfig();\n\n return (\n <RichTextEditorContext.Provider value={{ designTokens, PositioningWrapper }}>\n <PositioningWrapper.PlateWrapper ref={editorRef}>\n <Plate\n id={editorId}\n initialValue={parseRawValue(initialValue)}\n onChange={onChange}\n editableProps={editableProps}\n plugins={editorConfig}\n >\n {isNew && config.toolbar(editorWidth)}\n {!isNew && <Toolbar editorId={editorId} actions={actions} editorWidth={editorWidth} />}\n </Plate>\n </PositioningWrapper.PlateWrapper>\n </RichTextEditorContext.Provider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCO,MAAM,KAA0C,CAAC;AAAA,EACpD;AAAA,EACA,OAAO;AAAA,EACP,iBAAc;AAAA,EACd,cAAW;AAAA,EACX,WAAQ;AAAA,EACR,kBAAe;AAAA,EACf,aAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,aAAU,EAAa;AAAA,EACvB,cAAW,EAAS;AAAA,EACpB;AAAA,MACE;AACI,QAAA,IAAW,EAAc,CAAE,GAC3B,EAAE,kBAAe,EAAe,GAAU,CAAK,GAC/C,EAAE,cAAW,mBAAgB,EAAgB,GAE7C,IAA+B;AAAA,IACjC;AAAA,IACA,UAAU;AAAA,IACV,QAAQ,MAAM,KAAU,EAAO,KAAK,UAAU,EAAW,OAAO,CAAC;AAAA,IACjE,WAAW;AAAA,EAAA;AAGf,IAAU,MAAM;AACD,eAAA,KAAW,OAAO,OAAO,CAAU,EAAE,OAC5C,CAAC,MAAc,MAAc,EAAW,iBAC5C;AACQ,MAAC,EAAa,MACd,GAAa,KAAW,EAAoB;AAAA,EAEpD,GACD,CAAC,CAAY,CAAC;AAEX,QAAA,IAAoB,EAAS,CAAC,MAAmB;AACnD,SAAgB,EAAa,KAAK,UAAU,CAAK,CAAC;AAAA,KACnD,CAAmB,GAEhB,IAAW,EACb,CAAC,MAAU;AACP,MAAkB,CAAK,GACvB,EAAW,UAAU;AAAA,EAAA,GAEzB,CAAC,GAAmB,CAAU,CAClC,GAEM,IAAqB,EAAyB,IAE9C,IAAS,EAAgB,GAAU,CAAO,GAC1C,IAAQ,KAAU,EAAQ,WAAW,KAAK,GAC1C,IAAe,IAAQ,EAAO,WAAW,EAAgB;AAG3D,SAAA,kBAAA,cAAC,EAAsB,UAAtB;AAAA,IAA+B,OAAO,EAAE,iBAAc,sBAAmB;AAAA,EACtE,GAAA,kBAAA,cAAC,EAAmB,cAAnB;AAAA,IAAgC,KAAK;AAAA,EAAA,GACjC,kBAAA,cAAA,GAAA;AAAA,IACG,IAAI;AAAA,IACJ,cAAc,EAAc,CAAY;AAAA,IACxC;AAAA,IACA;AAAA,IACA,SAAS;AAAA,EAAA,GAER,KAAS,EAAO,QAAQ,CAAW,GACnC,CAAC,KAAU,kBAAA,cAAA,GAAA;AAAA,IAAQ;AAAA,IAAoB;AAAA,IAAkB;AAAA,EAAA,CAA0B,CACxF,CACJ,CACJ;AAER;"}
1
+ {"version":3,"file":"RichTextEditor.es.js","sources":["../../../src/components/RichTextEditor/RichTextEditor.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport React, { FC, useCallback, useEffect } from 'react';\nimport { Plate, TNode } from '@udecode/plate';\nimport { useMemoizedId } from '@hooks/useMemoizedId';\nimport { debounce } from '@utilities/debounce';\nimport { EditableProps } from 'slate-react/dist/components/editable';\nimport { Toolbar } from './components/Toolbar/Toolbar';\nimport { RichTextEditorContext } from './context/RichTextEditorContext';\nimport { useEditorResize, useEditorState } from './hooks';\nimport { DesignTokens, PaddingSizes } from './types';\nimport { EditorActions, defaultActions } from './utils/actions';\nimport { ON_SAVE_DELAY_IN_MS } from './utils';\nimport { defaultDesignTokens } from './utils/defaultDesignTokens';\nimport { parseRawValue } from './utils/parseRawValue';\nimport { TextStyles } from './utils/textStyles';\nimport { EditorPositioningWrapper } from './EditorPositioningWrapper';\nimport { Position } from './EditorPositioningWrapper';\nimport { getEditorConfig } from './utils/editorConfig';\nimport { GeneratePlugins, PluginComposer } from './EditorActions';\nimport { forceTabOutOfActiveElement } from './helper';\n\nexport type RichTextEditorProps = {\n id?: string;\n placeholder?: string;\n value?: string;\n onTextChange?: (value: string) => void;\n onBlur?: (value: string) => void;\n readonly?: boolean;\n clear?: boolean;\n designTokens?: DesignTokens;\n actions?: EditorActions[][];\n padding?: PaddingSizes;\n position?: Position;\n plugins?: PluginComposer;\n};\n\nexport const RichTextEditor: FC<RichTextEditorProps> = ({\n id,\n value: initialValue,\n placeholder = '',\n readonly = false,\n clear = false,\n designTokens = defaultDesignTokens,\n actions = defaultActions,\n onTextChange,\n onBlur,\n padding = PaddingSizes.None,\n position = Position.FLOATING,\n plugins,\n}) => {\n const editorId = useMemoizedId(id);\n const { localValue } = useEditorState(editorId, clear);\n const { editorRef, editorWidth } = useEditorResize();\n\n const editableProps: EditableProps = {\n placeholder,\n readOnly: readonly,\n onBlur: () => onBlur && onBlur(JSON.stringify(localValue.current)),\n className: padding,\n onKeyDown: (event) => {\n if (event.code === 'Tab') {\n // Forcing a blur event because of accessibility\n forceTabOutOfActiveElement();\n }\n },\n };\n\n useEffect(() => {\n for (const element of Object.values(TextStyles).filter(\n (textStyle) => textStyle !== TextStyles.ELEMENT_PARAGRAPH,\n )) {\n if (!designTokens[element]) {\n designTokens[element] = defaultDesignTokens[element];\n }\n }\n }, [designTokens]);\n\n const debouncedOnChange = debounce((value: TNode[]) => {\n onTextChange && onTextChange(JSON.stringify(value));\n }, ON_SAVE_DELAY_IN_MS);\n\n const onChange = useCallback(\n (value) => {\n debouncedOnChange(value);\n localValue.current = value;\n },\n [debouncedOnChange, localValue],\n );\n\n const PositioningWrapper = EditorPositioningWrapper[position];\n\n const config = GeneratePlugins(editorId, plugins);\n const isNew = config && actions.length === 0 && plugins;\n const editorConfig = isNew ? config.create() : getEditorConfig();\n\n return (\n <RichTextEditorContext.Provider value={{ designTokens, PositioningWrapper }}>\n <PositioningWrapper.PlateWrapper ref={editorRef}>\n <Plate\n id={editorId}\n initialValue={parseRawValue(initialValue)}\n onChange={onChange}\n editableProps={editableProps}\n plugins={editorConfig}\n >\n {isNew && config.toolbar(editorWidth)}\n {!isNew && <Toolbar editorId={editorId} actions={actions} editorWidth={editorWidth} />}\n </Plate>\n </PositioningWrapper.PlateWrapper>\n </RichTextEditorContext.Provider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCO,MAAM,KAA0C,CAAC;AAAA,EACpD;AAAA,EACA,OAAO;AAAA,EACP,iBAAc;AAAA,EACd,cAAW;AAAA,EACX,WAAQ;AAAA,EACR,kBAAe;AAAA,EACf,aAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,aAAU,EAAa;AAAA,EACvB,cAAW,EAAS;AAAA,EACpB;AAAA,MACE;AACI,QAAA,IAAW,EAAc,CAAE,GAC3B,EAAE,kBAAe,EAAe,GAAU,CAAK,GAC/C,EAAE,cAAW,mBAAgB,EAAgB,GAE7C,IAA+B;AAAA,IACjC;AAAA,IACA,UAAU;AAAA,IACV,QAAQ,MAAM,KAAU,EAAO,KAAK,UAAU,EAAW,OAAO,CAAC;AAAA,IACjE,WAAW;AAAA,IACX,WAAW,CAAC,MAAU;AACd,MAAA,EAAM,SAAS,SAEY;IAEnC;AAAA,EAAA;AAGJ,IAAU,MAAM;AACD,eAAA,KAAW,OAAO,OAAO,CAAU,EAAE,OAC5C,CAAC,MAAc,MAAc,EAAW,iBAC5C;AACQ,MAAC,EAAa,MACd,GAAa,KAAW,EAAoB;AAAA,EAEpD,GACD,CAAC,CAAY,CAAC;AAEX,QAAA,IAAoB,EAAS,CAAC,MAAmB;AACnD,SAAgB,EAAa,KAAK,UAAU,CAAK,CAAC;AAAA,KACnD,CAAmB,GAEhB,IAAW,EACb,CAAC,MAAU;AACP,MAAkB,CAAK,GACvB,EAAW,UAAU;AAAA,EAAA,GAEzB,CAAC,GAAmB,CAAU,CAClC,GAEM,IAAqB,EAAyB,IAE9C,IAAS,EAAgB,GAAU,CAAO,GAC1C,IAAQ,KAAU,EAAQ,WAAW,KAAK,GAC1C,IAAe,IAAQ,EAAO,WAAW,EAAgB;AAG3D,SAAA,kBAAA,cAAC,EAAsB,UAAtB;AAAA,IAA+B,OAAO,EAAE,iBAAc,sBAAmB;AAAA,EACtE,GAAA,kBAAA,cAAC,EAAmB,cAAnB;AAAA,IAAgC,KAAK;AAAA,EAAA,GACjC,kBAAA,cAAA,GAAA;AAAA,IACG,IAAI;AAAA,IACJ,cAAc,EAAc,CAAY;AAAA,IACxC;AAAA,IACA;AAAA,IACA,SAAS;AAAA,EAAA,GAER,KAAS,EAAO,QAAQ,CAAW,GACnC,CAAC,KAAU,kBAAA,cAAA,GAAA;AAAA,IAAQ;AAAA,IAAoB;AAAA,IAAkB;AAAA,EAAA,CAA0B,CACxF,CACJ,CACJ;AAER;"}
@@ -0,0 +1 @@
1
+ export declare const forceTabOutOfActiveElement: () => void;
@@ -0,0 +1,8 @@
1
+ const t = () => {
2
+ var e;
3
+ (e = document.activeElement) == null || e.blur();
4
+ };
5
+ export {
6
+ t as forceTabOutOfActiveElement
7
+ };
8
+ //# sourceMappingURL=helper.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper.es.js","sources":["../../../src/components/RichTextEditor/helper.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nexport const forceTabOutOfActiveElement = () => {\n (document.activeElement as HTMLElement)?.blur();\n};\n"],"names":[],"mappings":"AAEO,MAAM,IAA6B,MAAM;AAAzC;AACF,gBAAS,kBAAT,UAAwC;AAC7C;"}
@@ -1,57 +1,74 @@
1
- import r, { useMemo as o } from "react";
1
+ import r, { useMemo as i } from "react";
2
2
  import { merge as n } from "../../utilities/merge.es.js";
3
- import { useFocusRing as k } from "@react-aria/focus";
4
- import { FOCUS_STYLE as M } from "../../utilities/focusStyle.es.js";
5
- import { useMemoizedId as L } from "../../hooks/useMemoizedId.es.js";
6
- import { InputLabel as E } from "../InputLabel/InputLabel.es.js";
7
- var F = /* @__PURE__ */ ((e) => (e.Small = "Small", e.Medium = "Medium", e.Large = "Large", e))(F || {});
8
- const y = {
9
- Small: "tw-w-5 tw-h-2",
10
- Medium: "tw-w-7 tw-h-4",
11
- Large: "tw-w-9 tw-h-5"
12
- }, N = {
13
- Small: "tw-w-3 tw-h-3",
14
- Medium: "tw-w-3 tw-h-3",
15
- Large: "tw-w-4 tw-h-4"
16
- }, U = ({
17
- id: e,
18
- name: u,
19
- label: l,
20
- disabled: s,
21
- onChange: b,
3
+ import { useFocusRing as M } from "@react-aria/focus";
4
+ import { FOCUS_STYLE as S } from "../../utilities/focusStyle.es.js";
5
+ import { useMemoizedId as E } from "../../hooks/useMemoizedId.es.js";
6
+ import { InputLabel as L } from "../InputLabel/InputLabel.es.js";
7
+ var T = /* @__PURE__ */ ((s) => (s.Small = "Small", s.Medium = "Medium", s.Large = "Large", s))(T || {});
8
+ const W = {
9
+ Small: "tw-w-[22px] tw-h-3",
10
+ Medium: "tw-w-[30px] tw-h-4",
11
+ Large: "tw-w-[38px] tw-h-5"
12
+ }, w = {
13
+ Small: {
14
+ dimensions: "tw-w-3 tw-h-3",
15
+ activeWidth: "group-active:tw-w-[14px]",
16
+ activeTranslation: "tw-translate-x-[9px]"
17
+ },
18
+ Medium: {
19
+ dimensions: "tw-w-4 tw-h-4",
20
+ activeWidth: "group-active:tw-w-[18px]",
21
+ activeTranslation: "tw-translate-x-[13px]"
22
+ },
23
+ Large: {
24
+ dimensions: "tw-w-5 tw-h-5",
25
+ activeWidth: "group-active:tw-w-[22px]",
26
+ activeTranslation: "tw-translate-x-[17px]"
27
+ }
28
+ }, O = ({
29
+ id: s,
30
+ name: p,
31
+ label: c,
32
+ disabled: a,
33
+ onChange: x,
22
34
  size: t = "Medium",
23
- on: a = !1,
24
- hug: w = !1,
25
- tooltip: C
35
+ on: e = !1,
36
+ hug: m = !1,
37
+ tooltip: v
26
38
  }) => {
27
- const i = L(e), { isFocusVisible: c, focusProps: g } = k(), f = o(() => n(["tw-inline-flex tw-border-0 tw-rounded-full tw-transition-colors tw-shrink-0", t !== "Small" ? "tw-py-0 tw-px-[0.125rem]" : "tw-p-0", s ? "tw-bg-box-disabled-strong tw-pointer-events-none" : a ? "tw-bg-button-strong-background hover:tw-bg-button-strong-background-hover" : "tw-bg-text-x-weak hover:tw-bg-text-weak", y[t], c && M]), [a, s, t, c]), x = o(() => {
28
- const m = "tw-block tw-self-center tw-bg-box-neutral-strong-inverse tw-rounded-full tw-transition-transform", d = t === "Small" ? s ? "tw-border tw-border-box-disabled-strong" : "tw-border tw-border-line-xx-strong" : "", S = a ? t === "Small" ? "tw-translate-x-2" : "tw-translate-x-full" : "tw-translate-x-0";
29
- return n([m, d, N[t], S]);
30
- }, [a, s, t]), p = o(() => n(["tw-gap-2 tw-items-center tw-justify-between", w ? "tw-inline-flex" : "tw-flex"]), [w]);
39
+ const d = E(s), { isFocusVisible: u, focusProps: g } = M(), f = i(() => n(["tw-group tw-border tw-inline-flex tw-rounded-full tw-shrink-0 tw-p-0 tw-transition-colors", a ? "tw-bg-box-disabled tw-border-line tw-pointer-events-none" : e ? "tw-bg-text-weak tw-border-line-xx-strong hover:tw-bg-text" : "tw-bg-box-neutral tw-border-line-x-strong hover:tw-bg-box-neutral-hover", W[t], u && S]), [e, a, t, u]), C = i(() => {
40
+ const o = "tw-relative tw-self-center tw-transition-transform", l = e && w[t].activeTranslation;
41
+ return n([o, w[t].dimensions, l]);
42
+ }, [e, t]), h = i(() => {
43
+ const o = "tw-border tw-bg-base tw-rounded-full tw-absolute tw-block tw-self-center tw-transition-width tw-duration-75", l = e ? "tw-right-0" : "tw-left-0 -tw-translate-x-px", b = a ? "tw-border-line-strong" : n(["tw-bg-base tw-border-line-xx-strong", w[t].activeWidth]);
44
+ return n([o, w[t].dimensions, l, b]);
45
+ }, [e, a, t]), k = i(() => n(["tw-gap-2 tw-items-center tw-justify-between", m ? "tw-inline-flex" : "tw-flex"]), [m]);
31
46
  return /* @__PURE__ */ r.createElement("div", {
32
- className: p,
47
+ className: k,
33
48
  "data-test-id": "switch-container"
34
- }, l && /* @__PURE__ */ r.createElement(E, {
49
+ }, c && /* @__PURE__ */ r.createElement(L, {
35
50
  clickable: !0,
36
- htmlFor: i,
37
- disabled: s,
38
- tooltip: C
39
- }, l), /* @__PURE__ */ r.createElement("button", {
51
+ htmlFor: d,
52
+ disabled: a,
53
+ tooltip: v
54
+ }, c), /* @__PURE__ */ r.createElement("button", {
40
55
  ...g,
41
- id: i,
42
- disabled: s,
43
- name: u,
56
+ id: d,
57
+ disabled: a,
58
+ name: p,
44
59
  "data-test-id": "switch",
45
60
  className: f,
46
- value: a.toString(),
47
- onClick: b,
61
+ value: e.toString(),
62
+ onClick: x,
48
63
  type: "button"
49
64
  }, /* @__PURE__ */ r.createElement("div", {
50
- className: x
51
- })));
65
+ className: C
66
+ }, /* @__PURE__ */ r.createElement("div", {
67
+ className: h
68
+ }))));
52
69
  };
53
70
  export {
54
- U as Switch,
55
- F as SwitchSize
71
+ O as Switch,
72
+ T as SwitchSize
56
73
  };
57
74
  //# sourceMappingURL=Switch.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.es.js","sources":["../../../src/components/Switch/Switch.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport React, { FC, MouseEvent, useMemo } from 'react';\nimport { merge } from '@utilities/merge';\nimport { useFocusRing } from '@react-aria/focus';\nimport { FOCUS_STYLE } from '@utilities/focusStyle';\nimport { useMemoizedId } from '@hooks/useMemoizedId';\nimport { InputLabel, InputLabelTooltipProps } from '@components/InputLabel/InputLabel';\n\nexport enum SwitchSize {\n Small = 'Small',\n Medium = 'Medium',\n Large = 'Large',\n}\n\nconst lineSizeClasses: Record<SwitchSize, string> = {\n [SwitchSize.Small]: 'tw-w-5 tw-h-2',\n [SwitchSize.Medium]: 'tw-w-7 tw-h-4',\n [SwitchSize.Large]: 'tw-w-9 tw-h-5',\n};\n\nconst dotSizeClasses: Record<SwitchSize, string> = {\n [SwitchSize.Small]: 'tw-w-3 tw-h-3',\n [SwitchSize.Medium]: 'tw-w-3 tw-h-3',\n [SwitchSize.Large]: 'tw-w-4 tw-h-4',\n};\n\nexport type SwitchProps = {\n id?: string;\n on?: boolean;\n disabled?: boolean;\n label?: string;\n name?: string;\n size?: SwitchSize;\n hug?: boolean;\n tooltip?: InputLabelTooltipProps;\n onChange?: (e: MouseEvent) => void;\n};\n\nexport const Switch: FC<SwitchProps> = ({\n id: propId,\n name,\n label,\n disabled,\n onChange,\n size = SwitchSize.Medium,\n on = false,\n hug = false,\n tooltip,\n}) => {\n const id = useMemoizedId(propId);\n const { isFocusVisible, focusProps } = useFocusRing();\n\n const lineClasses = useMemo(() => {\n const baseClasses = 'tw-inline-flex tw-border-0 tw-rounded-full tw-transition-colors tw-shrink-0';\n const sizeClasses = size !== SwitchSize.Small ? 'tw-py-0 tw-px-[0.125rem]' : 'tw-p-0';\n const activatedClasses = on\n ? 'tw-bg-button-strong-background hover:tw-bg-button-strong-background-hover'\n : 'tw-bg-text-x-weak hover:tw-bg-text-weak';\n const disabledClasses = disabled ? 'tw-bg-box-disabled-strong tw-pointer-events-none' : activatedClasses;\n\n return merge([baseClasses, sizeClasses, disabledClasses, lineSizeClasses[size], isFocusVisible && FOCUS_STYLE]);\n }, [on, disabled, size, isFocusVisible]);\n\n const dotClasses = useMemo(() => {\n const baseClasses =\n 'tw-block tw-self-center tw-bg-box-neutral-strong-inverse tw-rounded-full tw-transition-transform';\n const disabledClasses = disabled\n ? 'tw-border tw-border-box-disabled-strong'\n : 'tw-border tw-border-line-xx-strong';\n const sizeClasses = size === SwitchSize.Small ? disabledClasses : '';\n const activatedClasses = size === SwitchSize.Small ? 'tw-translate-x-2' : 'tw-translate-x-full';\n const animationClasses = on ? activatedClasses : 'tw-translate-x-0';\n\n return merge([baseClasses, sizeClasses, dotSizeClasses[size], animationClasses]);\n }, [on, disabled, size]);\n\n const containerClasses = useMemo(() => {\n return merge(['tw-gap-2 tw-items-center tw-justify-between', hug ? 'tw-inline-flex' : 'tw-flex']);\n }, [hug]);\n\n return (\n <div className={containerClasses} data-test-id=\"switch-container\">\n {label && (\n <InputLabel clickable={true} htmlFor={id} disabled={disabled} tooltip={tooltip}>\n {label}\n </InputLabel>\n )}\n <button\n {...focusProps}\n id={id}\n disabled={disabled}\n name={name}\n data-test-id=\"switch\"\n className={lineClasses}\n value={on.toString()}\n onClick={onChange}\n type=\"button\"\n >\n <div className={dotClasses} />\n </button>\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;AASY,IAAA,sBAAA,MACA,GAAA,QAAA,SACC,EAAA,SAAA,UACD,EAAA,QAAA,SAHA,IAAA,KAAA,CAAA,CAAA;AAMZ,MAAM,IAA8C;AAAA,EAChD,AAAC,OAAmB;AAAA,EACpB,AAAC,QAAoB;AAAA,EACrB,AAAC,OAAmB;AACxB,GAEM,IAA6C;AAAA,EAC/C,AAAC,OAAmB;AAAA,EACpB,AAAC,QAAoB;AAAA,EACrB,AAAC,OAAmB;AACxB,GAca,IAA0B,CAAC;AAAA,EACpC,IAAI;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAO;AAAA,EACP,QAAK;AAAA,EACL,SAAM;AAAA,EACN;AAAA,MACE;AACI,QAAA,IAAK,EAAc,CAAM,GACzB,EAAE,mBAAgB,kBAAe,EAAa,GAE9C,IAAc,EAAQ,MAQjB,EAAM,CAPO,+EACA,MAAS,UAAmB,6BAA6B,UAIrD,IAAW,qDAHV,IACnB,8EACA,2CAGmD,EAAgB,IAAO,KAAkB,CAAW,CAAC,GAC/G,CAAC,GAAI,GAAU,GAAM,CAAc,CAAC,GAEjC,IAAa,EAAQ,MAAM;AAC7B,UAAM,IACF,oGAIE,IAAc,MAAS,UAHL,IAClB,4CACA,uCAC4D,IAE5D,IAAmB,IADA,MAAS,UAAmB,qBAAqB,wBACzB;AAEjD,WAAO,EAAM,CAAC,GAAa,GAAa,EAAe,IAAO,CAAgB,CAAC;AAAA,EAChF,GAAA,CAAC,GAAI,GAAU,CAAI,CAAC,GAEjB,IAAmB,EAAQ,MACtB,EAAM,CAAC,+CAA+C,IAAM,mBAAmB,SAAS,CAAC,GACjG,CAAC,CAAG,CAAC;AAER,SACK,kBAAA,cAAA,OAAA;AAAA,IAAI,WAAW;AAAA,IAAkB,gBAAa;AAAA,EAAA,GAC1C,KACI,kBAAA,cAAA,GAAA;AAAA,IAAW,WAAW;AAAA,IAAM,SAAS;AAAA,IAAI;AAAA,IAAoB;AAAA,EACzD,GAAA,CACL,GAEH,kBAAA,cAAA,UAAA;AAAA,IACI,GAAG;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAa;AAAA,IACb,WAAW;AAAA,IACX,OAAO,EAAG,SAAS;AAAA,IACnB,SAAS;AAAA,IACT,MAAK;AAAA,EAAA,GAEJ,kBAAA,cAAA,OAAA;AAAA,IAAI,WAAW;AAAA,EAAY,CAAA,CAChC,CACJ;AAER;"}
1
+ {"version":3,"file":"Switch.es.js","sources":["../../../src/components/Switch/Switch.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport React, { FC, MouseEvent, useMemo } from 'react';\nimport { merge } from '@utilities/merge';\nimport { useFocusRing } from '@react-aria/focus';\nimport { FOCUS_STYLE } from '@utilities/focusStyle';\nimport { useMemoizedId } from '@hooks/useMemoizedId';\nimport { InputLabel, InputLabelTooltipProps } from '@components/InputLabel/InputLabel';\n\nexport enum SwitchSize {\n Small = 'Small',\n Medium = 'Medium',\n Large = 'Large',\n}\n\nconst trackSizeClasses: Record<SwitchSize, string> = {\n [SwitchSize.Small]: 'tw-w-[22px] tw-h-3',\n [SwitchSize.Medium]: 'tw-w-[30px] tw-h-4',\n [SwitchSize.Large]: 'tw-w-[38px] tw-h-5',\n};\n\nconst dotSizeClasses: Record<SwitchSize, Record<'dimensions' | 'activeWidth' | 'activeTranslation', string>> = {\n [SwitchSize.Small]: {\n dimensions: 'tw-w-3 tw-h-3',\n activeWidth: 'group-active:tw-w-[14px]',\n activeTranslation: 'tw-translate-x-[9px]',\n },\n [SwitchSize.Medium]: {\n dimensions: 'tw-w-4 tw-h-4',\n activeWidth: 'group-active:tw-w-[18px]',\n activeTranslation: 'tw-translate-x-[13px]',\n },\n [SwitchSize.Large]: {\n dimensions: 'tw-w-5 tw-h-5',\n activeWidth: 'group-active:tw-w-[22px]',\n activeTranslation: 'tw-translate-x-[17px]',\n },\n};\n\nexport type SwitchProps = {\n id?: string;\n on?: boolean;\n disabled?: boolean;\n label?: string;\n name?: string;\n size?: SwitchSize;\n hug?: boolean;\n tooltip?: InputLabelTooltipProps;\n onChange?: (e: MouseEvent) => void;\n};\n\nexport const Switch: FC<SwitchProps> = ({\n id: propId,\n name,\n label,\n disabled,\n onChange,\n size = SwitchSize.Medium,\n on = false,\n hug = false,\n tooltip,\n}) => {\n const id = useMemoizedId(propId);\n const { isFocusVisible, focusProps } = useFocusRing();\n\n // The track on which the dot moves\n const trackClasses = useMemo(() => {\n const baseClasses = 'tw-group tw-border tw-inline-flex tw-rounded-full tw-shrink-0 tw-p-0 tw-transition-colors';\n\n const valueClasses = on\n ? 'tw-bg-text-weak tw-border-line-xx-strong hover:tw-bg-text'\n : 'tw-bg-box-neutral tw-border-line-x-strong hover:tw-bg-box-neutral-hover';\n\n const disabledClasses = disabled ? 'tw-bg-box-disabled tw-border-line tw-pointer-events-none' : valueClasses;\n\n return merge([baseClasses, disabledClasses, trackSizeClasses[size], isFocusVisible && FOCUS_STYLE]);\n }, [on, disabled, size, isFocusVisible]);\n\n // Responsible for the left-right translation\n const dotWrapperClasses = useMemo(() => {\n const baseClasses = 'tw-relative tw-self-center tw-transition-transform';\n\n const valueClasses = on && dotSizeClasses[size].activeTranslation;\n\n return merge([baseClasses, dotSizeClasses[size].dimensions, valueClasses]);\n }, [on, size]);\n\n // Responsible for dot styling and width animation on hover\n const dotClasses = useMemo(() => {\n const baseClasses =\n 'tw-border tw-bg-base tw-rounded-full tw-absolute tw-block tw-self-center tw-transition-width tw-duration-75';\n\n const valueClasses = on ? 'tw-right-0' : 'tw-left-0 -tw-translate-x-px';\n\n const disabledStateClasses = disabled\n ? 'tw-border-line-strong'\n : merge(['tw-bg-base tw-border-line-xx-strong', dotSizeClasses[size].activeWidth]);\n\n return merge([baseClasses, dotSizeClasses[size].dimensions, valueClasses, disabledStateClasses]);\n }, [on, disabled, size]);\n\n // Wraps the InputLabel instance and switch element\n const containerClasses = useMemo(() => {\n return merge(['tw-gap-2 tw-items-center tw-justify-between', hug ? 'tw-inline-flex' : 'tw-flex']);\n }, [hug]);\n\n return (\n <div className={containerClasses} data-test-id=\"switch-container\">\n {label && (\n <InputLabel clickable={true} htmlFor={id} disabled={disabled} tooltip={tooltip}>\n {label}\n </InputLabel>\n )}\n <button\n {...focusProps}\n id={id}\n disabled={disabled}\n name={name}\n data-test-id=\"switch\"\n className={trackClasses}\n value={on.toString()}\n onClick={onChange}\n type=\"button\"\n >\n <div className={dotWrapperClasses}>\n <div className={dotClasses} />\n </div>\n </button>\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;AASY,IAAA,sBAAA,MACA,GAAA,QAAA,SACC,EAAA,SAAA,UACD,EAAA,QAAA,SAHA,IAAA,KAAA,CAAA,CAAA;AAMZ,MAAM,IAA+C;AAAA,EACjD,AAAC,OAAmB;AAAA,EACpB,AAAC,QAAoB;AAAA,EACrB,AAAC,OAAmB;AACxB,GAEM,IAAyG;AAAA,EAC3G,AAAC,OAAmB;AAAA,IAChB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,mBAAmB;AAAA,EACvB;AAAA,EACA,AAAC,QAAoB;AAAA,IACjB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,mBAAmB;AAAA,EACvB;AAAA,EACA,AAAC,OAAmB;AAAA,IAChB,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,mBAAmB;AAAA,EACvB;AACJ,GAca,IAA0B,CAAC;AAAA,EACpC,IAAI;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAO;AAAA,EACP,QAAK;AAAA,EACL,SAAM;AAAA,EACN;AAAA,MACE;AACI,QAAA,IAAK,EAAc,CAAM,GACzB,EAAE,mBAAgB,kBAAe,EAAa,GAG9C,IAAe,EAAQ,MASlB,EAAM,CARO,6FAMI,IAAW,6DAJd,IACf,8DACA,2EAIsC,EAAiB,IAAO,KAAkB,CAAW,CAAC,GACnG,CAAC,GAAI,GAAU,GAAM,CAAc,CAAC,GAGjC,IAAoB,EAAQ,MAAM;AACpC,UAAM,IAAc,sDAEd,IAAe,KAAM,EAAe,GAAM;AAEhD,WAAO,EAAM,CAAC,GAAa,EAAe,GAAM,YAAY,CAAY,CAAC;AAAA,EAAA,GAC1E,CAAC,GAAI,CAAI,CAAC,GAGP,IAAa,EAAQ,MAAM;AAC7B,UAAM,IACF,+GAEE,IAAe,IAAK,eAAe,gCAEnC,IAAuB,IACvB,0BACA,EAAM,CAAC,uCAAuC,EAAe,GAAM,WAAW,CAAC;AAE9E,WAAA,EAAM,CAAC,GAAa,EAAe,GAAM,YAAY,GAAc,CAAoB,CAAC;AAAA,EAChG,GAAA,CAAC,GAAI,GAAU,CAAI,CAAC,GAGjB,IAAmB,EAAQ,MACtB,EAAM,CAAC,+CAA+C,IAAM,mBAAmB,SAAS,CAAC,GACjG,CAAC,CAAG,CAAC;AAER,SACK,kBAAA,cAAA,OAAA;AAAA,IAAI,WAAW;AAAA,IAAkB,gBAAa;AAAA,EAAA,GAC1C,KACI,kBAAA,cAAA,GAAA;AAAA,IAAW,WAAW;AAAA,IAAM,SAAS;AAAA,IAAI;AAAA,IAAoB;AAAA,EACzD,GAAA,CACL,GAEH,kBAAA,cAAA,UAAA;AAAA,IACI,GAAG;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAa;AAAA,IACb,WAAW;AAAA,IACX,OAAO,EAAG,SAAS;AAAA,IACnB,SAAS;AAAA,IACT,MAAK;AAAA,EAAA,GAEJ,kBAAA,cAAA,OAAA;AAAA,IAAI,WAAW;AAAA,EAAA,GACX,kBAAA,cAAA,OAAA;AAAA,IAAI,WAAW;AAAA,EAAA,CAAY,CAChC,CACJ,CACJ;AAER;"}
@@ -4,8 +4,8 @@ import { useMemoizedId as H } from "../../hooks/useMemoizedId.es.js";
4
4
  import { useFocusRing as a } from "@react-aria/focus";
5
5
  import { FOCUS_STYLE as n } from "../../utilities/focusStyle.es.js";
6
6
  import { merge as i } from "../../utilities/merge.es.js";
7
- import { validationClassMap as J, Validation as h } from "../../utilities/validation.es.js";
8
- import t, { useRef as Q, useState as W, useEffect as C } from "react";
7
+ import { validationClassMap as J, Validation as C } from "../../utilities/validation.es.js";
8
+ import t, { useRef as Q, useState as W, useEffect as v } from "react";
9
9
  import "../../foundation/Icon/Generated/IconAdobeCreativeCloud.es.js";
10
10
  import "../../foundation/Icon/Generated/IconAdobeCreativeCloud12.es.js";
11
11
  import "../../foundation/Icon/Generated/IconAdobeCreativeCloud16.es.js";
@@ -1644,48 +1644,50 @@ import "../../foundation/Icon/Generated/IconWorkflowShapes24.es.js";
1644
1644
  import "../../foundation/Icon/Generated/IconWorkflowShapes32.es.js";
1645
1645
  import "../../foundation/Icon/IconsMap.es.js";
1646
1646
  var mt = /* @__PURE__ */ ((m) => (m.Text = "text", m.Password = "password", m.Number = "number", m))(mt || {});
1647
- const jV = ({
1647
+ const LV = ({
1648
1648
  id: m,
1649
1649
  type: s = "text",
1650
1650
  decorator: f,
1651
- validation: d = h.Default,
1652
- clearable: v = !1,
1653
- placeholder: F,
1654
- required: I,
1651
+ validation: d = C.Default,
1652
+ clearable: F = !1,
1653
+ placeholder: I,
1654
+ required: N,
1655
1655
  obfuscated: p,
1656
1656
  disabled: o = !1,
1657
- autocomplete: N = !1,
1658
- dotted: P = !1,
1657
+ autocomplete: P = !1,
1658
+ dotted: V = !1,
1659
1659
  value: w = "",
1660
- copyable: V = !1,
1660
+ copyable: B = !1,
1661
1661
  onChange: c,
1662
1662
  onEnterPressed: x,
1663
- onBlur: B,
1663
+ onBlur: S,
1664
1664
  onClear: k,
1665
- size: O,
1665
+ size: j,
1666
1666
  spellcheck: E,
1667
1667
  readonly: u,
1668
- focusOnMount: S
1668
+ focusOnMount: g
1669
1669
  }) => {
1670
- const { isFocusVisible: j, focusProps: L } = a({ within: !0, isTextInput: !0 }), { isFocusVisible: z, focusProps: M } = a(), { isFocusVisible: R, focusProps: T } = a(), { isFocusVisible: D, focusProps: $ } = a(), { copy: A, status: b } = G(), e = Q(null), [l, g] = W(typeof p == "boolean" ? p : s === "password");
1671
- C(() => {
1672
- var r;
1673
- S && ((r = e.current) == null || r.focus());
1674
- }, []), C(() => {
1675
- typeof p == "boolean" && g(p);
1670
+ const { isFocusVisible: L, focusProps: O } = a({ within: !0, isTextInput: !0 }), { isFocusVisible: T, focusProps: z } = a(), { isFocusVisible: R, focusProps: D } = a(), { isFocusVisible: M, focusProps: $ } = a(), { copy: A, status: b } = G(), e = Q(null), [l, y] = W(typeof p == "boolean" ? p : s === "password");
1671
+ v(() => {
1672
+ setTimeout(() => {
1673
+ var r;
1674
+ g && ((r = e.current) == null || r.focus());
1675
+ }, 0);
1676
+ }, [g]), v(() => {
1677
+ typeof p == "boolean" && y(p);
1676
1678
  }, [p]);
1677
1679
  const K = (r) => {
1678
1680
  r.key === "Enter" && x && x(r);
1679
1681
  }, U = () => s === "password" ? l ? "password" : "text" : s, Y = typeof E == "boolean" ? { spellCheck: E } : null;
1680
1682
  return /* @__PURE__ */ t.createElement("div", {
1681
- ...L,
1683
+ ...O,
1682
1684
  className: i([
1683
- "tw-flex tw-items-center tw-h-9 tw-gap-2 tw-px-3 tw-border hover:tw-border-black-90 tw-transition tw-rounded tw-text-s tw-font-sans tw-relative tw-bg-white dark:tw-bg-transparent",
1684
- P ? "tw-border-dashed" : "tw-border-solid",
1685
+ "tw-flex tw-items-center tw-h-9 tw-gap-2 tw-px-3 tw-border tw-transition tw-rounded tw-text-s tw-font-sans tw-relative tw-bg-white dark:tw-bg-transparent",
1686
+ V ? "tw-border-dashed" : "tw-border-solid",
1685
1687
  o || u ? "tw-border-black-5 tw-bg-black-5 dark:tw-bg-black-90 dark:tw-border-black-90" : i([
1686
- "focus-within:tw-border-black-90",
1688
+ "focus-within:tw-border-black-90 hover:tw-border-black-90",
1687
1689
  J[d],
1688
- j && n
1690
+ L && n
1689
1691
  ])
1690
1692
  ])
1691
1693
  }, f && /* @__PURE__ */ t.createElement("div", {
@@ -1706,56 +1708,56 @@ const jV = ({
1706
1708
  return (r = e.current) == null ? void 0 : r.focus();
1707
1709
  },
1708
1710
  onChange: (r) => c && c(r.currentTarget.value),
1709
- onBlur: B,
1711
+ onBlur: S,
1710
1712
  onKeyDown: K,
1711
- placeholder: F,
1713
+ placeholder: I,
1712
1714
  value: w,
1713
1715
  type: U(),
1714
- required: I,
1716
+ required: N,
1715
1717
  readOnly: u,
1716
1718
  disabled: o,
1717
- autoComplete: N ? "on" : "off",
1718
- size: O,
1719
+ autoComplete: P ? "on" : "off",
1720
+ size: j,
1719
1721
  "data-test-id": "text-input",
1720
1722
  ...Y
1721
- }), `${w}`.length > 0 && v && /* @__PURE__ */ t.createElement("button", {
1723
+ }), `${w}`.length > 0 && F && /* @__PURE__ */ t.createElement("button", {
1722
1724
  className: i([
1723
1725
  "tw-flex tw-items-center tw-justify-center tw-transition-colors tw-rounded",
1724
1726
  o ? "tw-cursor-default tw-text-black-40" : "tw-text-black-60 hover:tw-text-black-100",
1725
- z && n
1727
+ T && n
1726
1728
  ]),
1727
1729
  onClick: () => {
1728
- var r, y;
1729
- (r = e.current) == null || r.focus(), (y = e.current) == null || y.setAttribute("value", ""), c && c(""), k && k();
1730
+ var r, h;
1731
+ (r = e.current) == null || r.focus(), (h = e.current) == null || h.setAttribute("value", ""), c && c(""), k && k();
1730
1732
  },
1731
1733
  "data-test-id": "clear-icon",
1732
1734
  title: "Clear text input",
1733
1735
  "aria-label": "clear text input",
1734
1736
  disabled: o,
1735
1737
  type: "button",
1736
- ...M
1738
+ ...z
1737
1739
  }, /* @__PURE__ */ t.createElement(tt, null)), s === "password" && /* @__PURE__ */ t.createElement("button", {
1738
1740
  className: i([
1739
1741
  "tw-flex tw-items-center tw-justify-center tw-transition-colors tw-rounded",
1740
1742
  o ? "tw-cursor-default tw-text-black-40" : "tw-text-black-60 hover:tw-text-black-100",
1741
1743
  R && n
1742
1744
  ]),
1743
- onClick: () => g(!l),
1745
+ onClick: () => y(!l),
1744
1746
  "data-test-id": "visibility-icon",
1745
1747
  title: "Toggle text visibility",
1746
1748
  type: "button",
1747
1749
  "aria-label": `${l ? "unveil" : "obfuscate"} text input`,
1748
1750
  disabled: o,
1749
- ...T
1750
- }, l ? /* @__PURE__ */ t.createElement(ot, null) : /* @__PURE__ */ t.createElement(it, null)), d === h.Loading && /* @__PURE__ */ t.createElement("span", {
1751
+ ...D
1752
+ }, l ? /* @__PURE__ */ t.createElement(ot, null) : /* @__PURE__ */ t.createElement(it, null)), d === C.Loading && /* @__PURE__ */ t.createElement("span", {
1751
1753
  className: "tw-absolute tw-top-[-0.55rem] tw-right-[-0.55rem] tw-bg-white tw-rounded-full tw-p-[2px] tw-border tw-border-black-10"
1752
1754
  }, /* @__PURE__ */ t.createElement(_, {
1753
1755
  size: q.ExtraSmall
1754
- })), V && /* @__PURE__ */ t.createElement("button", {
1756
+ })), B && /* @__PURE__ */ t.createElement("button", {
1755
1757
  className: i([
1756
1758
  "tw-flex tw-items-center tw-justify-center tw-transition-colors tw-rounded",
1757
1759
  o ? "tw-cursor-default tw-text-black-40" : "tw-text-black-60 hover:tw-text-black-100",
1758
- D && n
1760
+ M && n
1759
1761
  ]),
1760
1762
  onClick: () => A(w),
1761
1763
  "data-test-id": "copy-icon",
@@ -1770,7 +1772,7 @@ const jV = ({
1770
1772
  }, /* @__PURE__ */ t.createElement(X, null))));
1771
1773
  };
1772
1774
  export {
1773
- jV as TextInput,
1775
+ LV as TextInput,
1774
1776
  mt as TextInputType
1775
1777
  };
1776
1778
  //# sourceMappingURL=TextInput.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextInput.es.js","sources":["../../../src/components/TextInput/TextInput.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { LoadingCircle, LoadingCircleSize } from '@components/LoadingCircle';\nimport { useCopy } from '@hooks/useCopy';\nimport { useMemoizedId } from '@hooks/useMemoizedId';\nimport { useFocusRing } from '@react-aria/focus';\nimport { FOCUS_STYLE } from '@utilities/focusStyle';\nimport { merge } from '@utilities/merge';\nimport { Validation, validationClassMap } from '@utilities/validation';\nimport React, { FC, FocusEvent, KeyboardEvent, ReactNode, useEffect, useRef, useState } from 'react';\nimport { IconCheckMark, IconClipboard, IconCross, IconCrossCircle, IconEye, IconEyeOff } from '@foundation/Icon';\n\nexport enum TextInputType {\n Text = 'text',\n Password = 'password',\n Number = 'number',\n}\n\nexport type TextInputBaseProps = {\n id?: string;\n type?: TextInputType;\n decorator?: ReactNode;\n dotted?: boolean;\n clearable?: boolean;\n placeholder?: string;\n required?: boolean;\n disabled?: boolean;\n autocomplete?: boolean;\n readonly?: boolean;\n validation?: Validation;\n copyable?: boolean;\n value?: string;\n onChange?: (value: string) => void;\n onEnterPressed?: (event: KeyboardEvent<HTMLInputElement>) => void;\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n onClear?: () => void;\n size?: number;\n spellcheck?: boolean;\n focusOnMount?: boolean;\n};\n\nexport type TextInputProps =\n | ({\n type?: TextInputType.Text;\n obfuscated?: false;\n } & TextInputBaseProps)\n | ({\n type?: TextInputType.Number;\n obfuscated?: false;\n min?: number;\n max?: number;\n } & TextInputBaseProps)\n | ({\n type: TextInputType.Password;\n obfuscated?: boolean;\n } & TextInputBaseProps);\n\nexport const TextInput: FC<TextInputProps> = ({\n id: propId,\n type = TextInputType.Text,\n decorator,\n validation = Validation.Default,\n clearable = false,\n placeholder,\n required,\n obfuscated,\n disabled = false,\n autocomplete = false,\n dotted = false,\n value = '',\n copyable = false,\n onChange,\n onEnterPressed,\n onBlur,\n onClear,\n size,\n spellcheck,\n readonly,\n focusOnMount,\n}) => {\n const { isFocusVisible, focusProps } = useFocusRing({ within: true, isTextInput: true });\n const { isFocusVisible: clearButtonIsFocusVisible, focusProps: clearButtonFocusProps } = useFocusRing();\n const { isFocusVisible: passwordButtonIsFocusVisible, focusProps: passwordButtonFocusProps } = useFocusRing();\n const { isFocusVisible: copyButtonIsFocusVisible, focusProps: copyButtonFocusProps } = useFocusRing();\n\n const { copy, status } = useCopy();\n\n const inputElement = useRef<HTMLInputElement | null>(null);\n const [isObfuscated, setIsObfuscated] = useState(\n typeof obfuscated === 'boolean' ? obfuscated : type === TextInputType.Password,\n );\n\n useEffect(() => {\n focusOnMount && inputElement.current?.focus();\n }, []);\n\n useEffect(() => {\n if (typeof obfuscated === 'boolean') {\n setIsObfuscated(obfuscated);\n }\n }, [obfuscated]);\n\n const onKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n onEnterPressed && onEnterPressed(event);\n }\n };\n\n const getInputType = () => {\n if (type === TextInputType.Password) {\n return isObfuscated ? TextInputType.Password : TextInputType.Text;\n }\n return type;\n };\n\n const spellcheckProp = typeof spellcheck === 'boolean' ? { spellCheck: spellcheck } : null;\n\n return (\n <div\n {...focusProps}\n className={merge([\n 'tw-flex tw-items-center tw-h-9 tw-gap-2 tw-px-3 tw-border hover:tw-border-black-90 tw-transition tw-rounded tw-text-s tw-font-sans tw-relative tw-bg-white dark:tw-bg-transparent',\n dotted ? 'tw-border-dashed' : 'tw-border-solid',\n disabled || readonly\n ? 'tw-border-black-5 tw-bg-black-5 dark:tw-bg-black-90 dark:tw-border-black-90'\n : merge([\n 'focus-within:tw-border-black-90',\n validationClassMap[validation],\n isFocusVisible && FOCUS_STYLE,\n ]),\n ])}\n >\n {decorator && (\n <div\n className={merge([\n 'tw-flex tw-items-center tw-justify-center tw-pl-1',\n disabled ? 'tw-text-black-60' : 'tw-text-black-80',\n ])}\n data-test-id=\"decorator\"\n >\n {decorator}\n </div>\n )}\n <input\n id={useMemoizedId(propId)}\n ref={inputElement}\n className={merge([\n 'tw-w-full tw-grow tw-border-none tw-outline-none tw-bg-transparent tw-hide-input-arrows',\n disabled || readonly\n ? 'tw-text-black-40 tw-placeholder-black-30 dark:tw-text-black-30 dark:tw-placeholder-black-40'\n : 'tw-text-black tw-placeholder-black-60 dark:tw-text-white',\n ])}\n onClick={() => inputElement.current?.focus()}\n onChange={(event) => onChange && onChange(event.currentTarget.value)}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n placeholder={placeholder}\n value={value}\n type={getInputType()}\n required={required}\n readOnly={readonly}\n disabled={disabled}\n autoComplete={autocomplete ? 'on' : 'off'}\n size={size}\n data-test-id=\"text-input\"\n {...spellcheckProp}\n />\n {`${value}`.length > 0 && clearable && (\n <button\n className={merge([\n 'tw-flex tw-items-center tw-justify-center tw-transition-colors tw-rounded',\n disabled ? 'tw-cursor-default tw-text-black-40' : 'tw-text-black-60 hover:tw-text-black-100',\n clearButtonIsFocusVisible && FOCUS_STYLE,\n ])}\n onClick={() => {\n inputElement.current?.focus();\n inputElement.current?.setAttribute('value', '');\n\n onChange && onChange('');\n onClear && onClear();\n }}\n data-test-id=\"clear-icon\"\n title=\"Clear text input\"\n aria-label=\"clear text input\"\n disabled={disabled}\n type=\"button\"\n {...clearButtonFocusProps}\n >\n <IconCross />\n </button>\n )}\n {type === TextInputType.Password && (\n <button\n className={merge([\n 'tw-flex tw-items-center tw-justify-center tw-transition-colors tw-rounded',\n disabled ? 'tw-cursor-default tw-text-black-40' : 'tw-text-black-60 hover:tw-text-black-100',\n passwordButtonIsFocusVisible && FOCUS_STYLE,\n ])}\n onClick={() => setIsObfuscated(!isObfuscated)}\n data-test-id=\"visibility-icon\"\n title=\"Toggle text visibility\"\n type=\"button\"\n aria-label={`${isObfuscated ? 'unveil' : 'obfuscate'} text input`}\n disabled={disabled}\n {...passwordButtonFocusProps}\n >\n {isObfuscated ? <IconEye /> : <IconEyeOff />}\n </button>\n )}\n {validation === Validation.Loading && (\n <span className=\"tw-absolute tw-top-[-0.55rem] tw-right-[-0.55rem] tw-bg-white tw-rounded-full tw-p-[2px] tw-border tw-border-black-10\">\n <LoadingCircle size={LoadingCircleSize.ExtraSmall} />\n </span>\n )}\n {copyable && (\n <button\n className={merge([\n 'tw-flex tw-items-center tw-justify-center tw-transition-colors tw-rounded',\n disabled ? 'tw-cursor-default tw-text-black-40' : 'tw-text-black-60 hover:tw-text-black-100',\n copyButtonIsFocusVisible && FOCUS_STYLE,\n ])}\n onClick={() => copy(value)}\n data-test-id=\"copy-icon\"\n title=\"Copy input text\"\n disabled={disabled}\n type=\"button\"\n {...copyButtonFocusProps}\n >\n {status === 'error' && (\n <span className=\"tw-text-box-negative-strong\">\n <IconCrossCircle />\n </span>\n )}\n {status === 'idle' && <IconClipboard />}\n {status === 'success' && (\n <span className=\"tw-text-box-positive-strong\">\n <IconCheckMark />\n </span>\n )}\n </button>\n )}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYY,IAAA,uBAAA,MACD,GAAA,OAAA,QACI,EAAA,WAAA,YACF,EAAA,SAAA,UAHD,IAAA,MAAA,CAAA,CAAA;AA6CL,MAAM,KAAgC,CAAC;AAAA,EAC1C,IAAI;AAAA,EACJ,UAAO;AAAA,EACP;AAAA,EACA,gBAAa,EAAW;AAAA,EACxB,eAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAW;AAAA,EACX,kBAAe;AAAA,EACf,YAAS;AAAA,EACT,WAAQ;AAAA,EACR,cAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MACE;AACI,QAAA,EAAE,mBAAgB,kBAAe,EAAa,EAAE,QAAQ,IAAM,aAAa,GAAA,CAAM,GACjF,EAAE,gBAAgB,GAA2B,YAAY,MAA0B,KACnF,EAAE,gBAAgB,GAA8B,YAAY,MAA6B,KACzF,EAAE,gBAAgB,GAA0B,YAAY,MAAyB,KAEjF,EAAE,SAAM,cAAW,EAAQ,GAE3B,IAAe,EAAgC,IAAI,GACnD,CAAC,GAAc,KAAmB,EACpC,OAAO,KAAe,YAAY,IAAa,MAAS;AAG5D,IAAU,MAAM;;AACI,SAAA,QAAa,YAAb,UAAsB;AAAA,EAC1C,GAAG,CAAE,CAAA,GAEL,EAAU,MAAM;AACR,IAAA,OAAO,KAAe,aACtB,EAAgB,CAAU;AAAA,EAC9B,GACD,CAAC,CAAU,CAAC;AAET,QAAA,IAAY,CAAC,MAA2C;AACtD,IAAA,EAAM,QAAQ,WACd,KAAkB,EAAe,CAAK;AAAA,EAC1C,GAGE,IAAe,MACb,MAAS,aACF,IAAe,aAAyB,SAE5C,GAGL,IAAiB,OAAO,KAAe,YAAY,EAAE,YAAY,EAAe,IAAA;AAEtF,SACK,kBAAA,cAAA,OAAA;AAAA,IACI,GAAG;AAAA,IACJ,WAAW,EAAM;AAAA,MACb;AAAA,MACA,IAAS,qBAAqB;AAAA,MAC9B,KAAY,IACN,gFACA,EAAM;AAAA,QACF;AAAA,QACA,EAAmB;AAAA,QACnB,KAAkB;AAAA,MAAA,CACrB;AAAA,IAAA,CACV;AAAA,EAAA,GAEA,KACI,kBAAA,cAAA,OAAA;AAAA,IACG,WAAW,EAAM;AAAA,MACb;AAAA,MACA,IAAW,qBAAqB;AAAA,IAAA,CACnC;AAAA,IACD,gBAAa;AAAA,EAEZ,GAAA,CACL,GAEH,kBAAA,cAAA,SAAA;AAAA,IACG,IAAI,EAAc,CAAM;AAAA,IACxB,KAAK;AAAA,IACL,WAAW,EAAM;AAAA,MACb;AAAA,MACA,KAAY,IACN,gGACA;AAAA,IAAA,CACT;AAAA,IACD,SAAS,MAAM;;AAAA,oBAAa,YAAb,kBAAsB;AAAA;AAAA,IACrC,UAAU,CAAC,MAAU,KAAY,EAAS,EAAM,cAAc,KAAK;AAAA,IACnE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM,EAAa;AAAA,IACnB;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA,cAAc,IAAe,OAAO;AAAA,IACpC;AAAA,IACA,gBAAa;AAAA,IACZ,GAAG;AAAA,EAAA,CACR,GACC,GAAG,IAAQ,SAAS,KAAK,KACrB,kBAAA,cAAA,UAAA;AAAA,IACG,WAAW,EAAM;AAAA,MACb;AAAA,MACA,IAAW,uCAAuC;AAAA,MAClD,KAA6B;AAAA,IAAA,CAChC;AAAA,IACD,SAAS,MAAM;;AACX,aAAa,YAAb,UAAsB,SACT,OAAA,YAAA,UAAS,aAAa,SAAS,KAE5C,KAAY,EAAS,EAAE,GACvB,KAAW,EAAQ;AAAA,IACvB;AAAA,IACA,gBAAa;AAAA,IACb,OAAM;AAAA,IACN,cAAW;AAAA,IACX;AAAA,IACA,MAAK;AAAA,IACJ,GAAG;AAAA,EAAA,mCAEH,IAAU,IAAA,CACf,GAEH,MAAS,cACL,kBAAA,cAAA,UAAA;AAAA,IACG,WAAW,EAAM;AAAA,MACb;AAAA,MACA,IAAW,uCAAuC;AAAA,MAClD,KAAgC;AAAA,IAAA,CACnC;AAAA,IACD,SAAS,MAAM,EAAgB,CAAC,CAAY;AAAA,IAC5C,gBAAa;AAAA,IACb,OAAM;AAAA,IACN,MAAK;AAAA,IACL,cAAY,GAAG,IAAe,WAAW;AAAA,IACzC;AAAA,IACC,GAAG;AAAA,EAAA,GAEH,IAAgB,kBAAA,cAAA,IAAA,IAAQ,IAAK,kBAAA,cAAC,IAAW,IAAA,CAC9C,GAEH,MAAe,EAAW,WACtB,kBAAA,cAAA,QAAA;AAAA,IAAK,WAAU;AAAA,EAAA,GACX,kBAAA,cAAA,GAAA;AAAA,IAAc,MAAM,EAAkB;AAAA,EAAY,CAAA,CACvD,GAEH,KACI,kBAAA,cAAA,UAAA;AAAA,IACG,WAAW,EAAM;AAAA,MACb;AAAA,MACA,IAAW,uCAAuC;AAAA,MAClD,KAA4B;AAAA,IAAA,CAC/B;AAAA,IACD,SAAS,MAAM,EAAK,CAAK;AAAA,IACzB,gBAAa;AAAA,IACb,OAAM;AAAA,IACN;AAAA,IACA,MAAK;AAAA,IACJ,GAAG;AAAA,EAEH,GAAA,MAAW,WACP,kBAAA,cAAA,QAAA;AAAA,IAAK,WAAU;AAAA,EAAA,GACZ,kBAAA,cAAC,IAAgB,IAAA,CACrB,GAEH,MAAW,UAAU,kBAAA,cAAC,GAAc,IAAA,GACpC,MAAW,aACP,kBAAA,cAAA,QAAA;AAAA,IAAK,WAAU;AAAA,EAAA,GACX,kBAAA,cAAA,GAAA,IAAc,CACnB,CAER,CAER;AAER;"}
1
+ {"version":3,"file":"TextInput.es.js","sources":["../../../src/components/TextInput/TextInput.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { LoadingCircle, LoadingCircleSize } from '@components/LoadingCircle';\nimport { useCopy } from '@hooks/useCopy';\nimport { useMemoizedId } from '@hooks/useMemoizedId';\nimport { useFocusRing } from '@react-aria/focus';\nimport { FOCUS_STYLE } from '@utilities/focusStyle';\nimport { merge } from '@utilities/merge';\nimport { Validation, validationClassMap } from '@utilities/validation';\nimport React, { FC, FocusEvent, KeyboardEvent, ReactNode, useEffect, useRef, useState } from 'react';\nimport { IconCheckMark, IconClipboard, IconCross, IconCrossCircle, IconEye, IconEyeOff } from '@foundation/Icon';\n\nexport enum TextInputType {\n Text = 'text',\n Password = 'password',\n Number = 'number',\n}\n\nexport type TextInputBaseProps = {\n id?: string;\n type?: TextInputType;\n decorator?: ReactNode;\n dotted?: boolean;\n clearable?: boolean;\n placeholder?: string;\n required?: boolean;\n disabled?: boolean;\n autocomplete?: boolean;\n readonly?: boolean;\n validation?: Validation;\n copyable?: boolean;\n value?: string;\n onChange?: (value: string) => void;\n onEnterPressed?: (event: KeyboardEvent<HTMLInputElement>) => void;\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n onClear?: () => void;\n size?: number;\n spellcheck?: boolean;\n focusOnMount?: boolean;\n};\n\nexport type TextInputProps =\n | ({\n type?: TextInputType.Text;\n obfuscated?: false;\n } & TextInputBaseProps)\n | ({\n type?: TextInputType.Number;\n obfuscated?: false;\n min?: number;\n max?: number;\n } & TextInputBaseProps)\n | ({\n type: TextInputType.Password;\n obfuscated?: boolean;\n } & TextInputBaseProps);\n\nexport const TextInput: FC<TextInputProps> = ({\n id: propId,\n type = TextInputType.Text,\n decorator,\n validation = Validation.Default,\n clearable = false,\n placeholder,\n required,\n obfuscated,\n disabled = false,\n autocomplete = false,\n dotted = false,\n value = '',\n copyable = false,\n onChange,\n onEnterPressed,\n onBlur,\n onClear,\n size,\n spellcheck,\n readonly,\n focusOnMount,\n}) => {\n const { isFocusVisible, focusProps } = useFocusRing({ within: true, isTextInput: true });\n const { isFocusVisible: clearButtonIsFocusVisible, focusProps: clearButtonFocusProps } = useFocusRing();\n const { isFocusVisible: passwordButtonIsFocusVisible, focusProps: passwordButtonFocusProps } = useFocusRing();\n const { isFocusVisible: copyButtonIsFocusVisible, focusProps: copyButtonFocusProps } = useFocusRing();\n\n const { copy, status } = useCopy();\n\n const inputElement = useRef<HTMLInputElement | null>(null);\n const [isObfuscated, setIsObfuscated] = useState(\n typeof obfuscated === 'boolean' ? obfuscated : type === TextInputType.Password,\n );\n\n useEffect(() => {\n setTimeout(() => {\n focusOnMount && inputElement.current?.focus();\n }, 0);\n }, [focusOnMount]);\n\n useEffect(() => {\n if (typeof obfuscated === 'boolean') {\n setIsObfuscated(obfuscated);\n }\n }, [obfuscated]);\n\n const onKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n onEnterPressed && onEnterPressed(event);\n }\n };\n\n const getInputType = () => {\n if (type === TextInputType.Password) {\n return isObfuscated ? TextInputType.Password : TextInputType.Text;\n }\n return type;\n };\n\n const spellcheckProp = typeof spellcheck === 'boolean' ? { spellCheck: spellcheck } : null;\n\n return (\n <div\n {...focusProps}\n className={merge([\n 'tw-flex tw-items-center tw-h-9 tw-gap-2 tw-px-3 tw-border tw-transition tw-rounded tw-text-s tw-font-sans tw-relative tw-bg-white dark:tw-bg-transparent',\n dotted ? 'tw-border-dashed' : 'tw-border-solid',\n disabled || readonly\n ? 'tw-border-black-5 tw-bg-black-5 dark:tw-bg-black-90 dark:tw-border-black-90'\n : merge([\n 'focus-within:tw-border-black-90 hover:tw-border-black-90',\n validationClassMap[validation],\n isFocusVisible && FOCUS_STYLE,\n ]),\n ])}\n >\n {decorator && (\n <div\n className={merge([\n 'tw-flex tw-items-center tw-justify-center tw-pl-1',\n disabled ? 'tw-text-black-60' : 'tw-text-black-80',\n ])}\n data-test-id=\"decorator\"\n >\n {decorator}\n </div>\n )}\n <input\n id={useMemoizedId(propId)}\n ref={inputElement}\n className={merge([\n 'tw-w-full tw-grow tw-border-none tw-outline-none tw-bg-transparent tw-hide-input-arrows',\n disabled || readonly\n ? 'tw-text-black-40 tw-placeholder-black-30 dark:tw-text-black-30 dark:tw-placeholder-black-40'\n : 'tw-text-black tw-placeholder-black-60 dark:tw-text-white',\n ])}\n onClick={() => inputElement.current?.focus()}\n onChange={(event) => onChange && onChange(event.currentTarget.value)}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n placeholder={placeholder}\n value={value}\n type={getInputType()}\n required={required}\n readOnly={readonly}\n disabled={disabled}\n autoComplete={autocomplete ? 'on' : 'off'}\n size={size}\n data-test-id=\"text-input\"\n {...spellcheckProp}\n />\n {`${value}`.length > 0 && clearable && (\n <button\n className={merge([\n 'tw-flex tw-items-center tw-justify-center tw-transition-colors tw-rounded',\n disabled ? 'tw-cursor-default tw-text-black-40' : 'tw-text-black-60 hover:tw-text-black-100',\n clearButtonIsFocusVisible && FOCUS_STYLE,\n ])}\n onClick={() => {\n inputElement.current?.focus();\n inputElement.current?.setAttribute('value', '');\n\n onChange && onChange('');\n onClear && onClear();\n }}\n data-test-id=\"clear-icon\"\n title=\"Clear text input\"\n aria-label=\"clear text input\"\n disabled={disabled}\n type=\"button\"\n {...clearButtonFocusProps}\n >\n <IconCross />\n </button>\n )}\n {type === TextInputType.Password && (\n <button\n className={merge([\n 'tw-flex tw-items-center tw-justify-center tw-transition-colors tw-rounded',\n disabled ? 'tw-cursor-default tw-text-black-40' : 'tw-text-black-60 hover:tw-text-black-100',\n passwordButtonIsFocusVisible && FOCUS_STYLE,\n ])}\n onClick={() => setIsObfuscated(!isObfuscated)}\n data-test-id=\"visibility-icon\"\n title=\"Toggle text visibility\"\n type=\"button\"\n aria-label={`${isObfuscated ? 'unveil' : 'obfuscate'} text input`}\n disabled={disabled}\n {...passwordButtonFocusProps}\n >\n {isObfuscated ? <IconEye /> : <IconEyeOff />}\n </button>\n )}\n {validation === Validation.Loading && (\n <span className=\"tw-absolute tw-top-[-0.55rem] tw-right-[-0.55rem] tw-bg-white tw-rounded-full tw-p-[2px] tw-border tw-border-black-10\">\n <LoadingCircle size={LoadingCircleSize.ExtraSmall} />\n </span>\n )}\n {copyable && (\n <button\n className={merge([\n 'tw-flex tw-items-center tw-justify-center tw-transition-colors tw-rounded',\n disabled ? 'tw-cursor-default tw-text-black-40' : 'tw-text-black-60 hover:tw-text-black-100',\n copyButtonIsFocusVisible && FOCUS_STYLE,\n ])}\n onClick={() => copy(value)}\n data-test-id=\"copy-icon\"\n title=\"Copy input text\"\n disabled={disabled}\n type=\"button\"\n {...copyButtonFocusProps}\n >\n {status === 'error' && (\n <span className=\"tw-text-box-negative-strong\">\n <IconCrossCircle />\n </span>\n )}\n {status === 'idle' && <IconClipboard />}\n {status === 'success' && (\n <span className=\"tw-text-box-positive-strong\">\n <IconCheckMark />\n </span>\n )}\n </button>\n )}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
@@ -21,6 +21,8 @@ export declare type TooltipProps = PropsWithChildren<{
21
21
  withArrow?: boolean;
22
22
  hoverDelay?: number;
23
23
  open?: boolean;
24
+ disabled?: boolean;
25
+ hidden?: boolean;
24
26
  }>;
25
27
  export declare enum TooltipPosition {
26
28
  Top = "Top",
@@ -33,4 +35,4 @@ export declare enum TooltipAlignment {
33
35
  Middle = "Middle",
34
36
  End = "End"
35
37
  }
36
- export declare const Tooltip: ({ content, tooltipIcon, heading, headingIcon, linkUrl, linkLabel, brightHeader, buttons, children, position, alignment, withArrow, flip, triggerElement, hoverDelay, open, }: TooltipProps) => JSX.Element;
38
+ export declare const Tooltip: ({ content, tooltipIcon, heading, headingIcon, linkUrl, linkLabel, brightHeader, buttons, children, position, alignment, withArrow, flip, triggerElement, hoverDelay, open, disabled, hidden, }: TooltipProps) => JSX.Element;