@payloadcms/ui 3.65.0-canary.7 → 3.65.0-internal.5b33fe0

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 (38) hide show
  1. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  2. package/dist/elements/PublishButton/index.js +16 -13
  3. package/dist/elements/PublishButton/index.js.map +1 -1
  4. package/dist/elements/withMergedProps/index.d.ts +1 -1
  5. package/dist/elements/withMergedProps/index.js +1 -1
  6. package/dist/elements/withMergedProps/index.js.map +1 -1
  7. package/dist/exports/client/{CodeEditor-IVFMKS4Z.js → CodeEditor-ORMD3ID3.js} +2 -2
  8. package/dist/exports/client/{chunk-XUCNM5EK.js → chunk-PXD7OIXB.js} +1 -1
  9. package/dist/exports/client/{chunk-XUCNM5EK.js.map → chunk-PXD7OIXB.js.map} +2 -2
  10. package/dist/exports/client/index.d.ts +1 -0
  11. package/dist/exports/client/index.d.ts.map +1 -1
  12. package/dist/exports/client/index.js +12 -12
  13. package/dist/exports/client/index.js.map +4 -4
  14. package/dist/exports/shared/index.js.map +1 -1
  15. package/dist/fields/Array/index.js +1 -1
  16. package/dist/fields/Array/index.js.map +1 -1
  17. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.d.ts.map +1 -0
  18. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -0
  19. package/dist/fields/Blocks/BlockSelector/index.d.ts +14 -0
  20. package/dist/fields/Blocks/BlockSelector/index.d.ts.map +1 -0
  21. package/dist/fields/Blocks/BlockSelector/index.js +116 -0
  22. package/dist/fields/Blocks/BlockSelector/index.js.map +1 -0
  23. package/dist/fields/Blocks/BlocksDrawer/index.d.ts +0 -1
  24. package/dist/fields/Blocks/BlocksDrawer/index.d.ts.map +1 -1
  25. package/dist/fields/Blocks/BlocksDrawer/index.js +63 -105
  26. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  27. package/dist/hooks/useControllableState.d.ts.map +1 -1
  28. package/dist/hooks/useControllableState.js.map +1 -1
  29. package/dist/styles.css +1 -1
  30. package/dist/utilities/handleLivePreview.d.ts.map +1 -1
  31. package/package.json +4 -4
  32. package/dist/fields/Blocks/BlocksDrawer/BlockSearch/index.d.ts.map +0 -1
  33. package/dist/fields/Blocks/BlocksDrawer/BlockSearch/index.js.map +0 -1
  34. /package/dist/exports/client/{CodeEditor-IVFMKS4Z.js.map → CodeEditor-ORMD3ID3.js.map} +0 -0
  35. /package/dist/fields/Blocks/{BlocksDrawer → BlockSelector}/BlockSearch/index.d.ts +0 -0
  36. /package/dist/fields/Blocks/{BlocksDrawer → BlockSelector}/BlockSearch/index.js +0 -0
  37. /package/dist/fields/Blocks/{BlocksDrawer → BlockSelector}/BlockSearch/index.scss +0 -0
  38. /package/dist/fields/Blocks/{BlocksDrawer → BlockSelector}/index.scss +0 -0
@@ -1,6 +1,5 @@
1
1
  import type { ClientBlock, Labels } from 'payload';
2
2
  import React from 'react';
