@economic/taco 8.1.3-alpha.0 → 8.1.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.
- package/dist/charts/utils/common.d.ts +1 -1
- package/dist/components/Field/Field.cjs +1 -2
- package/dist/components/Field/Field.cjs.map +1 -1
- package/dist/components/Field/Field.js +1 -2
- package/dist/components/Field/Field.js.map +1 -1
- package/dist/components/Header/components/Link.cjs.map +1 -1
- package/dist/components/Header/components/Link.js.map +1 -1
- package/dist/components/Input/util.cjs +2 -2
- package/dist/components/Input/util.cjs.map +1 -1
- package/dist/components/Input/util.js +2 -2
- package/dist/components/Input/util.js.map +1 -1
- package/dist/components/List/components/Collapsible.d.ts +1 -1
- package/dist/components/Menu/components/Content.d.ts +1 -1
- package/dist/components/Menu/components/SubMenu.d.ts +1 -1
- package/dist/components/Table3/features/useTableEditing.d.ts +4 -4
- package/dist/components/Toast/Toast.cjs.map +1 -1
- package/dist/components/Toast/Toast.d.ts +1 -1
- package/dist/components/Toast/Toast.js.map +1 -1
- package/dist/components/Toast/util.cjs.map +1 -1
- package/dist/components/Toast/util.d.ts +1 -1
- package/dist/components/Toast/util.js.map +1 -1
- package/dist/hooks/useTacoSettings.d.ts +1 -1
- package/dist/primitives/Table/useTableManager/useTableManager.d.ts +2 -2
- package/dist/primitives/Table/useTableManager/util/settings.d.ts +4 -4
- package/dist/utils/storyutils.d.ts +1 -1
- package/package.json +9 -6
|
@@ -10,7 +10,7 @@ export declare function getAxisProps<TData extends object>(axis: 'x' | 'y', prop
|
|
|
10
10
|
scale: Function | import('recharts/types/util/types').ScaleType | undefined;
|
|
11
11
|
tickLine: boolean;
|
|
12
12
|
tickMargin: number;
|
|
13
|
-
tickFormatter: import('
|
|
13
|
+
tickFormatter: import('../..').TickFormatter | undefined;
|
|
14
14
|
type: any;
|
|
15
15
|
width: number;
|
|
16
16
|
};
|
|
@@ -33,8 +33,7 @@ const Field = React__namespace.forwardRef(function Field2(props, ref) {
|
|
|
33
33
|
);
|
|
34
34
|
const messageClassName = cn("h-4 text-xs text-left leading-normal font-normal truncate -mb-4", {
|
|
35
35
|
"text-gray-700": !invalid && !warning,
|
|
36
|
-
"text-red-
|
|
37
|
-
"text-yellow-500": warning && !invalid,
|
|
36
|
+
"text-red-700": invalid,
|
|
38
37
|
"opacity-50": disabled
|
|
39
38
|
});
|
|
40
39
|
return /* @__PURE__ */ React__namespace.createElement("label", { ...otherProps, className, "data-taco": "label", ref }, children, message && /* @__PURE__ */ React__namespace.createElement(Truncate.Truncate, { tooltip: message }, /* @__PURE__ */ React__namespace.createElement(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Field.cjs","sources":["../../../src/components/Field/Field.tsx"],"sourcesContent":["import * as React from 'react';\nimport cn from 'clsx';\nimport './Field.css';\nimport { Truncate } from '../Truncate/Truncate';\n\nexport type FieldProps = React.LabelHTMLAttributes<HTMLLabelElement> & {\n /** Content of the field */\n children: React.ReactNode;\n /**\tChanges the style to indicate the element is disabled */\n disabled?: boolean;\n /* Whether the input is in an invalid state */\n invalid?: boolean;\n /* Whether the input is in a warning state */\n warning?: boolean;\n /**\n * Text displayed below the children of Field.\n * Should be a short text that indicates feedback for user.\n */\n message?: string;\n};\n\nexport const Field = React.forwardRef(function Field(props: FieldProps, ref: React.Ref<HTMLLabelElement>) {\n const messageRef = React.useRef<HTMLSpanElement>(null);\n\n const { disabled, children, invalid = false, warning = false, message, ...otherProps } = props;\n const className = cn(\n 'flex flex-col font-bold text-xs leading-loose pb-4 min-h-[theme(spacing.18)]',\n {\n 'text-gray-300': disabled,\n },\n props.className\n );\n const messageClassName = cn('h-4 text-xs text-left leading-normal font-normal truncate -mb-4', {\n 'text-gray-700': !invalid && !warning,\n 'text-red-
|
|
1
|
+
{"version":3,"file":"Field.cjs","sources":["../../../src/components/Field/Field.tsx"],"sourcesContent":["import * as React from 'react';\nimport cn from 'clsx';\nimport './Field.css';\nimport { Truncate } from '../Truncate/Truncate';\n\nexport type FieldProps = React.LabelHTMLAttributes<HTMLLabelElement> & {\n /** Content of the field */\n children: React.ReactNode;\n /**\tChanges the style to indicate the element is disabled */\n disabled?: boolean;\n /* Whether the input is in an invalid state */\n invalid?: boolean;\n /* Whether the input is in a warning state */\n warning?: boolean;\n /**\n * Text displayed below the children of Field.\n * Should be a short text that indicates feedback for user.\n */\n message?: string;\n};\n\nexport const Field = React.forwardRef(function Field(props: FieldProps, ref: React.Ref<HTMLLabelElement>) {\n const messageRef = React.useRef<HTMLSpanElement>(null);\n\n const { disabled, children, invalid = false, warning = false, message, ...otherProps } = props;\n const className = cn(\n 'flex flex-col font-bold text-xs leading-loose pb-4 min-h-[theme(spacing.18)]',\n {\n 'text-gray-300': disabled,\n },\n props.className\n );\n const messageClassName = cn('h-4 text-xs text-left leading-normal font-normal truncate -mb-4', {\n 'text-gray-700': !invalid && !warning,\n 'text-red-700': invalid,\n 'opacity-50': disabled,\n });\n\n return (\n <label {...otherProps} className={className} data-taco=\"label\" ref={ref}>\n {children}\n {message && (\n <Truncate tooltip={message}>\n <span\n className={messageClassName}\n data-taco=\"label-message\"\n ref={messageRef}\n role={invalid ? 'alert' : undefined}>\n {message}\n </span>\n </Truncate>\n )}\n </label>\n );\n});\n"],"names":["React","Field","Truncate"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAqBO,MAAM,QAAQA,iBAAM,WAAW,SAASC,OAAM,OAAmB,KAAkC;AAChG,QAAA,aAAaD,iBAAM,OAAwB,IAAI;AAE/C,QAAA,EAAE,UAAU,UAAU,UAAU,OAAO,UAAU,OAAO,SAAS,GAAG,WAAA,IAAe;AACzF,QAAM,YAAY;AAAA,IACd;AAAA,IACA;AAAA,MACI,iBAAiB;AAAA,IACrB;AAAA,IACA,MAAM;AAAA,EACV;AACM,QAAA,mBAAmB,GAAG,mEAAmE;AAAA,IAC3F,iBAAiB,CAAC,WAAW,CAAC;AAAA,IAC9B,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAAA,CACjB;AAED,SACKA,iCAAA,cAAA,SAAA,EAAO,GAAG,YAAY,WAAsB,aAAU,SAAQ,IAAA,GAC1D,UACA,WACIA,iCAAA,cAAAE,SAAAA,UAAA,EAAS,SAAS,WACfF,iCAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAW;AAAA,MACX,aAAU;AAAA,MACV,KAAK;AAAA,MACL,MAAM,UAAU,UAAU;AAAA,IAAA;AAAA,IACzB;AAAA,EAAA,CAET,CAER;AAER,CAAC;;"}
|
|
@@ -14,8 +14,7 @@ const Field = React.forwardRef(function Field2(props, ref) {
|
|
|
14
14
|
);
|
|
15
15
|
const messageClassName = cn("h-4 text-xs text-left leading-normal font-normal truncate -mb-4", {
|
|
16
16
|
"text-gray-700": !invalid && !warning,
|
|
17
|
-
"text-red-
|
|
18
|
-
"text-yellow-500": warning && !invalid,
|
|
17
|
+
"text-red-700": invalid,
|
|
19
18
|
"opacity-50": disabled
|
|
20
19
|
});
|
|
21
20
|
return /* @__PURE__ */ React.createElement("label", { ...otherProps, className, "data-taco": "label", ref }, children, message && /* @__PURE__ */ React.createElement(Truncate, { tooltip: message }, /* @__PURE__ */ React.createElement(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Field.js","sources":["../../../src/components/Field/Field.tsx"],"sourcesContent":["import * as React from 'react';\nimport cn from 'clsx';\nimport './Field.css';\nimport { Truncate } from '../Truncate/Truncate';\n\nexport type FieldProps = React.LabelHTMLAttributes<HTMLLabelElement> & {\n /** Content of the field */\n children: React.ReactNode;\n /**\tChanges the style to indicate the element is disabled */\n disabled?: boolean;\n /* Whether the input is in an invalid state */\n invalid?: boolean;\n /* Whether the input is in a warning state */\n warning?: boolean;\n /**\n * Text displayed below the children of Field.\n * Should be a short text that indicates feedback for user.\n */\n message?: string;\n};\n\nexport const Field = React.forwardRef(function Field(props: FieldProps, ref: React.Ref<HTMLLabelElement>) {\n const messageRef = React.useRef<HTMLSpanElement>(null);\n\n const { disabled, children, invalid = false, warning = false, message, ...otherProps } = props;\n const className = cn(\n 'flex flex-col font-bold text-xs leading-loose pb-4 min-h-[theme(spacing.18)]',\n {\n 'text-gray-300': disabled,\n },\n props.className\n );\n const messageClassName = cn('h-4 text-xs text-left leading-normal font-normal truncate -mb-4', {\n 'text-gray-700': !invalid && !warning,\n 'text-red-
|
|
1
|
+
{"version":3,"file":"Field.js","sources":["../../../src/components/Field/Field.tsx"],"sourcesContent":["import * as React from 'react';\nimport cn from 'clsx';\nimport './Field.css';\nimport { Truncate } from '../Truncate/Truncate';\n\nexport type FieldProps = React.LabelHTMLAttributes<HTMLLabelElement> & {\n /** Content of the field */\n children: React.ReactNode;\n /**\tChanges the style to indicate the element is disabled */\n disabled?: boolean;\n /* Whether the input is in an invalid state */\n invalid?: boolean;\n /* Whether the input is in a warning state */\n warning?: boolean;\n /**\n * Text displayed below the children of Field.\n * Should be a short text that indicates feedback for user.\n */\n message?: string;\n};\n\nexport const Field = React.forwardRef(function Field(props: FieldProps, ref: React.Ref<HTMLLabelElement>) {\n const messageRef = React.useRef<HTMLSpanElement>(null);\n\n const { disabled, children, invalid = false, warning = false, message, ...otherProps } = props;\n const className = cn(\n 'flex flex-col font-bold text-xs leading-loose pb-4 min-h-[theme(spacing.18)]',\n {\n 'text-gray-300': disabled,\n },\n props.className\n );\n const messageClassName = cn('h-4 text-xs text-left leading-normal font-normal truncate -mb-4', {\n 'text-gray-700': !invalid && !warning,\n 'text-red-700': invalid,\n 'opacity-50': disabled,\n });\n\n return (\n <label {...otherProps} className={className} data-taco=\"label\" ref={ref}>\n {children}\n {message && (\n <Truncate tooltip={message}>\n <span\n className={messageClassName}\n data-taco=\"label-message\"\n ref={messageRef}\n role={invalid ? 'alert' : undefined}>\n {message}\n </span>\n </Truncate>\n )}\n </label>\n );\n});\n"],"names":["Field"],"mappings":";;;;AAqBO,MAAM,QAAQ,MAAM,WAAW,SAASA,OAAM,OAAmB,KAAkC;AAChG,QAAA,aAAa,MAAM,OAAwB,IAAI;AAE/C,QAAA,EAAE,UAAU,UAAU,UAAU,OAAO,UAAU,OAAO,SAAS,GAAG,WAAA,IAAe;AACzF,QAAM,YAAY;AAAA,IACd;AAAA,IACA;AAAA,MACI,iBAAiB;AAAA,IACrB;AAAA,IACA,MAAM;AAAA,EACV;AACM,QAAA,mBAAmB,GAAG,mEAAmE;AAAA,IAC3F,iBAAiB,CAAC,WAAW,CAAC;AAAA,IAC9B,gBAAgB;AAAA,IAChB,cAAc;AAAA,EAAA,CACjB;AAED,SACK,sBAAA,cAAA,SAAA,EAAO,GAAG,YAAY,WAAsB,aAAU,SAAQ,IAAA,GAC1D,UACA,WACI,sBAAA,cAAA,UAAA,EAAS,SAAS,WACf,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,WAAW;AAAA,MACX,aAAU;AAAA,MACV,KAAK;AAAA,MACL,MAAM,UAAU,UAAU;AAAA,IAAA;AAAA,IACzB;AAAA,EAAA,CAET,CAER;AAER,CAAC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.cjs","sources":["../../../../src/components/Header/components/Link.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { Icon, IconName } from '../../Icon/Icon';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport { Badge } from '../../Badge/Badge';\nimport { useLocalization } from '../../Provider/Localization';\n\nexport type BaseLinkProps = React.AnchorHTMLAttributes<HTMLAnchorElement> & {\n tooltip?: string;\n};\n\ninterface LinkPropsWithoutIcon extends BaseLinkProps {\n children: JSX.Element | string;\n icon?: never;\n isNew?: never;\n}\n\ninterface LinkPropsWithIcon extends Omit<BaseLinkProps, 'aria-label'> {\n 'aria-label': string;\n children?: never;\n icon: IconName;\n isNew?: boolean;\n}\n\nexport type LinkProps = LinkPropsWithoutIcon | LinkPropsWithIcon;\n\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(function Link(props, ref) {\n const { children, icon, isNew, tooltip, ...otherProps } = props;\n const { texts } = useLocalization();\n const className = cn(getLinkClasses(icon), 'relative', props.className);\n\n const link = (\n <a {...otherProps} className={className} data-taco=\"header-link\" ref={ref} tabIndex={0}>\n {icon ? <Icon name={icon} /> : null}\n {children}\n {isNew ? (\n <Badge\n color=\"blue\"\n small\n className=\"absolute right-0 top-0 -mr-2.5 -mt-1.5 !h-3 !px-0.5 text-[0.55rem] font-normal\">\n {texts.header.new}\n </Badge>\n ) : null}\n </a>\n );\n\n if (tooltip) {\n return <Tooltip title={tooltip}>{link}</Tooltip>;\n }\n\n return link;\n});\n\nexport const getLinkClasses = (icon: IconName | undefined = undefined) =>\n cn(\n 'flex h-8 flex-shrink-0 flex-grow-0 cursor-pointer items-center justify-center ',\n 'focus:!shadow-none focus:!outline-none focus-visible:!yt-focus-dark',\n 'bg-transparent hover:bg-white-subtle focus:bg-white-subtle aria-current-page:bg-white-subtle',\n '!text-white hover:text-white focus:text-white',\n {\n '!rounded-full !h-9 !w-9': icon,\n 'whitespace-nowrap px-3 rounded text-sm hidden lg:flex': !icon,\n }\n );\n"],"names":["Link","useLocalization","Icon","Badge","Tooltip"],"mappings":";;;;;;;;AA0BO,MAAM,OAAO,MAAM,WAAyC,SAASA,MAAK,OAAO,KAAK;AACzF,QAAM,EAAE,UAAU,MAAM,OAAO,SAAS,GAAG,eAAe;AACpD,QAAA,EAAE,MAAM,IAAIC,6BAAgB;AAClC,QAAM,YAAY,GAAG,eAAe,IAAI,GAAG,YAAY,MAAM,SAAS;AAEtE,QAAM,OACD,sBAAA,cAAA,KAAA,EAAG,GAAG,YAAY,WAAsB,aAAU,eAAc,KAAU,UAAU,KAChF,2CAAQC,KAAAA,MAAK,EAAA,MAAM,KAAM,CAAA,IAAK,MAC9B,UACA,QACG,sBAAA;AAAA,IAACC,MAAA;AAAA,IAAA;AAAA,MACG,OAAM;AAAA,MACN,OAAK;AAAA,
|
|
1
|
+
{"version":3,"file":"Link.cjs","sources":["../../../../src/components/Header/components/Link.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { Icon, IconName } from '../../Icon/Icon';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport { Badge } from '../../Badge/Badge';\nimport { useLocalization } from '../../Provider/Localization';\n\nexport type BaseLinkProps = React.AnchorHTMLAttributes<HTMLAnchorElement> & {\n tooltip?: string;\n};\n\ninterface LinkPropsWithoutIcon extends BaseLinkProps {\n children: JSX.Element | string;\n icon?: never;\n isNew?: never;\n}\n\ninterface LinkPropsWithIcon extends Omit<BaseLinkProps, 'aria-label'> {\n 'aria-label': string;\n children?: never;\n icon: IconName;\n isNew?: boolean;\n}\n\nexport type LinkProps = LinkPropsWithoutIcon | LinkPropsWithIcon;\n\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(function Link(props, ref) {\n const { children, icon, isNew, tooltip, ...otherProps } = props;\n const { texts } = useLocalization();\n const className = cn(getLinkClasses(icon), 'relative', props.className);\n\n const link = (\n <a {...otherProps} className={className} data-taco=\"header-link\" ref={ref} tabIndex={0}>\n {icon ? <Icon name={icon} /> : null}\n {children}\n {isNew ? (\n <Badge\n color=\"blue\"\n small\n // TODO: remove the text-[0.55rem] and replace with a taco approved font size\n // oxlint-disable-next-line class-rules/no-disallowed-color-classes\n className=\"absolute right-0 top-0 -mr-2.5 -mt-1.5 !h-3 !px-0.5 text-[0.55rem] font-normal\">\n {texts.header.new}\n </Badge>\n ) : null}\n </a>\n );\n\n if (tooltip) {\n return <Tooltip title={tooltip}>{link}</Tooltip>;\n }\n\n return link;\n});\n\nexport const getLinkClasses = (icon: IconName | undefined = undefined) =>\n cn(\n 'flex h-8 flex-shrink-0 flex-grow-0 cursor-pointer items-center justify-center ',\n 'focus:!shadow-none focus:!outline-none focus-visible:!yt-focus-dark',\n 'bg-transparent hover:bg-white-subtle focus:bg-white-subtle aria-current-page:bg-white-subtle',\n '!text-white hover:text-white focus:text-white',\n {\n '!rounded-full !h-9 !w-9': icon,\n 'whitespace-nowrap px-3 rounded text-sm hidden lg:flex': !icon,\n }\n );\n"],"names":["Link","useLocalization","Icon","Badge","Tooltip"],"mappings":";;;;;;;;AA0BO,MAAM,OAAO,MAAM,WAAyC,SAASA,MAAK,OAAO,KAAK;AACzF,QAAM,EAAE,UAAU,MAAM,OAAO,SAAS,GAAG,eAAe;AACpD,QAAA,EAAE,MAAM,IAAIC,6BAAgB;AAClC,QAAM,YAAY,GAAG,eAAe,IAAI,GAAG,YAAY,MAAM,SAAS;AAEtE,QAAM,OACD,sBAAA,cAAA,KAAA,EAAG,GAAG,YAAY,WAAsB,aAAU,eAAc,KAAU,UAAU,KAChF,2CAAQC,KAAAA,MAAK,EAAA,MAAM,KAAM,CAAA,IAAK,MAC9B,UACA,QACG,sBAAA;AAAA,IAACC,MAAA;AAAA,IAAA;AAAA,MACG,OAAM;AAAA,MACN,OAAK;AAAA,MAGL,WAAU;AAAA,IAAA;AAAA,IACT,MAAM,OAAO;AAAA,MAElB,IACR;AAGJ,MAAI,SAAS;AACT,WAAQ,sBAAA,cAAAC,QAAA,SAAA,EAAQ,OAAO,QAAA,GAAU,IAAK;AAAA,EAAA;AAGnC,SAAA;AACX,CAAC;AAEY,MAAA,iBAAiB,CAAC,OAA6B,WACxD;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,IACI,2BAA2B;AAAA,IAC3B,yDAAyD,CAAC;AAAA,EAAA;AAElE;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.js","sources":["../../../../src/components/Header/components/Link.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { Icon, IconName } from '../../Icon/Icon';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport { Badge } from '../../Badge/Badge';\nimport { useLocalization } from '../../Provider/Localization';\n\nexport type BaseLinkProps = React.AnchorHTMLAttributes<HTMLAnchorElement> & {\n tooltip?: string;\n};\n\ninterface LinkPropsWithoutIcon extends BaseLinkProps {\n children: JSX.Element | string;\n icon?: never;\n isNew?: never;\n}\n\ninterface LinkPropsWithIcon extends Omit<BaseLinkProps, 'aria-label'> {\n 'aria-label': string;\n children?: never;\n icon: IconName;\n isNew?: boolean;\n}\n\nexport type LinkProps = LinkPropsWithoutIcon | LinkPropsWithIcon;\n\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(function Link(props, ref) {\n const { children, icon, isNew, tooltip, ...otherProps } = props;\n const { texts } = useLocalization();\n const className = cn(getLinkClasses(icon), 'relative', props.className);\n\n const link = (\n <a {...otherProps} className={className} data-taco=\"header-link\" ref={ref} tabIndex={0}>\n {icon ? <Icon name={icon} /> : null}\n {children}\n {isNew ? (\n <Badge\n color=\"blue\"\n small\n className=\"absolute right-0 top-0 -mr-2.5 -mt-1.5 !h-3 !px-0.5 text-[0.55rem] font-normal\">\n {texts.header.new}\n </Badge>\n ) : null}\n </a>\n );\n\n if (tooltip) {\n return <Tooltip title={tooltip}>{link}</Tooltip>;\n }\n\n return link;\n});\n\nexport const getLinkClasses = (icon: IconName | undefined = undefined) =>\n cn(\n 'flex h-8 flex-shrink-0 flex-grow-0 cursor-pointer items-center justify-center ',\n 'focus:!shadow-none focus:!outline-none focus-visible:!yt-focus-dark',\n 'bg-transparent hover:bg-white-subtle focus:bg-white-subtle aria-current-page:bg-white-subtle',\n '!text-white hover:text-white focus:text-white',\n {\n '!rounded-full !h-9 !w-9': icon,\n 'whitespace-nowrap px-3 rounded text-sm hidden lg:flex': !icon,\n }\n );\n"],"names":["React","Link"],"mappings":";;;;;;AA0BO,MAAM,OAAOA,eAAM,WAAyC,SAASC,MAAK,OAAO,KAAK;AACzF,QAAM,EAAE,UAAU,MAAM,OAAO,SAAS,GAAG,eAAe;AACpD,QAAA,EAAE,MAAM,IAAI,gBAAgB;AAClC,QAAM,YAAY,GAAG,eAAe,IAAI,GAAG,YAAY,MAAM,SAAS;AAEtE,QAAM,OACDD,+BAAA,cAAA,KAAA,EAAG,GAAG,YAAY,WAAsB,aAAU,eAAc,KAAU,UAAU,KAChF,oDAAQ,MAAK,EAAA,MAAM,KAAM,CAAA,IAAK,MAC9B,UACA,QACGA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,OAAM;AAAA,MACN,OAAK;AAAA,
|
|
1
|
+
{"version":3,"file":"Link.js","sources":["../../../../src/components/Header/components/Link.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { Icon, IconName } from '../../Icon/Icon';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport { Badge } from '../../Badge/Badge';\nimport { useLocalization } from '../../Provider/Localization';\n\nexport type BaseLinkProps = React.AnchorHTMLAttributes<HTMLAnchorElement> & {\n tooltip?: string;\n};\n\ninterface LinkPropsWithoutIcon extends BaseLinkProps {\n children: JSX.Element | string;\n icon?: never;\n isNew?: never;\n}\n\ninterface LinkPropsWithIcon extends Omit<BaseLinkProps, 'aria-label'> {\n 'aria-label': string;\n children?: never;\n icon: IconName;\n isNew?: boolean;\n}\n\nexport type LinkProps = LinkPropsWithoutIcon | LinkPropsWithIcon;\n\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(function Link(props, ref) {\n const { children, icon, isNew, tooltip, ...otherProps } = props;\n const { texts } = useLocalization();\n const className = cn(getLinkClasses(icon), 'relative', props.className);\n\n const link = (\n <a {...otherProps} className={className} data-taco=\"header-link\" ref={ref} tabIndex={0}>\n {icon ? <Icon name={icon} /> : null}\n {children}\n {isNew ? (\n <Badge\n color=\"blue\"\n small\n // TODO: remove the text-[0.55rem] and replace with a taco approved font size\n // oxlint-disable-next-line class-rules/no-disallowed-color-classes\n className=\"absolute right-0 top-0 -mr-2.5 -mt-1.5 !h-3 !px-0.5 text-[0.55rem] font-normal\">\n {texts.header.new}\n </Badge>\n ) : null}\n </a>\n );\n\n if (tooltip) {\n return <Tooltip title={tooltip}>{link}</Tooltip>;\n }\n\n return link;\n});\n\nexport const getLinkClasses = (icon: IconName | undefined = undefined) =>\n cn(\n 'flex h-8 flex-shrink-0 flex-grow-0 cursor-pointer items-center justify-center ',\n 'focus:!shadow-none focus:!outline-none focus-visible:!yt-focus-dark',\n 'bg-transparent hover:bg-white-subtle focus:bg-white-subtle aria-current-page:bg-white-subtle',\n '!text-white hover:text-white focus:text-white',\n {\n '!rounded-full !h-9 !w-9': icon,\n 'whitespace-nowrap px-3 rounded text-sm hidden lg:flex': !icon,\n }\n );\n"],"names":["React","Link"],"mappings":";;;;;;AA0BO,MAAM,OAAOA,eAAM,WAAyC,SAASC,MAAK,OAAO,KAAK;AACzF,QAAM,EAAE,UAAU,MAAM,OAAO,SAAS,GAAG,eAAe;AACpD,QAAA,EAAE,MAAM,IAAI,gBAAgB;AAClC,QAAM,YAAY,GAAG,eAAe,IAAI,GAAG,YAAY,MAAM,SAAS;AAEtE,QAAM,OACDD,+BAAA,cAAA,KAAA,EAAG,GAAG,YAAY,WAAsB,aAAU,eAAc,KAAU,UAAU,KAChF,oDAAQ,MAAK,EAAA,MAAM,KAAM,CAAA,IAAK,MAC9B,UACA,QACGA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,OAAM;AAAA,MACN,OAAK;AAAA,MAGL,WAAU;AAAA,IAAA;AAAA,IACT,MAAM,OAAO;AAAA,MAElB,IACR;AAGJ,MAAI,SAAS;AACT,WAAQA,+BAAA,cAAA,SAAA,EAAQ,OAAO,QAAA,GAAU,IAAK;AAAA,EAAA;AAGnC,SAAA;AACX,CAAC;AAEY,MAAA,iBAAiB,CAAC,OAA6B,WACxD;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,IACI,2BAA2B;AAAA,IAC3B,yDAAyD,CAAC;AAAA,EAAA;AAElE;"}
|
|
@@ -16,8 +16,8 @@ const getInputClasses = (props) => {
|
|
|
16
16
|
// disabled
|
|
17
17
|
"text-opacity-25 cursor-not-allowed placeholder:text-gray-500": disabled,
|
|
18
18
|
// highlighted
|
|
19
|
-
"bg-yellow-50
|
|
20
|
-
"bg-yellow-
|
|
19
|
+
"bg-yellow-50 placeholder:text-yellow-300": props.highlighted && disabled,
|
|
20
|
+
"bg-yellow-100 placeholder:text-yellow-500": props.highlighted && !disabled,
|
|
21
21
|
// invalid
|
|
22
22
|
"border-red-500 enabled:hover:border-red-500 disabled:border-red-300/50": invalid,
|
|
23
23
|
// readOnly
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.cjs","sources":["../../../src/components/Input/util.ts"],"sourcesContent":["import cn from 'clsx';\n\ntype InputClassesProps = Pick<\n React.InputHTMLAttributes<HTMLInputElement>,\n 'aria-disabled' | 'aria-readonly' | 'aria-invalid' | 'readOnly' | 'disabled'\n> & {\n invalid?: boolean;\n highlighted?: boolean;\n};\n\nexport const getInputClasses = (props: InputClassesProps) => {\n const disabled = props.disabled || !!props['aria-disabled'];\n const readOnly = props.readOnly || !!props['aria-readonly'];\n const invalid = props.invalid || !!props['aria-invalid'];\n\n return cn(\n 'peer text-black text-sm border font-normal not-italic no-underline rounded flex items-center leading-6 px-2 relative w-full text-ellipsis transition-colors transition-opacity ease-in min-h-[theme(spacing.8)] focus:yt-focus',\n // hide the arrow controls on input[type=number]\n '[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none',\n {\n 'bg-white': !props.highlighted && !readOnly,\n // default\n 'border-gray-200 enabled:hover:border-gray-300 disabled:border-gray-100': !invalid,\n // disabled\n 'text-opacity-25 cursor-not-allowed placeholder:text-gray-500': disabled,\n // highlighted\n 'bg-yellow-50
|
|
1
|
+
{"version":3,"file":"util.cjs","sources":["../../../src/components/Input/util.ts"],"sourcesContent":["import cn from 'clsx';\n\ntype InputClassesProps = Pick<\n React.InputHTMLAttributes<HTMLInputElement>,\n 'aria-disabled' | 'aria-readonly' | 'aria-invalid' | 'readOnly' | 'disabled'\n> & {\n invalid?: boolean;\n highlighted?: boolean;\n};\n\nexport const getInputClasses = (props: InputClassesProps) => {\n const disabled = props.disabled || !!props['aria-disabled'];\n const readOnly = props.readOnly || !!props['aria-readonly'];\n const invalid = props.invalid || !!props['aria-invalid'];\n\n return cn(\n 'peer text-black text-sm border font-normal not-italic no-underline rounded flex items-center leading-6 px-2 relative w-full text-ellipsis transition-colors transition-opacity ease-in min-h-[theme(spacing.8)] focus:yt-focus',\n // hide the arrow controls on input[type=number]\n '[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none',\n {\n 'bg-white': !props.highlighted && !readOnly,\n // default\n 'border-gray-200 enabled:hover:border-gray-300 disabled:border-gray-100': !invalid,\n // disabled\n 'text-opacity-25 cursor-not-allowed placeholder:text-gray-500': disabled,\n // highlighted\n 'bg-yellow-50 placeholder:text-yellow-300': props.highlighted && disabled,\n 'bg-yellow-100 placeholder:text-yellow-500': props.highlighted && !disabled,\n // invalid\n 'border-red-500 enabled:hover:border-red-500 disabled:border-red-300/50': invalid,\n // readOnly\n 'cursor-not-allowed text-black bg-gray-50': readOnly,\n }\n );\n};\n\nexport const getButtonStateClasses = (invalid: boolean | undefined, disabled = false): string => {\n if (invalid) {\n return cn('border border-red-500 group-peer-hover:enabled:border-red-700 transition-colors ease-in', {\n 'border-red-500/30': disabled,\n });\n }\n\n return 'border border-gray-200 group-peer-hover:enabled:border-gray-300 transition-colors transition-opacity ease-in';\n};\n"],"names":[],"mappings":";;;AAUa,MAAA,kBAAkB,CAAC,UAA6B;AACzD,QAAM,WAAW,MAAM,YAAY,CAAC,CAAC,MAAM,eAAe;AAC1D,QAAM,WAAW,MAAM,YAAY,CAAC,CAAC,MAAM,eAAe;AAC1D,QAAM,UAAU,MAAM,WAAW,CAAC,CAAC,MAAM,cAAc;AAEhD,SAAA;AAAA,IACH;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,MACI,YAAY,CAAC,MAAM,eAAe,CAAC;AAAA;AAAA,MAEnC,0EAA0E,CAAC;AAAA;AAAA,MAE3E,gEAAgE;AAAA;AAAA,MAEhE,4CAA4C,MAAM,eAAe;AAAA,MACjE,6CAA6C,MAAM,eAAe,CAAC;AAAA;AAAA,MAEnE,0EAA0E;AAAA;AAAA,MAE1E,4CAA4C;AAAA,IAAA;AAAA,EAEpD;AACJ;AAEO,MAAM,wBAAwB,CAAC,SAA8B,WAAW,UAAkB;AAC7F,MAAI,SAAS;AACT,WAAO,GAAG,2FAA2F;AAAA,MACjG,qBAAqB;AAAA,IAAA,CACxB;AAAA,EAAA;AAGE,SAAA;AACX;;;"}
|
|
@@ -14,8 +14,8 @@ const getInputClasses = (props) => {
|
|
|
14
14
|
// disabled
|
|
15
15
|
"text-opacity-25 cursor-not-allowed placeholder:text-gray-500": disabled,
|
|
16
16
|
// highlighted
|
|
17
|
-
"bg-yellow-50
|
|
18
|
-
"bg-yellow-
|
|
17
|
+
"bg-yellow-50 placeholder:text-yellow-300": props.highlighted && disabled,
|
|
18
|
+
"bg-yellow-100 placeholder:text-yellow-500": props.highlighted && !disabled,
|
|
19
19
|
// invalid
|
|
20
20
|
"border-red-500 enabled:hover:border-red-500 disabled:border-red-300/50": invalid,
|
|
21
21
|
// readOnly
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sources":["../../../src/components/Input/util.ts"],"sourcesContent":["import cn from 'clsx';\n\ntype InputClassesProps = Pick<\n React.InputHTMLAttributes<HTMLInputElement>,\n 'aria-disabled' | 'aria-readonly' | 'aria-invalid' | 'readOnly' | 'disabled'\n> & {\n invalid?: boolean;\n highlighted?: boolean;\n};\n\nexport const getInputClasses = (props: InputClassesProps) => {\n const disabled = props.disabled || !!props['aria-disabled'];\n const readOnly = props.readOnly || !!props['aria-readonly'];\n const invalid = props.invalid || !!props['aria-invalid'];\n\n return cn(\n 'peer text-black text-sm border font-normal not-italic no-underline rounded flex items-center leading-6 px-2 relative w-full text-ellipsis transition-colors transition-opacity ease-in min-h-[theme(spacing.8)] focus:yt-focus',\n // hide the arrow controls on input[type=number]\n '[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none',\n {\n 'bg-white': !props.highlighted && !readOnly,\n // default\n 'border-gray-200 enabled:hover:border-gray-300 disabled:border-gray-100': !invalid,\n // disabled\n 'text-opacity-25 cursor-not-allowed placeholder:text-gray-500': disabled,\n // highlighted\n 'bg-yellow-50
|
|
1
|
+
{"version":3,"file":"util.js","sources":["../../../src/components/Input/util.ts"],"sourcesContent":["import cn from 'clsx';\n\ntype InputClassesProps = Pick<\n React.InputHTMLAttributes<HTMLInputElement>,\n 'aria-disabled' | 'aria-readonly' | 'aria-invalid' | 'readOnly' | 'disabled'\n> & {\n invalid?: boolean;\n highlighted?: boolean;\n};\n\nexport const getInputClasses = (props: InputClassesProps) => {\n const disabled = props.disabled || !!props['aria-disabled'];\n const readOnly = props.readOnly || !!props['aria-readonly'];\n const invalid = props.invalid || !!props['aria-invalid'];\n\n return cn(\n 'peer text-black text-sm border font-normal not-italic no-underline rounded flex items-center leading-6 px-2 relative w-full text-ellipsis transition-colors transition-opacity ease-in min-h-[theme(spacing.8)] focus:yt-focus',\n // hide the arrow controls on input[type=number]\n '[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none',\n {\n 'bg-white': !props.highlighted && !readOnly,\n // default\n 'border-gray-200 enabled:hover:border-gray-300 disabled:border-gray-100': !invalid,\n // disabled\n 'text-opacity-25 cursor-not-allowed placeholder:text-gray-500': disabled,\n // highlighted\n 'bg-yellow-50 placeholder:text-yellow-300': props.highlighted && disabled,\n 'bg-yellow-100 placeholder:text-yellow-500': props.highlighted && !disabled,\n // invalid\n 'border-red-500 enabled:hover:border-red-500 disabled:border-red-300/50': invalid,\n // readOnly\n 'cursor-not-allowed text-black bg-gray-50': readOnly,\n }\n );\n};\n\nexport const getButtonStateClasses = (invalid: boolean | undefined, disabled = false): string => {\n if (invalid) {\n return cn('border border-red-500 group-peer-hover:enabled:border-red-700 transition-colors ease-in', {\n 'border-red-500/30': disabled,\n });\n }\n\n return 'border border-gray-200 group-peer-hover:enabled:border-gray-300 transition-colors transition-opacity ease-in';\n};\n"],"names":[],"mappings":";AAUa,MAAA,kBAAkB,CAAC,UAA6B;AACzD,QAAM,WAAW,MAAM,YAAY,CAAC,CAAC,MAAM,eAAe;AAC1D,QAAM,WAAW,MAAM,YAAY,CAAC,CAAC,MAAM,eAAe;AAC1D,QAAM,UAAU,MAAM,WAAW,CAAC,CAAC,MAAM,cAAc;AAEhD,SAAA;AAAA,IACH;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,MACI,YAAY,CAAC,MAAM,eAAe,CAAC;AAAA;AAAA,MAEnC,0EAA0E,CAAC;AAAA;AAAA,MAE3E,gEAAgE;AAAA;AAAA,MAEhE,4CAA4C,MAAM,eAAe;AAAA,MACjE,6CAA6C,MAAM,eAAe,CAAC;AAAA;AAAA,MAEnE,0EAA0E;AAAA;AAAA,MAE1E,4CAA4C;AAAA,IAAA;AAAA,EAEpD;AACJ;AAEO,MAAM,wBAAwB,CAAC,SAA8B,WAAW,UAAkB;AAC7F,MAAI,SAAS;AACT,WAAO,GAAG,2FAA2F;AAAA,MACjG,qBAAqB;AAAA,IAAA,CACxB;AAAA,EAAA;AAGE,SAAA;AACX;"}
|
|
@@ -5,7 +5,7 @@ export type ListCollapsibleProps = Omit<ComposableListItemProps<typeof Collapsib
|
|
|
5
5
|
children: JSX.Element | JSX.Element[];
|
|
6
6
|
defaultOpen?: boolean;
|
|
7
7
|
};
|
|
8
|
-
export declare const Collapsible: React.ForwardRefExoticComponent<Omit<ComposableListItemProps<React.ForwardRefExoticComponent<Omit<import('@base-ui/react
|
|
8
|
+
export declare const Collapsible: React.ForwardRefExoticComponent<Omit<ComposableListItemProps<React.ForwardRefExoticComponent<Omit<import('@base-ui/react').CollapsibleRootProps, "ref"> & React.RefAttributes<HTMLDivElement>>>, "children"> & {
|
|
9
9
|
children: JSX.Element | JSX.Element[];
|
|
10
10
|
defaultOpen?: boolean;
|
|
11
11
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -7,7 +7,7 @@ export type MenuContentProps = Omit<React.ComponentPropsWithoutRef<typeof MenuPr
|
|
|
7
7
|
/** Set the position of the Menu relative to its trigger. Default value is `bottom` */
|
|
8
8
|
placement?: Placement;
|
|
9
9
|
};
|
|
10
|
-
export declare const Content: React.ForwardRefExoticComponent<Omit<Omit<Omit<import('@base-ui/react
|
|
10
|
+
export declare const Content: React.ForwardRefExoticComponent<Omit<Omit<Omit<import('@base-ui/react').ContextMenuPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "children" | "side"> & {
|
|
11
11
|
align?: Align;
|
|
12
12
|
children: React.ReactNode;
|
|
13
13
|
/** Set the position of the Menu relative to its trigger. Default value is `bottom` */
|
|
@@ -3,6 +3,6 @@ import * as React from 'react';
|
|
|
3
3
|
export type MenuSubMenuProps = Omit<React.ComponentPropsWithoutRef<typeof MenuPrimitive.Popup>, 'children' | 'side'> & {
|
|
4
4
|
children: React.ReactNode;
|
|
5
5
|
};
|
|
6
|
-
export declare const SubMenu: React.ForwardRefExoticComponent<Omit<Omit<Omit<import('@base-ui/react
|
|
6
|
+
export declare const SubMenu: React.ForwardRefExoticComponent<Omit<Omit<Omit<import('@base-ui/react').ContextMenuPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref">, "children" | "side"> & {
|
|
7
7
|
children: React.ReactNode;
|
|
8
8
|
} & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -12,10 +12,10 @@ export declare function useTableEditing<TType = unknown>(isEnabled: boolean | un
|
|
|
12
12
|
getRowStatus: (rowId: string) => ("saving" | "saved" | "errored") | undefined;
|
|
13
13
|
setRowStatus: (rowId: string, status: ("saving" | "saved" | "errored") | undefined) => void;
|
|
14
14
|
forceValidate: <T extends TType>(table: ReactTable<T>) => Promise<string[]>;
|
|
15
|
-
setCellValue: <T extends TType>(cell: import('@tanstack/
|
|
16
|
-
getCellValue: <T extends TType>(cell: import('@tanstack/
|
|
17
|
-
getCellError: <T extends TType>(cell: import('@tanstack/
|
|
18
|
-
onCellChanged: <T extends TType>(cell: import('@tanstack/
|
|
15
|
+
setCellValue: <T extends TType>(cell: import('@tanstack/table-core').Cell<T, unknown>, rowIndex: number, value: unknown) => void;
|
|
16
|
+
getCellValue: <T extends TType>(cell: import('@tanstack/table-core').Cell<T, unknown>) => unknown | undefined;
|
|
17
|
+
getCellError: <T extends TType>(cell: import('@tanstack/table-core').Cell<T, unknown>) => string | undefined;
|
|
18
|
+
onCellChanged: <T extends TType>(cell: import('@tanstack/table-core').Cell<T, unknown>, rowIndex: number, nextValue: any, shouldRunUpdaters?: boolean, shouldRunValidation?: boolean) => Promise<void>;
|
|
19
19
|
getErrors: () => string[];
|
|
20
20
|
getErrorsShownInAlert: <T extends TType>() => {
|
|
21
21
|
rowId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.cjs","sources":["../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { motion, useAnimation } from 'framer-motion';\nimport { useTimer } from '../../utils/hooks/useTimer';\nimport { getBadgeIcon, getToastEmptyContentWarning } from './util';\nimport { State } from '../../types';\nimport { useLocalization } from '../Provider/Localization';\nimport { IconButton } from '../IconButton/IconButton';\n\nexport type ToastsTexts = {\n /** Aria-label for the close icon button of toast */\n dismiss: string;\n};\n\nexport type ToastType =
|
|
1
|
+
{"version":3,"file":"Toast.cjs","sources":["../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { motion, useAnimation } from 'framer-motion';\nimport { useTimer } from '../../utils/hooks/useTimer';\nimport { getBadgeIcon, getToastEmptyContentWarning } from './util';\nimport type { State } from '../../types';\nimport { useLocalization } from '../Provider/Localization';\nimport { IconButton } from '../IconButton/IconButton';\n\nexport type ToastsTexts = {\n /** Aria-label for the close icon button of toast */\n dismiss: string;\n};\n\nexport type ToastType = Exclude<State, 'default'> | 'loading';\nexport type ToastOptions = {\n /** Provide time in milliseconds after which the toast should autoclose */\n autoClose?: number;\n /**\n * State will change the icon displayed in toast and other characteristics,\n * for e.g. `loading` state will display a progress animation.\n * Default value is `default`\n */\n type?: ToastType;\n};\nexport type ToastContent = Omit<React.ReactNode, 'null' | 'undefined'>;\nexport type ToastProps = {\n /** Provide a unique id for toast */\n id: string;\n /**\n * Content can be any valid react node, for e.g. a `div`, or a simple text.\n */\n content: ToastContent;\n /** Additional options to define your toast */\n options: ToastOptions;\n /**\n * Handler called when toast closes.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n onClose: () => void;\n lastUpdated?: number;\n lastDuplicateId?: string;\n};\n\nexport const Toast = ({ content, lastUpdated, onClose: handleClose, options, ...props }: ToastProps): JSX.Element => {\n const { texts } = useLocalization();\n const { autoClose, type = 'default' } = options;\n const className = cn('bg-white relative flex items-center py-1 px-2 mt-3 w-full rounded yt-shadow print:hidden', {\n 'border border-gray-500': type === 'default' || type === 'loading' || !type,\n 'border border-green-500': type === 'success',\n 'border border-blue-500': type === 'information',\n 'border border-yellow-500': type === 'warning',\n 'border border-red-500': type === 'error',\n });\n const timer = useTimer(autoClose, handleClose);\n const controls = useAnimation();\n\n if (!content) {\n // oxlint-disable-next-line no-console\n console.warn(getToastEmptyContentWarning(content));\n }\n\n React.useEffect(() => {\n if (autoClose) {\n timer.start();\n }\n }, [autoClose]);\n\n const triggerUpdateAnimation = async () => {\n await controls.start({ scale: 1.05 });\n await controls.start({ scale: 1 });\n };\n\n React.useEffect(() => {\n if (lastUpdated) {\n triggerUpdateAnimation();\n\n if (timer.running) {\n timer.start();\n }\n }\n }, [lastUpdated]);\n\n return (\n <motion.div\n {...props}\n animate={controls}\n className={className}\n data-taco=\"toast\"\n onMouseEnter={timer.pause}\n onMouseLeave={timer.resume}>\n {getBadgeIcon(type)}\n <div className=\"flex-grow\">{content as React.ReactNode}</div>\n <IconButton\n appearance=\"discrete\"\n className=\"-mr-2 cursor-pointer self-start !px-0 text-gray-700\"\n icon=\"close\"\n aria-label={texts.toasts.dismiss}\n onClick={handleClose}\n />\n </motion.div>\n );\n};\n"],"names":["useLocalization","useTimer","useAnimation","getToastEmptyContentWarning","motion","getBadgeIcon","IconButton"],"mappings":";;;;;;;;;AA4Ca,MAAA,QAAQ,CAAC,EAAE,SAAS,aAAa,SAAS,aAAa,SAAS,GAAG,YAAqC;AAC3G,QAAA,EAAE,MAAM,IAAIA,6BAAgB;AAClC,QAAM,EAAE,WAAW,OAAO,UAAc,IAAA;AAClC,QAAA,YAAY,GAAG,4FAA4F;AAAA,IAC7G,0BAA0B,SAAS,aAAa,SAAS,aAAa,CAAC;AAAA,IACvE,2BAA2B,SAAS;AAAA,IACpC,0BAA0B,SAAS;AAAA,IACnC,4BAA4B,SAAS;AAAA,IACrC,yBAAyB,SAAS;AAAA,EAAA,CACrC;AACK,QAAA,QAAQC,SAAAA,SAAS,WAAW,WAAW;AAC7C,QAAM,WAAWC,aAAAA,aAAa;AAE9B,MAAI,CAAC,SAAS;AAEF,YAAA,KAAKC,iCAA4B,OAAO,CAAC;AAAA,EAAA;AAGrD,QAAM,UAAU,MAAM;AAClB,QAAI,WAAW;AACX,YAAM,MAAM;AAAA,IAAA;AAAA,EAChB,GACD,CAAC,SAAS,CAAC;AAEd,QAAM,yBAAyB,YAAY;AACvC,UAAM,SAAS,MAAM,EAAE,OAAO,MAAM;AACpC,UAAM,SAAS,MAAM,EAAE,OAAO,GAAG;AAAA,EACrC;AAEA,QAAM,UAAU,MAAM;AAClB,QAAI,aAAa;AACU,6BAAA;AAEvB,UAAI,MAAM,SAAS;AACf,cAAM,MAAM;AAAA,MAAA;AAAA,IAChB;AAAA,EACJ,GACD,CAAC,WAAW,CAAC;AAGZ,SAAA,sBAAA;AAAA,IAACC,aAAAA,OAAO;AAAA,IAAP;AAAA,MACI,GAAG;AAAA,MACJ,SAAS;AAAA,MACT;AAAA,MACA,aAAU;AAAA,MACV,cAAc,MAAM;AAAA,MACpB,cAAc,MAAM;AAAA,IAAA;AAAA,IACnBC,KAAAA,aAAa,IAAI;AAAA,IACjB,sBAAA,cAAA,OAAA,EAAI,WAAU,YAAA,GAAa,OAA2B;AAAA,IACvD,sBAAA;AAAA,MAACC,WAAA;AAAA,MAAA;AAAA,QACG,YAAW;AAAA,QACX,WAAU;AAAA,QACV,MAAK;AAAA,QACL,cAAY,MAAM,OAAO;AAAA,QACzB,SAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAEjB;AAER;;"}
|
|
@@ -4,7 +4,7 @@ export type ToastsTexts = {
|
|
|
4
4
|
/** Aria-label for the close icon button of toast */
|
|
5
5
|
dismiss: string;
|
|
6
6
|
};
|
|
7
|
-
export type ToastType =
|
|
7
|
+
export type ToastType = Exclude<State, 'default'> | 'loading';
|
|
8
8
|
export type ToastOptions = {
|
|
9
9
|
/** Provide time in milliseconds after which the toast should autoclose */
|
|
10
10
|
autoClose?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.js","sources":["../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { motion, useAnimation } from 'framer-motion';\nimport { useTimer } from '../../utils/hooks/useTimer';\nimport { getBadgeIcon, getToastEmptyContentWarning } from './util';\nimport { State } from '../../types';\nimport { useLocalization } from '../Provider/Localization';\nimport { IconButton } from '../IconButton/IconButton';\n\nexport type ToastsTexts = {\n /** Aria-label for the close icon button of toast */\n dismiss: string;\n};\n\nexport type ToastType =
|
|
1
|
+
{"version":3,"file":"Toast.js","sources":["../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'clsx';\nimport { motion, useAnimation } from 'framer-motion';\nimport { useTimer } from '../../utils/hooks/useTimer';\nimport { getBadgeIcon, getToastEmptyContentWarning } from './util';\nimport type { State } from '../../types';\nimport { useLocalization } from '../Provider/Localization';\nimport { IconButton } from '../IconButton/IconButton';\n\nexport type ToastsTexts = {\n /** Aria-label for the close icon button of toast */\n dismiss: string;\n};\n\nexport type ToastType = Exclude<State, 'default'> | 'loading';\nexport type ToastOptions = {\n /** Provide time in milliseconds after which the toast should autoclose */\n autoClose?: number;\n /**\n * State will change the icon displayed in toast and other characteristics,\n * for e.g. `loading` state will display a progress animation.\n * Default value is `default`\n */\n type?: ToastType;\n};\nexport type ToastContent = Omit<React.ReactNode, 'null' | 'undefined'>;\nexport type ToastProps = {\n /** Provide a unique id for toast */\n id: string;\n /**\n * Content can be any valid react node, for e.g. a `div`, or a simple text.\n */\n content: ToastContent;\n /** Additional options to define your toast */\n options: ToastOptions;\n /**\n * Handler called when toast closes.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n onClose: () => void;\n lastUpdated?: number;\n lastDuplicateId?: string;\n};\n\nexport const Toast = ({ content, lastUpdated, onClose: handleClose, options, ...props }: ToastProps): JSX.Element => {\n const { texts } = useLocalization();\n const { autoClose, type = 'default' } = options;\n const className = cn('bg-white relative flex items-center py-1 px-2 mt-3 w-full rounded yt-shadow print:hidden', {\n 'border border-gray-500': type === 'default' || type === 'loading' || !type,\n 'border border-green-500': type === 'success',\n 'border border-blue-500': type === 'information',\n 'border border-yellow-500': type === 'warning',\n 'border border-red-500': type === 'error',\n });\n const timer = useTimer(autoClose, handleClose);\n const controls = useAnimation();\n\n if (!content) {\n // oxlint-disable-next-line no-console\n console.warn(getToastEmptyContentWarning(content));\n }\n\n React.useEffect(() => {\n if (autoClose) {\n timer.start();\n }\n }, [autoClose]);\n\n const triggerUpdateAnimation = async () => {\n await controls.start({ scale: 1.05 });\n await controls.start({ scale: 1 });\n };\n\n React.useEffect(() => {\n if (lastUpdated) {\n triggerUpdateAnimation();\n\n if (timer.running) {\n timer.start();\n }\n }\n }, [lastUpdated]);\n\n return (\n <motion.div\n {...props}\n animate={controls}\n className={className}\n data-taco=\"toast\"\n onMouseEnter={timer.pause}\n onMouseLeave={timer.resume}>\n {getBadgeIcon(type)}\n <div className=\"flex-grow\">{content as React.ReactNode}</div>\n <IconButton\n appearance=\"discrete\"\n className=\"-mr-2 cursor-pointer self-start !px-0 text-gray-700\"\n icon=\"close\"\n aria-label={texts.toasts.dismiss}\n onClick={handleClose}\n />\n </motion.div>\n );\n};\n"],"names":["React"],"mappings":";;;;;;;AA4Ca,MAAA,QAAQ,CAAC,EAAE,SAAS,aAAa,SAAS,aAAa,SAAS,GAAG,YAAqC;AAC3G,QAAA,EAAE,MAAM,IAAI,gBAAgB;AAClC,QAAM,EAAE,WAAW,OAAO,UAAc,IAAA;AAClC,QAAA,YAAY,GAAG,4FAA4F;AAAA,IAC7G,0BAA0B,SAAS,aAAa,SAAS,aAAa,CAAC;AAAA,IACvE,2BAA2B,SAAS;AAAA,IACpC,0BAA0B,SAAS;AAAA,IACnC,4BAA4B,SAAS;AAAA,IACrC,yBAAyB,SAAS;AAAA,EAAA,CACrC;AACK,QAAA,QAAQ,SAAS,WAAW,WAAW;AAC7C,QAAM,WAAW,aAAa;AAE9B,MAAI,CAAC,SAAS;AAEF,YAAA,KAAK,4BAA4B,OAAO,CAAC;AAAA,EAAA;AAGrDA,iBAAM,UAAU,MAAM;AAClB,QAAI,WAAW;AACX,YAAM,MAAM;AAAA,IAAA;AAAA,EAChB,GACD,CAAC,SAAS,CAAC;AAEd,QAAM,yBAAyB,YAAY;AACvC,UAAM,SAAS,MAAM,EAAE,OAAO,MAAM;AACpC,UAAM,SAAS,MAAM,EAAE,OAAO,GAAG;AAAA,EACrC;AAEAA,iBAAM,UAAU,MAAM;AAClB,QAAI,aAAa;AACU,6BAAA;AAEvB,UAAI,MAAM,SAAS;AACf,cAAM,MAAM;AAAA,MAAA;AAAA,IAChB;AAAA,EACJ,GACD,CAAC,WAAW,CAAC;AAGZ,SAAAA,+BAAA;AAAA,IAAC,OAAO;AAAA,IAAP;AAAA,MACI,GAAG;AAAA,MACJ,SAAS;AAAA,MACT;AAAA,MACA,aAAU;AAAA,MACV,cAAc,MAAM;AAAA,MACpB,cAAc,MAAM;AAAA,IAAA;AAAA,IACnB,aAAa,IAAI;AAAA,IACjBA,+BAAA,cAAA,OAAA,EAAI,WAAU,YAAA,GAAa,OAA2B;AAAA,IACvDA,+BAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,YAAW;AAAA,QACX,WAAU;AAAA,QACV,MAAK;AAAA,QACL,cAAY,MAAM,OAAO;AAAA,QACzB,SAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAEjB;AAER;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.cjs","sources":["../../../src/components/Toast/util.tsx"],"sourcesContent":["import React from 'react';\nimport { Spinner } from '../Spinner/Spinner';\nimport { ToastContent, ToastType } from './Toast';\nimport { BadgeIcon } from '../BadgeIcon/BadgeIcon';\n\nexport const getBadgeIcon = (type: ToastType): JSX.Element | null => {\n return (\n <div className=\"mr-2 mt-[5px] flex-shrink-0 self-start\">\n {(() => {\n switch (type) {\n case 'success':\n return <BadgeIcon icon=\"tick\" color=\"green\" />;\n case 'error':\n return <BadgeIcon icon=\"close\" color=\"red\" />;\n case 'warning':\n return <BadgeIcon icon=\"warning\" color=\"yellow\" />;\n case 'information':\n return <BadgeIcon icon=\"info\" color=\"blue\" />;\n case 'loading':\n return <Spinner delay={0} className=\"h-5 w-5\" />;\n default:\n return null;\n }\n })()}\n </div>\n );\n};\n\nexport const getToastEmptyContentWarning = (content?: ToastContent) =>\n `Toast requires 'content' property, which can't be empty string, null or undefined. Current content value is set to ${\n content === '' ? 'empty string' : content\n }.`;\n"],"names":["BadgeIcon","Spinner"],"mappings":";;;;;AAKa,MAAA,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"util.cjs","sources":["../../../src/components/Toast/util.tsx"],"sourcesContent":["import React from 'react';\nimport { Spinner } from '../Spinner/Spinner';\nimport { ToastContent, ToastType } from './Toast';\nimport { BadgeIcon } from '../BadgeIcon/BadgeIcon';\n\nexport const getBadgeIcon = (type: ToastType | 'default'): JSX.Element | null => {\n return (\n <div className=\"mr-2 mt-[5px] flex-shrink-0 self-start\">\n {(() => {\n switch (type) {\n case 'success':\n return <BadgeIcon icon=\"tick\" color=\"green\" />;\n case 'error':\n return <BadgeIcon icon=\"close\" color=\"red\" />;\n case 'warning':\n return <BadgeIcon icon=\"warning\" color=\"yellow\" />;\n case 'information':\n return <BadgeIcon icon=\"info\" color=\"blue\" />;\n case 'loading':\n return <Spinner delay={0} className=\"h-5 w-5\" />;\n default:\n return null;\n }\n })()}\n </div>\n );\n};\n\nexport const getToastEmptyContentWarning = (content?: ToastContent) =>\n `Toast requires 'content' property, which can't be empty string, null or undefined. Current content value is set to ${\n content === '' ? 'empty string' : content\n }.`;\n"],"names":["BadgeIcon","Spinner"],"mappings":";;;;;AAKa,MAAA,eAAe,CAAC,SAAoD;AAC7E,SACK,sBAAA,cAAA,OAAA,EAAI,WAAU,yCAAA,IACT,MAAM;AACJ,YAAQ,MAAM;AAAA,MACV,KAAK;AACD,eAAQ,sBAAA,cAAAA,qBAAA,EAAU,MAAK,QAAO,OAAM,SAAQ;AAAA,MAChD,KAAK;AACD,eAAQ,sBAAA,cAAAA,qBAAA,EAAU,MAAK,SAAQ,OAAM,OAAM;AAAA,MAC/C,KAAK;AACD,eAAQ,sBAAA,cAAAA,qBAAA,EAAU,MAAK,WAAU,OAAM,UAAS;AAAA,MACpD,KAAK;AACD,eAAQ,sBAAA,cAAAA,qBAAA,EAAU,MAAK,QAAO,OAAM,QAAO;AAAA,MAC/C,KAAK;AACD,eAAQ,sBAAA,cAAAC,iBAAA,EAAQ,OAAO,GAAG,WAAU,WAAU;AAAA,MAClD;AACW,eAAA;AAAA,IAAA;AAAA,EACf,IAER;AAER;AAEO,MAAM,8BAA8B,CAAC,YACxC,sHACI,YAAY,KAAK,iBAAiB,OACtC;;;"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ToastContent, ToastType } from './Toast';
|
|
2
|
-
export declare const getBadgeIcon: (type: ToastType) => JSX.Element | null;
|
|
2
|
+
export declare const getBadgeIcon: (type: ToastType | "default") => JSX.Element | null;
|
|
3
3
|
export declare const getToastEmptyContentWarning: (content?: ToastContent) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sources":["../../../src/components/Toast/util.tsx"],"sourcesContent":["import React from 'react';\nimport { Spinner } from '../Spinner/Spinner';\nimport { ToastContent, ToastType } from './Toast';\nimport { BadgeIcon } from '../BadgeIcon/BadgeIcon';\n\nexport const getBadgeIcon = (type: ToastType): JSX.Element | null => {\n return (\n <div className=\"mr-2 mt-[5px] flex-shrink-0 self-start\">\n {(() => {\n switch (type) {\n case 'success':\n return <BadgeIcon icon=\"tick\" color=\"green\" />;\n case 'error':\n return <BadgeIcon icon=\"close\" color=\"red\" />;\n case 'warning':\n return <BadgeIcon icon=\"warning\" color=\"yellow\" />;\n case 'information':\n return <BadgeIcon icon=\"info\" color=\"blue\" />;\n case 'loading':\n return <Spinner delay={0} className=\"h-5 w-5\" />;\n default:\n return null;\n }\n })()}\n </div>\n );\n};\n\nexport const getToastEmptyContentWarning = (content?: ToastContent) =>\n `Toast requires 'content' property, which can't be empty string, null or undefined. Current content value is set to ${\n content === '' ? 'empty string' : content\n }.`;\n"],"names":["React"],"mappings":";;;AAKa,MAAA,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"util.js","sources":["../../../src/components/Toast/util.tsx"],"sourcesContent":["import React from 'react';\nimport { Spinner } from '../Spinner/Spinner';\nimport { ToastContent, ToastType } from './Toast';\nimport { BadgeIcon } from '../BadgeIcon/BadgeIcon';\n\nexport const getBadgeIcon = (type: ToastType | 'default'): JSX.Element | null => {\n return (\n <div className=\"mr-2 mt-[5px] flex-shrink-0 self-start\">\n {(() => {\n switch (type) {\n case 'success':\n return <BadgeIcon icon=\"tick\" color=\"green\" />;\n case 'error':\n return <BadgeIcon icon=\"close\" color=\"red\" />;\n case 'warning':\n return <BadgeIcon icon=\"warning\" color=\"yellow\" />;\n case 'information':\n return <BadgeIcon icon=\"info\" color=\"blue\" />;\n case 'loading':\n return <Spinner delay={0} className=\"h-5 w-5\" />;\n default:\n return null;\n }\n })()}\n </div>\n );\n};\n\nexport const getToastEmptyContentWarning = (content?: ToastContent) =>\n `Toast requires 'content' property, which can't be empty string, null or undefined. Current content value is set to ${\n content === '' ? 'empty string' : content\n }.`;\n"],"names":["React"],"mappings":";;;AAKa,MAAA,eAAe,CAAC,SAAoD;AAC7E,SACKA,+BAAA,cAAA,OAAA,EAAI,WAAU,yCAAA,IACT,MAAM;AACJ,YAAQ,MAAM;AAAA,MACV,KAAK;AACD,eAAQA,+BAAA,cAAA,WAAA,EAAU,MAAK,QAAO,OAAM,SAAQ;AAAA,MAChD,KAAK;AACD,eAAQA,+BAAA,cAAA,WAAA,EAAU,MAAK,SAAQ,OAAM,OAAM;AAAA,MAC/C,KAAK;AACD,eAAQA,+BAAA,cAAA,WAAA,EAAU,MAAK,WAAU,OAAM,UAAS;AAAA,MACpD,KAAK;AACD,eAAQA,+BAAA,cAAA,WAAA,EAAU,MAAK,QAAO,OAAM,QAAO;AAAA,MAC/C,KAAK;AACD,eAAQA,+BAAA,cAAA,SAAA,EAAQ,OAAO,GAAG,WAAU,WAAU;AAAA,MAClD;AACW,eAAA;AAAA,IAAA;AAAA,EACf,IAER;AAER;AAEO,MAAM,8BAA8B,CAAC,YACxC,sHACI,YAAY,KAAK,iBAAiB,OACtC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function useTacoSettings(): import('
|
|
1
|
+
export declare function useTacoSettings(): import('..').TacoSettings;
|
|
@@ -64,7 +64,7 @@ declare module '@tanstack/table-core' {
|
|
|
64
64
|
}
|
|
65
65
|
export declare function useTableManager<TType = unknown, TMeta = object>(props: TableProps<TType>, ref: React.RefObject<TableRef>, meta?: Partial<ReactTableMeta<TType>> & TMeta, internalColumns?: useTableManagerInternalColumns<TType>): {
|
|
66
66
|
id: string;
|
|
67
|
-
instance: import('@tanstack/
|
|
67
|
+
instance: import('@tanstack/table-core').Table<TType>;
|
|
68
68
|
meta: ReactTableMeta<TType> & TMeta;
|
|
69
|
-
state: import('@tanstack/
|
|
69
|
+
state: import('@tanstack/table-core').TableState;
|
|
70
70
|
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ColumnSizingState, Table as ReactTable } from '@tanstack/react-table';
|
|
2
2
|
export declare function getSettings<TType = unknown>(table: ReactTable<TType>): {
|
|
3
|
-
columnOrder: import('@tanstack/
|
|
4
|
-
columnPinning: import('@tanstack/
|
|
3
|
+
columnOrder: import('@tanstack/table-core').ColumnOrderState | undefined;
|
|
4
|
+
columnPinning: import('@tanstack/table-core').ColumnPinningState;
|
|
5
5
|
columnSizing: {};
|
|
6
|
-
columnVisibility: import('@tanstack/
|
|
6
|
+
columnVisibility: import('@tanstack/table-core').VisibilityState | undefined;
|
|
7
7
|
excludeUnmatchedRecordsInSearch: boolean | undefined;
|
|
8
8
|
fontSize: "small" | "medium" | "large" | undefined;
|
|
9
9
|
rowHeight: import('../../types').TableRowHeight | undefined;
|
|
10
|
-
sorting: import('@tanstack/
|
|
10
|
+
sorting: import('@tanstack/table-core').SortingState;
|
|
11
11
|
};
|
|
12
12
|
export declare function ignoreInternalColumns(data: ColumnSizingState): {};
|
|
@@ -4,5 +4,5 @@ export declare const createFakeData: (creator: (faker: Faker) => any, ...length:
|
|
|
4
4
|
export declare const getRandomNumber: (max: number, min?: number) => number;
|
|
5
5
|
export declare const iconNames: string[];
|
|
6
6
|
export declare const generateId: () => string;
|
|
7
|
-
export declare const sleep: (ms: number) => Promise<
|
|
7
|
+
export declare const sleep: (ms: number) => Promise<void>;
|
|
8
8
|
export { sort };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@economic/taco",
|
|
3
|
-
"version": "8.1.3
|
|
3
|
+
"version": "8.1.3",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -29,13 +29,16 @@
|
|
|
29
29
|
"scripts/stylelint-plugin"
|
|
30
30
|
],
|
|
31
31
|
"scripts": {
|
|
32
|
-
"build": "
|
|
32
|
+
"build": "vite build",
|
|
33
|
+
"prebuild": "npx tsc --noEmit",
|
|
33
34
|
"test": "vitest run",
|
|
35
|
+
"test:watch": "vitest",
|
|
34
36
|
"lint": "npm run lint:styles && oxlint --quiet",
|
|
35
37
|
"lint:styles": "stylelint \"src/**/*.css\" --config ./stylelint.config.mjs --allow-empty-input",
|
|
36
38
|
"pree2e": "npx playwright install chromium --with-deps",
|
|
37
39
|
"e2e": "npx playwright test",
|
|
38
|
-
"generate-icons": "node scripts/generate-icons.cjs"
|
|
40
|
+
"generate-icons": "node scripts/generate-icons.cjs",
|
|
41
|
+
"typecheck": "npx tsc --noEmit"
|
|
39
42
|
},
|
|
40
43
|
"dependencies": {
|
|
41
44
|
"@base-ui/react": "1.5.0",
|
|
@@ -43,7 +46,7 @@
|
|
|
43
46
|
"@dnd-kit/modifiers": "^7.0.0",
|
|
44
47
|
"@dnd-kit/sortable": "^7.0.2",
|
|
45
48
|
"@dnd-kit/utilities": "^3.2.2",
|
|
46
|
-
"@economic/taco-tokens": "^2.2.5
|
|
49
|
+
"@economic/taco-tokens": "^2.2.5",
|
|
47
50
|
"@radix-ui/react-popover": "1.0.2",
|
|
48
51
|
"@radix-ui/react-scroll-area": "1.2.10",
|
|
49
52
|
"@react-aria/focus": "^3.19.0",
|
|
@@ -71,7 +74,7 @@
|
|
|
71
74
|
"tailwindcss": ">=3.4.19"
|
|
72
75
|
},
|
|
73
76
|
"devDependencies": {
|
|
74
|
-
"@oxlint/plugins": "^1.
|
|
77
|
+
"@oxlint/plugins": "^1.70.0",
|
|
75
78
|
"@svgr/cli": "^5.5.0",
|
|
76
79
|
"@testing-library/jest-dom": "6.9.1",
|
|
77
80
|
"@testing-library/react": "16.3.2",
|
|
@@ -99,5 +102,5 @@
|
|
|
99
102
|
"optionalDependencies": {
|
|
100
103
|
"@rollup/rollup-linux-x64-gnu": "^4.62.0"
|
|
101
104
|
},
|
|
102
|
-
"gitHead": "
|
|
105
|
+
"gitHead": "9fa6d89e7c0ea019696302097431be360635b217"
|
|
103
106
|
}
|