3
- import './index.scss';
4
3
  export type Props = {
5
4
  readonly addRow: (index: number, blockType?: string) => Promise<void> | void;
6
5
  readonly addRowIndex: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fields/Blocks/BlocksDrawer/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAIlD,OAAO,KAAuC,MAAM,OAAO,CAAA;AAO3D,OAAO,cAAc,CAAA;AAGrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC5E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC,EAAE,CAAA;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA;AAcD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA6GxC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fields/Blocks/BlocksDrawer/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAIlD,OAAO,KAAoB,MAAM,OAAO,CAAA;AAMxC,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC5E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC,EAAE,CAAA;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA6BxC,CAAA"}
@@ -1,27 +1,15 @@
1
1
  'use client';
2
2
 
3
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { jsx as _jsx } from "react/jsx-runtime";
4
5
  import { useModal } from '@faceless-ui/modal';
5
6
  import { getTranslation } from '@payloadcms/translations';
6
- import React, { useEffect, useMemo, useState } from 'react';
7
+ import React, { useEffect } from 'react';
7
8
  import { Drawer } from '../../../elements/Drawer/index.js';
8
- import { ThumbnailCard } from '../../../elements/ThumbnailCard/index.js';
9
- import { DefaultBlockImage } from '../../../graphics/DefaultBlockImage/index.js';
10
- import { useConfig } from '../../../providers/Config/index.js';
11
9
  import { useTranslation } from '../../../providers/Translation/index.js';
12
- import './index.scss';
13
- import { BlockSearch } from './BlockSearch/index.js';
14
- const baseClass = 'blocks-drawer';
15
- const getBlockLabel = (block, i18n) => {
16
- if (typeof block.labels.singular === 'string') {
17
- return block.labels.singular.toLowerCase();
18
- }
19
- if (typeof block.labels.singular === 'object') {
20
- return getTranslation(block.labels.singular, i18n).toLowerCase();
21
- }
22
- return '';
23
- };
10
+ import { BlockSelector } from '../BlockSelector/index.js';
24
11
  export const BlocksDrawer = props => {
12
+ const $ = _c(19);
25
13
  const {
26
14
  addRow,
27
15
  addRowIndex,
@@ -29,8 +17,6 @@ export const BlocksDrawer = props => {
29
17
  drawerSlug,
30
18
  labels
31
19
  } = props;
32
- const [searchTerm, setSearchTerm] = useState('');
33
- const [filteredBlocks, setFilteredBlocks] = useState(blocks);
34
20
  const {
35
21
  closeModal,
36
22
  isModalOpen
@@ -39,94 +25,66 @@ export const BlocksDrawer = props => {
39
25
  i18n,
40
26
  t
41
27
  } = useTranslation();
42
- const {
43
- config
44
- } = useConfig();
45
- const blockGroups = useMemo(() => {
46
- const groups = {
47
- _none: []
48
- };
49
- filteredBlocks.forEach(block => {
50
- if (typeof block === 'object' && block.admin?.group) {
51
- const group = block.admin.group;
52
- const label = typeof group === 'string' ? group : getTranslation(group, i18n);
53
- if (Object.hasOwn(groups, label)) {
54
- groups[label].push(block);
55
- } else {
56
- groups[label] = [block];
57
- }
58
- } else {
59
- groups._none.push(block);
28
+ const [searchTermOverride, setSearchTermOverride] = React.useState("");
29
+ let t0;
30
+ let t1;
31
+ if ($[0] !== drawerSlug || $[1] !== isModalOpen) {
32
+ t0 = () => {
33
+ if (!isModalOpen(drawerSlug)) {
34
+ setSearchTermOverride("");
60
35
  }
61
- });
62
- return groups;
63
- }, [filteredBlocks, i18n]);
64
- useEffect(() => {
65
- if (!isModalOpen(drawerSlug)) {
66
- setSearchTerm('');
36
+ };
37
+ t1 = [isModalOpen, drawerSlug];
38
+ $[0] = drawerSlug;
39
+ $[1] = isModalOpen;
40
+ $[2] = t0;
41
+ $[3] = t1;
42
+ } else {
43
+ t0 = $[2];
44
+ t1 = $[3];
45
+ }
46
+ useEffect(t0, t1);
47
+ let t2;
48
+ if ($[4] !== addRow || $[5] !== addRowIndex || $[6] !== blocks || $[7] !== closeModal || $[8] !== drawerSlug || $[9] !== i18n || $[10] !== labels || $[11] !== searchTermOverride || $[12] !== t) {
49
+ let t3;
50
+ if ($[14] !== addRow || $[15] !== addRowIndex || $[16] !== closeModal || $[17] !== drawerSlug) {
51
+ t3 = slug => {
52
+ addRow(addRowIndex, slug);
53
+ closeModal(drawerSlug);
54
+ };
55
+ $[14] = addRow;
56
+ $[15] = addRowIndex;
57
+ $[16] = closeModal;
58
+ $[17] = drawerSlug;
59
+ $[18] = t3;
60
+ } else {
61
+ t3 = $[18];
67
62
  }
68
- }, [isModalOpen, drawerSlug]);
69
- useEffect(() => {
70
- const searchTermToUse = searchTerm.toLowerCase();
71
- const matchingBlocks = blocks?.reduce((matchedBlocks, _block) => {
72
- const block_0 = typeof _block === 'string' ? config.blocksMap[_block] : _block;
73
- const blockLabel = getBlockLabel(block_0, i18n);
74
- if (blockLabel.includes(searchTermToUse)) {
75
- matchedBlocks.push(block_0);
76
- }
77
- return matchedBlocks;
78
- }, []);
79
- setFilteredBlocks(matchingBlocks);
80
- }, [searchTerm, blocks, i18n, config.blocksMap]);
81
- return /*#__PURE__*/_jsxs(Drawer, {
82
- slug: drawerSlug,
83
- title: t('fields:addLabel', {
84
- label: getTranslation(labels.singular, i18n)
85
- }),
86
- children: [/*#__PURE__*/_jsx(BlockSearch, {
87
- setSearchTerm: setSearchTerm
88
- }), /*#__PURE__*/_jsx("div", {
89
- className: `${baseClass}__blocks-wrapper`,
90
- children: /*#__PURE__*/_jsx("ul", {
91
- className: `${baseClass}__block-groups`,
92
- children: Object.entries(blockGroups).map(([groupLabel, groupBlocks]) => !groupBlocks.length ? null : /*#__PURE__*/_jsxs("li", {
93
- className: [`${baseClass}__block-group`, groupLabel === '_none' && `${baseClass}__block-group-none`].filter(Boolean).join(' '),
94
- children: [groupLabel !== '_none' && /*#__PURE__*/_jsx("h3", {
95
- className: `${baseClass}__block-group-label`,
96
- children: groupLabel
97
- }), /*#__PURE__*/_jsx("ul", {
98
- className: `${baseClass}__blocks`,
99
- children: groupBlocks.map((_block_0, index) => {
100
- const block_1 = typeof _block_0 === 'string' ? config.blocksMap[_block_0] : _block_0;
101
- const {
102
- slug,
103
- imageAltText,
104
- imageURL,
105
- labels: blockLabels
106
- } = block_1;
107
- return /*#__PURE__*/_jsx("li", {
108
- className: `${baseClass}__block`,
109
- children: /*#__PURE__*/_jsx(ThumbnailCard, {
110
- alignLabel: "center",
111
- label: getTranslation(blockLabels?.singular, i18n),
112
- onClick: () => {
113
- void addRow(addRowIndex, slug);
114
- closeModal(drawerSlug);
115
- },
116
- thumbnail: /*#__PURE__*/_jsx("div", {
117
- className: `${baseClass}__default-image`,
118
- children: imageURL ? /*#__PURE__*/_jsx("img", {
119
- alt: imageAltText,
120
- src: imageURL
121
- }) : /*#__PURE__*/_jsx(DefaultBlockImage, {})
122
- })
123
- })
124
- }, index);
125
- })
126
- })]
127
- }, groupLabel))
63
+ t2 = _jsx(Drawer, {
64
+ slug: drawerSlug,
65
+ title: t("fields:addLabel", {
66
+ label: getTranslation(labels.singular, i18n)
67
+ }),
68
+ children: _jsx(BlockSelector, {
69
+ blocks,
70
+ labels,
71
+ onSelect: t3,
72
+ searchTerm: searchTermOverride
128
73
  })
129
- })]
130
- });
74
+ });
75
+ $[4] = addRow;
76
+ $[5] = addRowIndex;
77
+ $[6] = blocks;
78
+ $[7] = closeModal;
79
+ $[8] = drawerSlug;
80
+ $[9] = i18n;
81
+ $[10] = labels;
82
+ $[11] = searchTermOverride;
83
+ $[12] = t;
84
+ $[13] = t2;
85
+ } else {
86
+ t2 = $[13];
87
+ }
88
+ return t2;
131
89
  };
132
90
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","getTranslation","React","useEffect","useMemo","useState","Drawer","ThumbnailCard","DefaultBlockImage","useConfig","useTranslation","BlockSearch","baseClass","getBlockLabel","block","i18n","labels","singular","toLowerCase","BlocksDrawer","props","addRow","addRowIndex","blocks","drawerSlug","searchTerm","setSearchTerm","filteredBlocks","setFilteredBlocks","closeModal","isModalOpen","t","config","blockGroups","groups","_none","forEach","admin","group","label","Object","hasOwn","push","searchTermToUse","matchingBlocks","reduce","matchedBlocks","_block","blocksMap","blockLabel","includes","_jsxs","slug","title","_jsx","className","entries","map","groupLabel","groupBlocks","length","filter","Boolean","join","index","imageAltText","imageURL","blockLabels","alignLabel","onClick","thumbnail","alt","src"],"sources":["../../../../src/fields/Blocks/BlocksDrawer/index.tsx"],"sourcesContent":["'use client'\nimport type { I18nClient } from '@payloadcms/translations'\nimport type { ClientBlock, Labels } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useMemo, useState } from 'react'\n\nimport { Drawer } from '../../../elements/Drawer/index.js'\nimport { ThumbnailCard } from '../../../elements/ThumbnailCard/index.js'\nimport { DefaultBlockImage } from '../../../graphics/DefaultBlockImage/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport './index.scss'\nimport { BlockSearch } from './BlockSearch/index.js'\n\nexport type Props = {\n readonly addRow: (index: number, blockType?: string) => Promise<void> | void\n readonly addRowIndex: number\n readonly blocks: (ClientBlock | string)[]\n readonly drawerSlug: string\n readonly labels: Labels\n}\n\nconst baseClass = 'blocks-drawer'\n\nconst getBlockLabel = (block: ClientBlock, i18n: I18nClient) => {\n if (typeof block.labels.singular === 'string') {\n return block.labels.singular.toLowerCase()\n }\n if (typeof block.labels.singular === 'object') {\n return getTranslation(block.labels.singular, i18n).toLowerCase()\n }\n return ''\n}\n\nexport const BlocksDrawer: React.FC<Props> = (props) => {\n const { addRow, addRowIndex, blocks, drawerSlug, labels } = props\n\n const [searchTerm, setSearchTerm] = useState('')\n const [filteredBlocks, setFilteredBlocks] = useState(blocks)\n const { closeModal, isModalOpen } = useModal()\n const { i18n, t } = useTranslation()\n const { config } = useConfig()\n\n const blockGroups = useMemo(() => {\n const groups: Record<string, (ClientBlock | string)[]> = {\n _none: [],\n }\n filteredBlocks.forEach((block) => {\n if (typeof block === 'object' && block.admin?.group) {\n const group = block.admin.group\n const label = typeof group === 'string' ? group : getTranslation(group, i18n)\n\n if (Object.hasOwn(groups, label)) {\n groups[label].push(block)\n } else {\n groups[label] = [block]\n }\n } else {\n groups._none.push(block)\n }\n })\n return groups\n }, [filteredBlocks, i18n])\n\n useEffect(() => {\n if (!isModalOpen(drawerSlug)) {\n setSearchTerm('')\n }\n }, [isModalOpen, drawerSlug])\n\n useEffect(() => {\n const searchTermToUse = searchTerm.toLowerCase()\n\n const matchingBlocks = blocks?.reduce((matchedBlocks, _block) => {\n const block = typeof _block === 'string' ? config.blocksMap[_block] : _block\n const blockLabel = getBlockLabel(block, i18n)\n if (blockLabel.includes(searchTermToUse)) {\n matchedBlocks.push(block)\n }\n return matchedBlocks\n }, [])\n\n setFilteredBlocks(matchingBlocks)\n }, [searchTerm, blocks, i18n, config.blocksMap])\n\n return (\n <Drawer\n slug={drawerSlug}\n title={t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n >\n <BlockSearch setSearchTerm={setSearchTerm} />\n <div className={`${baseClass}__blocks-wrapper`}>\n <ul className={`${baseClass}__block-groups`}>\n {Object.entries(blockGroups).map(([groupLabel, groupBlocks]) =>\n !groupBlocks.length ? null : (\n <li\n className={[\n `${baseClass}__block-group`,\n groupLabel === '_none' && `${baseClass}__block-group-none`,\n ]\n .filter(Boolean)\n .join(' ')}\n key={groupLabel}\n >\n {groupLabel !== '_none' && (\n <h3 className={`${baseClass}__block-group-label`}>{groupLabel}</h3>\n )}\n <ul className={`${baseClass}__blocks`}>\n {groupBlocks.map((_block, index) => {\n const block = typeof _block === 'string' ? config.blocksMap[_block] : _block\n\n const { slug, imageAltText, imageURL, labels: blockLabels } = block\n\n return (\n <li className={`${baseClass}__block`} key={index}>\n <ThumbnailCard\n alignLabel=\"center\"\n label={getTranslation(blockLabels?.singular, i18n)}\n onClick={() => {\n void addRow(addRowIndex, slug)\n closeModal(drawerSlug)\n }}\n thumbnail={\n <div className={`${baseClass}__default-image`}>\n {imageURL ? (\n <img alt={imageAltText} src={imageURL} />\n ) : (\n <DefaultBlockImage />\n )}\n </div>\n }\n />\n </li>\n )\n })}\n </ul>\n </li>\n ),\n )}\n </ul>\n </div>\n </Drawer>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","React","useEffect","Drawer","useTranslation","BlockSelector","BlocksDrawer","props","$","addRow","addRowIndex","blocks","drawerSlug","labels","closeModal","isModalOpen","i18n","t","searchTermOverride","setSearchTermOverride","useState","t0","t1","t2","t3","slug","_jsx","title","label","singular","children","onSelect","searchTerm"],"sources":["../../../../src/fields/Blocks/BlocksDrawer/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientBlock, Labels } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect } from 'react'\n\nimport { Drawer } from '../../../elements/Drawer/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { BlockSelector } from '../BlockSelector/index.js'\n\nexport type Props = {\n readonly addRow: (index: number, blockType?: string) => Promise<void> | void\n readonly addRowIndex: number\n readonly blocks: (ClientBlock | string)[]\n readonly drawerSlug: string\n readonly labels: Labels\n}\n\nexport const BlocksDrawer: React.FC<Props> = (props) => {\n const { addRow, addRowIndex, blocks, drawerSlug, labels } = props\n\n const { closeModal, isModalOpen } = useModal()\n const { i18n, t } = useTranslation()\n const [searchTermOverride, setSearchTermOverride] = React.useState('')\n\n useEffect(() => {\n if (!isModalOpen(drawerSlug)) {\n setSearchTermOverride('')\n }\n }, [isModalOpen, drawerSlug])\n\n return (\n <Drawer\n slug={drawerSlug}\n title={t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n >\n <BlockSelector\n blocks={blocks}\n labels={labels}\n onSelect={(slug) => {\n void addRow(addRowIndex, slug)\n closeModal(drawerSlug)\n }}\n searchTerm={searchTermOverride}\n />\n </Drawer>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,SAAS,QAAQ;AAEjC,SAASC,MAAM,QAAQ;AACvB,SAASC,cAAc,QAAQ;AAC/B,SAASC,aAAa,QAAQ;AAU9B,OAAO,MAAMC,YAAA,GAAgCC,KAAA;EAAA,MAAAC,CAAA,GAAAV,EAAA;EAC3C;IAAAW,MAAA;IAAAC,WAAA;IAAAC,MAAA;IAAAC,UAAA;IAAAC;EAAA,IAA4DN,KAAA;EAE5D;IAAAO,UAAA;IAAAC;EAAA,IAAoChB,QAAA;EACpC;IAAAiB,IAAA;IAAAC;EAAA,IAAoBb,cAAA;EACpB,OAAAc,kBAAA,EAAAC,qBAAA,IAAoDlB,KAAA,CAAAmB,QAAA,CAAe;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAd,CAAA,QAAAI,UAAA,IAAAJ,CAAA,QAAAO,WAAA;IAEzDM,EAAA,GAAAA,CAAA;MAAA,KACHN,WAAA,CAAYH,UAAA;QACfO,qBAAA,CAAsB;MAAA;IAAA;IAEvBG,EAAA,IAACP,WAAA,EAAaH,UAAA;IAAWJ,CAAA,MAAAI,UAAA;IAAAJ,CAAA,MAAAO,WAAA;IAAAP,CAAA,MAAAa,EAAA;IAAAb,CAAA,MAAAc,EAAA;EAAA;IAAAD,EAAA,GAAAb,CAAA;IAAAc,EAAA,GAAAd,CAAA;EAAA;EAJ5BN,SAAA,CAAUmB,EAIV,EAAGC,EAAyB;EAAA,IAAAC,EAAA;EAAA,IAAAf,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAE,WAAA,IAAAF,CAAA,QAAAG,MAAA,IAAAH,CAAA,QAAAM,UAAA,IAAAN,CAAA,QAAAI,UAAA,IAAAJ,CAAA,QAAAQ,IAAA,IAAAR,CAAA,SAAAK,MAAA,IAAAL,CAAA,SAAAU,kBAAA,IAAAV,CAAA,SAAAS,CAAA;IAAA,IAAAO,EAAA;IAAA,IAAAhB,CAAA,SAAAC,MAAA,IAAAD,CAAA,SAAAE,WAAA,IAAAF,CAAA,SAAAM,UAAA,IAAAN,CAAA,SAAAI,UAAA;MAUZY,EAAA,GAAAC,IAAA;QACHhB,MAAA,CAAOC,WAAA,EAAae,IAAA;QACzBX,UAAA,CAAWF,UAAA;MAAA;MACbJ,CAAA,OAAAC,MAAA;MAAAD,CAAA,OAAAE,WAAA;MAAAF,CAAA,OAAAM,UAAA;MAAAN,CAAA,OAAAI,UAAA;MAAAJ,CAAA,OAAAgB,EAAA;IAAA;MAAAA,EAAA,GAAAhB,CAAA;IAAA;IAVJe,EAAA,GAAAG,IAAA,CAAAvB,MAAA;MAAAsB,IAAA,EACQb,UAAA;MAAAe,KAAA,EACCV,CAAA,CAAE;QAAAW,KAAA,EAA4B5B,cAAA,CAAea,MAAA,CAAAgB,QAAA,EAAiBb,IAAA;MAAA,CAAM;MAAAc,QAAA,EAE3EJ,IAAA,CAAArB,aAAA;QAAAM,MAAA;QAAAE,MAAA;QAAAkB,QAAA,EAGYP,EAGV;QAAAQ,UAAA,EACYd;MAAA,C;;;;;;;;;;;;;;;SAXhBK,E;CAeJ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useControllableState.d.ts","sourceRoot":"","sources":["../../src/hooks/useControllableState.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,CAAC,EACvC,SAAS,EAAE,CAAC,EACZ,aAAa,EAAE,CAAC,GACf,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAA;AAC7F,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"useControllableState.d.ts","sourceRoot":"","sources":["../../src/hooks/useControllableState.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,CAAC,EACvC,SAAS,EAAE,CAAC,EACZ,aAAa,EAAE,CAAC,GACf,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAA;AAE7F,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useControllableState.js","names":["c","_c","useEffect","useRef","useState","useControllableState","propValue","fallbackValue","$","localValue","setLocalValue","initialRenderRef","t0","t1","current","t2","t3"],"sources":["../../src/hooks/useControllableState.ts"],"sourcesContent":["'use client'\nimport { useEffect, useRef, useState } from 'react'\n\n/**\n * A hook for managing state that can be controlled by props but also overridden locally.\n * Props always take precedence if they change, but local state can override them temporarily.\n *\n * @param propValue - The controlled value from props\n * @param fallbackValue - Value to use when propValue is null or undefined\n *\n * @internal - may change or be removed without a major version bump\n */\nexport function useControllableState<T, D>(\n propValue: T,\n fallbackValue: D,\n): [T extends NonNullable<T> ? T : D | NonNullable<T>, (value: ((prev: T) => T) | T) => void]\nexport function useControllableState<T>(propValue: T): [T, (value: ((prev: T) => T) | T) => void]\nexport function useControllableState<T, D>(\n propValue: T,\n fallbackValue?: D,\n): [T extends NonNullable<T> ? T : D | NonNullable<T>, (value: ((prev: T) => T) | T) => void] {\n const [localValue, setLocalValue] = useState<T>(propValue)\n const initialRenderRef = useRef(true)\n\n useEffect(() => {\n if (initialRenderRef.current) {\n initialRenderRef.current = false\n return\n }\n\n setLocalValue(propValue)\n }, [propValue])\n\n return [localValue ?? fallbackValue, setLocalValue] as [\n T extends NonNullable<T> ? T : D | NonNullable<T>,\n (value: ((prev: T) => T) | T) => void,\n ]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAgB5C,OAAO,SAAAC,qBAAAC,SAAA,EAAAC,aAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAIL,OAAAQ,UAAA,EAAAC,aAAA,IAAoCN,QAAA,CAAYE,SAAA;EAChD,MAAAK,gBAAA,GAAyBR,MAAA,KAAO;EAAA,IAAAS,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAL,CAAA,QAAAF,SAAA;IAEtBM,EAAA,GAAAA,CAAA;MAAA,IACJD,gBAAA,CAAAG,OAAA;QACFH,gBAAA,CAAAG,OAAA;QAAA;MAAA;MAIFJ,aAAA,CAAcJ,SAAA;IAAA;IACbO,EAAA,IAACP,SAAA;IAAUE,CAAA,MAAAF,SAAA;IAAAE,CAAA,MAAAI,EAAA;IAAAJ,CAAA,MAAAK,EAAA;EAAA;IAAAD,EAAA,GAAAJ,CAAA;IAAAK,EAAA,GAAAL,CAAA;EAAA;EAPdN,SAAA,CAAUU,EAOV,EAAGC,EAAW;EAEN,MAAAE,EAAA,GAAAN,UAAA,IAAcF,aAAA;EAAA,IAAAS,EAAA;EAAA,IAAAR,CAAA,QAAAO,EAAA;IAAfC,EAAA,IAACD,EAAc,EAAeL,aAAA;IAAcF,CAAA,MAAAO,EAAA;IAAAP,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAAA,OAA5CQ,EAA4C;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"useControllableState.js","names":["c","_c","useEffect","useRef","useState","useControllableState","propValue","fallbackValue","$","localValue","setLocalValue","initialRenderRef","t0","t1","current","t2","t3"],"sources":["../../src/hooks/useControllableState.ts"],"sourcesContent":["'use client'\nimport { useEffect, useRef, useState } from 'react'\n\n/**\n * A hook for managing state that can be controlled by props but also overridden locally.\n * Props always take precedence if they change, but local state can override them temporarily.\n *\n * @param propValue - The controlled value from props\n * @param fallbackValue - Value to use when propValue is null or undefined\n *\n * @internal - may change or be removed without a major version bump\n */\nexport function useControllableState<T, D>(\n propValue: T,\n fallbackValue: D,\n): [T extends NonNullable<T> ? T : D | NonNullable<T>, (value: ((prev: T) => T) | T) => void]\n\nexport function useControllableState<T>(propValue: T): [T, (value: ((prev: T) => T) | T) => void]\n\nexport function useControllableState<T, D>(\n propValue: T,\n fallbackValue?: D,\n): [T extends NonNullable<T> ? T : D | NonNullable<T>, (value: ((prev: T) => T) | T) => void] {\n const [localValue, setLocalValue] = useState<T>(propValue)\n const initialRenderRef = useRef(true)\n\n useEffect(() => {\n if (initialRenderRef.current) {\n initialRenderRef.current = false\n return\n }\n\n setLocalValue(propValue)\n }, [propValue])\n\n return [localValue ?? fallbackValue, setLocalValue] as [\n T extends NonNullable<T> ? T : D | NonNullable<T>,\n (value: ((prev: T) => T) | T) => void,\n ]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAkB5C,OAAO,SAAAC,qBAAAC,SAAA,EAAAC,aAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAIL,OAAAQ,UAAA,EAAAC,aAAA,IAAoCN,QAAA,CAAYE,SAAA;EAChD,MAAAK,gBAAA,GAAyBR,MAAA,KAAO;EAAA,IAAAS,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAL,CAAA,QAAAF,SAAA;IAEtBM,EAAA,GAAAA,CAAA;MAAA,IACJD,gBAAA,CAAAG,OAAA;QACFH,gBAAA,CAAAG,OAAA;QAAA;MAAA;MAIFJ,aAAA,CAAcJ,SAAA;IAAA;IACbO,EAAA,IAACP,SAAA;IAAUE,CAAA,MAAAF,SAAA;IAAAE,CAAA,MAAAI,EAAA;IAAAJ,CAAA,MAAAK,EAAA;EAAA;IAAAD,EAAA,GAAAJ,CAAA;IAAAK,EAAA,GAAAL,CAAA;EAAA;EAPdN,SAAA,CAAUU,EAOV,EAAGC,EAAW;EAEN,MAAAE,EAAA,GAAAN,UAAA,IAAcF,aAAA;EAAA,IAAAS,EAAA;EAAA,IAAAR,CAAA,QAAAO,EAAA;IAAfC,EAAA,IAACD,EAAc,EAAeL,aAAA;IAAcF,CAAA,MAAAO,EAAA;IAAAP,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAAA,OAA5CQ,EAA4C;AAAA","ignoreList":[]}