@economic/taco 0.0.30-alpha.0 → 0.0.31-alpha.2

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 (61) hide show
  1. package/dist/esm/components/Button/util.js +1 -1
  2. package/dist/esm/components/Button/util.js.map +1 -1
  3. package/dist/esm/components/Datepicker/Datepicker.js +52 -48
  4. package/dist/esm/components/Datepicker/Datepicker.js.map +1 -1
  5. package/dist/esm/components/Form/Form.js +8 -6
  6. package/dist/esm/components/Form/Form.js.map +1 -1
  7. package/dist/esm/components/Group/Group.js +8 -6
  8. package/dist/esm/components/Group/Group.js.map +1 -1
  9. package/dist/esm/components/Hanger/Hanger.js +33 -25
  10. package/dist/esm/components/Hanger/Hanger.js.map +1 -1
  11. package/dist/esm/components/Icon/Icon.js +8 -7
  12. package/dist/esm/components/Icon/Icon.js.map +1 -1
  13. package/dist/esm/components/IconButton/IconButton.js +11 -9
  14. package/dist/esm/components/IconButton/IconButton.js.map +1 -1
  15. package/dist/esm/components/Input/Input.js +24 -26
  16. package/dist/esm/components/Input/Input.js.map +1 -1
  17. package/dist/esm/components/Listbox/Listbox.js +25 -24
  18. package/dist/esm/components/Listbox/Listbox.js.map +1 -1
  19. package/dist/esm/components/Menu/Menu.js +43 -20
  20. package/dist/esm/components/Menu/Menu.js.map +1 -1
  21. package/dist/esm/components/Menu/components/Item.js +5 -5
  22. package/dist/esm/components/Menu/components/Item.js.map +1 -1
  23. package/dist/esm/components/Navigation/Navigation.js +44 -35
  24. package/dist/esm/components/Navigation/Navigation.js.map +1 -1
  25. package/dist/esm/components/Pagination/Pagination.js +56 -39
  26. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  27. package/dist/esm/components/Popover/Popover.js +34 -29
  28. package/dist/esm/components/Popover/Popover.js.map +1 -1
  29. package/dist/esm/components/Progress/Progress.js +15 -11
  30. package/dist/esm/components/Progress/Progress.js.map +1 -1
  31. package/dist/esm/components/Provider/Provider.js +18 -13
  32. package/dist/esm/components/Provider/Provider.js.map +1 -1
  33. package/dist/esm/components/RadioGroup/RadioGroup.js +57 -45
  34. package/dist/esm/components/RadioGroup/RadioGroup.js.map +1 -1
  35. package/dist/esm/components/SearchInput/SearchInput.js +11 -10
  36. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  37. package/dist/esm/components/Select/Select.js +31 -30
  38. package/dist/esm/components/Select/Select.js.map +1 -1
  39. package/dist/esm/components/Spinner/Spinner.js +19 -12
  40. package/dist/esm/components/Spinner/Spinner.js.map +1 -1
  41. package/dist/esm/components/Switch/Switch.js +10 -9
  42. package/dist/esm/components/Switch/Switch.js.map +1 -1
  43. package/dist/esm/components/Tabs/Tabs.js +27 -25
  44. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  45. package/dist/esm/components/Textarea/Textarea.js +9 -11
  46. package/dist/esm/components/Textarea/Textarea.js.map +1 -1
  47. package/dist/esm/components/Toast/Toaster.js +118 -88
  48. package/dist/esm/components/Toast/Toaster.js.map +1 -1
  49. package/dist/esm/components/Tooltip/Tooltip.js +8 -7
  50. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  51. package/dist/esm/components/Treeview/Treeview.js +36 -26
  52. package/dist/esm/components/Treeview/Treeview.js.map +1 -1
  53. package/dist/esm/components/VisuallyHidden/VisuallyHidden.js +1 -1
  54. package/dist/esm/components/VisuallyHidden/VisuallyHidden.js.map +1 -1
  55. package/dist/esm/index.css +8 -5
  56. package/dist/index.css +8 -5
  57. package/dist/taco.cjs.development.js +754 -628
  58. package/dist/taco.cjs.development.js.map +1 -1
  59. package/dist/taco.cjs.production.min.js +1 -1
  60. package/dist/taco.cjs.production.min.js.map +1 -1
  61. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.js","sources":["../../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport cn from 'classnames';\r\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\r\n\r\nimport { Orientation } from '../../types';\r\nimport './Tabs.css';\r\n\r\nexport type TabsProps = React.HTMLAttributes<HTMLDivElement> & {\r\n /**\r\n * The controlled value of the tab to activate. Should be used in conjunction with `onChange`.\r\n */\r\n id?: string;\r\n /**\r\n * Set which tab is selected on mount.\r\n * This has to be one of the existing ids provided for tabs\r\n */\r\n defaultId?: string;\r\n /**\r\n * Content should be one or an array of `Tabs.Trigger` components inside `Tabs.List` and then\r\n * followed by one or an array of `Tabs.Content`.\r\n * *Note* that there can also be tabs that are rendered conditionally.\r\n */\r\n children: React.ReactNode;\r\n /**\r\n * Define orientation of tabs.\r\n * @defaultValue horizontal\r\n */\r\n orientation?: Orientation;\r\n /**\r\n * Callback that is called when tab is changed.\r\n */\r\n onChange?: (id: string) => void;\r\n};\r\n\r\nexport type TabListProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nexport type TabTriggerProps = React.HTMLAttributes<HTMLButtonElement> & {\r\n /**\r\n * A unique value that associates the trigger with a content.\r\n */\r\n id: string;\r\n /**\r\n * When true, prevents the user from interacting with the tab.\r\n */\r\n disabled?: boolean;\r\n};\r\n\r\nexport type TabContentProps = React.HTMLAttributes<HTMLDivElement> & {\r\n /**\r\n * A unique value that associates the content with a trigger.\r\n */\r\n id: string;\r\n};\r\n\r\nexport type ForwardedTabsWithStatics = React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>> & {\r\n /** Tab list component containing all tab triggers, rendered in a `Tabs` group component */\r\n List: React.ForwardRefExoticComponent<TabListProps & React.RefAttributes<HTMLDivElement>>;\r\n /** Tab trigger component rendered in a `Tabs.List` component */\r\n Trigger: React.ForwardRefExoticComponent<TabTriggerProps & React.RefAttributes<HTMLButtonElement>>;\r\n /** Tab content component rendered in a `Tabs` group component */\r\n Content: React.ForwardRefExoticComponent<TabContentProps & React.RefAttributes<HTMLDivElement>>;\r\n};\r\n\r\nexport const Tabs = React.forwardRef(function Tabs(props: TabsProps, ref: React.Ref<HTMLDivElement>) {\r\n const { id, defaultId, children, onChange, orientation = 'horizontal', ...otherProps } = props;\r\n const className = cn(\r\n 'yt-tabs',\r\n `yt-tabs--${orientation}`,\r\n {\r\n 'flex w-full': orientation === 'vertical',\r\n },\r\n props.className\r\n );\r\n\r\n return (\r\n <TabsPrimitive.Root\r\n {...otherProps}\r\n className={className}\r\n data-taco=\"tabs\"\r\n defaultValue={defaultId}\r\n dir=\"ltr\"\r\n onValueChange={onChange}\r\n orientation={orientation}\r\n ref={ref}\r\n value={id}\r\n >\r\n {children}\r\n </TabsPrimitive.Root>\r\n );\r\n}) as ForwardedTabsWithStatics;\r\n\r\nconst TabList = React.forwardRef(function Tab(props: TabListProps, ref: React.Ref<HTMLDivElement>) {\r\n const className = cn('yt-tab__list border-b border-grey-light flex flex-row m-0 mb-4', props.className);\r\n\r\n return <TabsPrimitive.List {...props} className={className} ref={ref} />;\r\n});\r\n\r\nconst TabTrigger = React.forwardRef(function Tab(props: TabTriggerProps, ref: React.Ref<HTMLButtonElement>) {\r\n const { id, disabled, ...otherProps } = props;\r\n const className = cn(\r\n 'yt-tab bg-transparent border-b-2 border-transparent text-grey-darkest m-0 py-2 px-4',\r\n disabled\r\n ? 'cursor-not-allowed !text-grey'\r\n : 'cursor-pointer rounded-t hover:border-grey-light hover:text-black active:yt-focus active:border-blue focus:yt-focus focus:border-blue',\r\n props.className\r\n );\r\n\r\n return (\r\n <TabsPrimitive.Trigger\r\n {...otherProps}\r\n className={className}\r\n disabled={disabled}\r\n ref={ref}\r\n style={{\r\n transition: 'border 0.2s ease-in',\r\n }}\r\n value={id}\r\n />\r\n );\r\n});\r\n\r\nconst TabContent = React.forwardRef(function Tab(props: TabContentProps, ref: React.Ref<HTMLDivElement>) {\r\n const { id, ...otherProps } = props;\r\n const className = cn('yt-tab__panel outline-none', props.className);\r\n\r\n return <TabsPrimitive.Content {...otherProps} className={className} ref={ref} value={id} />;\r\n});\r\n\r\nTabs.List = TabList;\r\nTabs.Trigger = TabTrigger;\r\nTabs.Content = TabContent;\r\n"],"names":["Tabs","React","props","ref","id","defaultId","children","onChange","orientation","otherProps","className","cn","TabsPrimitive","defaultValue","dir","onValueChange","value","TabList","Tab","TabTrigger","disabled","style","transition","TabContent","List","Trigger","Content"],"mappings":";;;;MA+DaA,IAAI,gBAAGC,UAAA,CAAiB,SAASD,IAAT,CAAcE,KAAd,EAAgCC,GAAhC;AACjC,QAAM;AAAEC,IAAAA,EAAF;AAAMC,IAAAA,SAAN;AAAiBC,IAAAA,QAAjB;AAA2BC,IAAAA,QAA3B;AAAqCC,IAAAA,WAAW,GAAG,YAAnD;AAAiE,OAAGC;AAApE,MAAmFP,KAAzF;AACA,QAAMQ,SAAS,GAAGC,EAAE,CAChB,SADgB,cAEJH,aAFI,EAGhB;AACI,mBAAeA,WAAW,KAAK;AADnC,GAHgB,EAMhBN,KAAK,CAACQ,SANU,CAApB;AASA,SACIT,aAAA,CAACW,IAAD,oBACQH;AACJC,IAAAA,SAAS,EAAEA;iBACD;AACVG,IAAAA,YAAY,EAAER;AACdS,IAAAA,GAAG,EAAC;AACJC,IAAAA,aAAa,EAAER;AACfC,IAAAA,WAAW,EAAEA;AACbL,IAAAA,GAAG,EAAEA;AACLa,IAAAA,KAAK,EAAEZ;IATX,EAWKE,QAXL,CADJ;AAeH,CA1BmB;AA4BpB,MAAMW,OAAO,gBAAGhB,UAAA,CAAiB,SAASiB,GAAT,CAAahB,KAAb,EAAkCC,GAAlC;AAC7B,QAAMO,SAAS,GAAGC,EAAE,CAAC,gEAAD,EAAmET,KAAK,CAACQ,SAAzE,CAApB;AAEA,SAAOT,aAAA,CAACW,IAAD,oBAAwBV;AAAOQ,IAAAA,SAAS,EAAEA;AAAWP,IAAAA,GAAG,EAAEA;IAA1D,CAAP;AACH,CAJe,CAAhB;AAMA,MAAMgB,UAAU,gBAAGlB,UAAA,CAAiB,SAASiB,GAAT,CAAahB,KAAb,EAAqCC,GAArC;AAChC,QAAM;AAAEC,IAAAA,EAAF;AAAMgB,IAAAA,QAAN;AAAgB,OAAGX;AAAnB,MAAkCP,KAAxC;AACA,QAAMQ,SAAS,GAAGC,EAAE,CAChB,qFADgB,EAEhBS,QAAQ,GACF,+BADE,GAEF,uIAJU,EAKhBlB,KAAK,CAACQ,SALU,CAApB;AAQA,SACIT,aAAA,CAACW,OAAD,oBACQH;AACJC,IAAAA,SAAS,EAAEA;AACXU,IAAAA,QAAQ,EAAEA;AACVjB,IAAAA,GAAG,EAAEA;AACLkB,IAAAA,KAAK,EAAE;AACHC,MAAAA,UAAU,EAAE;AADT;AAGPN,IAAAA,KAAK,EAAEZ;IARX,CADJ;AAYH,CAtBkB,CAAnB;AAwBA,MAAMmB,UAAU,gBAAGtB,UAAA,CAAiB,SAASiB,GAAT,CAAahB,KAAb,EAAqCC,GAArC;AAChC,QAAM;AAAEC,IAAAA,EAAF;AAAM,OAAGK;AAAT,MAAwBP,KAA9B;AACA,QAAMQ,SAAS,GAAGC,EAAE,CAAC,4BAAD,EAA+BT,KAAK,CAACQ,SAArC,CAApB;AAEA,SAAOT,aAAA,CAACW,OAAD,oBAA2BH;AAAYC,IAAAA,SAAS,EAAEA;AAAWP,IAAAA,GAAG,EAAEA;AAAKa,IAAAA,KAAK,EAAEZ;IAA9E,CAAP;AACH,CALkB,CAAnB;AAOAJ,IAAI,CAACwB,IAAL,GAAYP,OAAZ;AACAjB,IAAI,CAACyB,OAAL,GAAeN,UAAf;AACAnB,IAAI,CAAC0B,OAAL,GAAeH,UAAf;;;;"}
1
+ {"version":3,"file":"Tabs.js","sources":["../../../../src/components/Tabs/Tabs.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport cn from 'classnames';\r\nimport * as TabsPrimitive from '@radix-ui/react-tabs';\r\n\r\nimport { Orientation } from '../../types';\r\nimport './Tabs.css';\r\n\r\nexport type TabsProps = React.HTMLAttributes<HTMLDivElement> & {\r\n /**\r\n * The controlled value of the tab to activate. Should be used in conjunction with `onChange`.\r\n */\r\n id?: string;\r\n /**\r\n * Set which tab is selected on mount.\r\n * This has to be one of the existing ids provided for tabs\r\n */\r\n defaultId?: string;\r\n /**\r\n * Content should be one or an array of `Tabs.Trigger` components inside `Tabs.List` and then\r\n * followed by one or an array of `Tabs.Content`.\r\n * *Note* that there can also be tabs that are rendered conditionally.\r\n */\r\n children: React.ReactNode;\r\n /**\r\n * Define orientation of tabs.\r\n * @defaultValue horizontal\r\n */\r\n orientation?: Orientation;\r\n /**\r\n * Callback that is called when tab is changed.\r\n */\r\n onChange?: (id: string) => void;\r\n};\r\n\r\nexport type TabListProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nexport type TabTriggerProps = React.HTMLAttributes<HTMLButtonElement> & {\r\n /**\r\n * A unique value that associates the trigger with a content.\r\n */\r\n id: string;\r\n /**\r\n * When true, prevents the user from interacting with the tab.\r\n */\r\n disabled?: boolean;\r\n};\r\n\r\nexport type TabContentProps = React.HTMLAttributes<HTMLDivElement> & {\r\n /**\r\n * A unique value that associates the content with a trigger.\r\n */\r\n id: string;\r\n};\r\n\r\nexport type ForwardedTabsWithStatics = React.ForwardRefExoticComponent<TabsProps & React.RefAttributes<HTMLDivElement>> & {\r\n /** Tab list component containing all tab triggers, rendered in a `Tabs` group component */\r\n List: React.ForwardRefExoticComponent<TabListProps & React.RefAttributes<HTMLDivElement>>;\r\n /** Tab trigger component rendered in a `Tabs.List` component */\r\n Trigger: React.ForwardRefExoticComponent<TabTriggerProps & React.RefAttributes<HTMLButtonElement>>;\r\n /** Tab content component rendered in a `Tabs` group component */\r\n Content: React.ForwardRefExoticComponent<TabContentProps & React.RefAttributes<HTMLDivElement>>;\r\n};\r\n\r\nexport const Tabs = React.forwardRef(function Tabs(props: TabsProps, ref: React.Ref<HTMLDivElement>) {\r\n const { id, defaultId, children, onChange, orientation = 'horizontal', ...otherProps } = props;\r\n const className = cn(\r\n 'yt-tabs',\r\n `yt-tabs--${orientation}`,\r\n {\r\n 'flex w-full': orientation === 'vertical',\r\n },\r\n props.className\r\n );\r\n\r\n return (\r\n <TabsPrimitive.Root\r\n {...otherProps}\r\n className={className}\r\n data-taco=\"tabs\"\r\n defaultValue={defaultId}\r\n dir=\"ltr\"\r\n onValueChange={onChange}\r\n orientation={orientation}\r\n ref={ref}\r\n value={id}\r\n >\r\n {children}\r\n </TabsPrimitive.Root>\r\n );\r\n}) as ForwardedTabsWithStatics;\r\n\r\nconst TabList = React.forwardRef(function Tab(props: TabListProps, ref: React.Ref<HTMLDivElement>) {\r\n const className = cn('yt-tab__list border-b border-grey-light flex flex-row m-0 mb-4', props.className);\r\n\r\n return <TabsPrimitive.List {...props} className={className} ref={ref} />;\r\n});\r\n\r\nconst TabTrigger = React.forwardRef(function Tab(props: TabTriggerProps, ref: React.Ref<HTMLButtonElement>) {\r\n const { id, disabled, ...otherProps } = props;\r\n const className = cn(\r\n 'yt-tab bg-transparent border-b-2 border-transparent text-grey-darkest m-0 py-2 px-4',\r\n disabled\r\n ? 'cursor-not-allowed !text-grey'\r\n : 'cursor-pointer rounded-t hover:border-grey-light hover:text-black active:yt-focus active:border-blue focus:yt-focus focus:border-blue',\r\n props.className\r\n );\r\n\r\n return (\r\n <TabsPrimitive.Trigger\r\n {...otherProps}\r\n className={className}\r\n disabled={disabled}\r\n ref={ref}\r\n style={{\r\n transition: 'border 0.2s ease-in',\r\n }}\r\n value={id}\r\n />\r\n );\r\n});\r\n\r\nconst TabContent = React.forwardRef(function Tab(props: TabContentProps, ref: React.Ref<HTMLDivElement>) {\r\n const { id, ...otherProps } = props;\r\n const className = cn('yt-tab__panel outline-none', props.className);\r\n\r\n return <TabsPrimitive.Content {...otherProps} className={className} ref={ref} value={id} />;\r\n});\r\n\r\nTabs.List = TabList;\r\nTabs.Trigger = TabTrigger;\r\nTabs.Content = TabContent;\r\n"],"names":["Tabs","React","props","ref","id","defaultId","children","onChange","orientation","otherProps","className","cn","TabsPrimitive","defaultValue","dir","onValueChange","value","TabList","Tab","TabTrigger","disabled","style","transition","TabContent","List","Trigger","Content"],"mappings":";;;;;;;;IA+DaA,IAAI,gBAAGC,UAAA,CAAiB,SAASD,IAAT,CAAcE,KAAd,EAAgCC,GAAhC;AACjC,MAAQC,EAAR,GAAyFF,KAAzF,CAAQE,EAAR;AAAA,MAAYC,SAAZ,GAAyFH,KAAzF,CAAYG,SAAZ;AAAA,MAAuBC,QAAvB,GAAyFJ,KAAzF,CAAuBI,QAAvB;AAAA,MAAiCC,QAAjC,GAAyFL,KAAzF,CAAiCK,QAAjC;AAAA,2BAAyFL,KAAzF,CAA2CM,WAA3C;AAAA,MAA2CA,WAA3C,mCAAyD,YAAzD;AAAA,MAA0EC,UAA1E,iCAAyFP,KAAzF;;AACA,MAAMQ,SAAS,GAAGC,EAAE,CAChB,SADgB,gBAEJH,WAFI,EAGhB;AACI,mBAAeA,WAAW,KAAK;AADnC,GAHgB,EAMhBN,KAAK,CAACQ,SANU,CAApB;AASA,SACIT,aAAA,CAACW,IAAD,oBACQH;AACJC,IAAAA,SAAS,EAAEA;iBACD;AACVG,IAAAA,YAAY,EAAER;AACdS,IAAAA,GAAG,EAAC;AACJC,IAAAA,aAAa,EAAER;AACfC,IAAAA,WAAW,EAAEA;AACbL,IAAAA,GAAG,EAAEA;AACLa,IAAAA,KAAK,EAAEZ;IATX,EAWKE,QAXL,CADJ;AAeH,CA1BmB;AA4BpB,IAAMW,OAAO,gBAAGhB,UAAA,CAAiB,SAASiB,GAAT,CAAahB,KAAb,EAAkCC,GAAlC;AAC7B,MAAMO,SAAS,GAAGC,EAAE,CAAC,gEAAD,EAAmET,KAAK,CAACQ,SAAzE,CAApB;AAEA,SAAOT,aAAA,CAACW,IAAD,oBAAwBV;AAAOQ,IAAAA,SAAS,EAAEA;AAAWP,IAAAA,GAAG,EAAEA;IAA1D,CAAP;AACH,CAJe,CAAhB;AAMA,IAAMgB,UAAU,gBAAGlB,UAAA,CAAiB,SAASiB,GAAT,CAAahB,KAAb,EAAqCC,GAArC;AAChC,MAAQC,EAAR,GAAwCF,KAAxC,CAAQE,EAAR;AAAA,MAAYgB,QAAZ,GAAwClB,KAAxC,CAAYkB,QAAZ;AAAA,MAAyBX,UAAzB,iCAAwCP,KAAxC;;AACA,MAAMQ,SAAS,GAAGC,EAAE,CAChB,qFADgB,EAEhBS,QAAQ,GACF,+BADE,GAEF,uIAJU,EAKhBlB,KAAK,CAACQ,SALU,CAApB;AAQA,SACIT,aAAA,CAACW,OAAD,oBACQH;AACJC,IAAAA,SAAS,EAAEA;AACXU,IAAAA,QAAQ,EAAEA;AACVjB,IAAAA,GAAG,EAAEA;AACLkB,IAAAA,KAAK,EAAE;AACHC,MAAAA,UAAU,EAAE;AADT;AAGPN,IAAAA,KAAK,EAAEZ;IARX,CADJ;AAYH,CAtBkB,CAAnB;AAwBA,IAAMmB,UAAU,gBAAGtB,UAAA,CAAiB,SAASiB,GAAT,CAAahB,KAAb,EAAqCC,GAArC;AAChC,MAAQC,EAAR,GAA8BF,KAA9B,CAAQE,EAAR;AAAA,MAAeK,UAAf,iCAA8BP,KAA9B;;AACA,MAAMQ,SAAS,GAAGC,EAAE,CAAC,4BAAD,EAA+BT,KAAK,CAACQ,SAArC,CAApB;AAEA,SAAOT,aAAA,CAACW,OAAD,oBAA2BH;AAAYC,IAAAA,SAAS,EAAEA;AAAWP,IAAAA,GAAG,EAAEA;AAAKa,IAAAA,KAAK,EAAEZ;IAA9E,CAAP;AACH,CALkB,CAAnB;AAOAJ,IAAI,CAACwB,IAAL,GAAYP,OAAZ;AACAjB,IAAI,CAACyB,OAAL,GAAeN,UAAf;AACAnB,IAAI,CAAC0B,OAAL,GAAeH,UAAf;;;;"}
@@ -1,23 +1,21 @@
1
+ import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import { forwardRef, createElement } from 'react';
2
3
  import cn from 'classnames';
3
4
  import { getInputClasses } from '../Input/util.js';
4
5
 
5
- const Textarea = /*#__PURE__*/forwardRef(function Textarea(props, ref) {
6
- const {
7
- defaultValue: _,
8
- highlighted,
9
- invalid,
10
- onKeyDown,
11
- ...otherProps
12
- } = props;
13
- const classNames = cn(getInputClasses(props), 'py-1 min-h-[75px] disabled:resize-none', props.className); // home and end keys only navigate to the start/end of textarea value if the textarea container does not scroll
6
+ var _excluded = ["defaultValue", "highlighted", "invalid", "onKeyDown"];
7
+ var Textarea = /*#__PURE__*/forwardRef(function Textarea(props, ref) {
8
+ var onKeyDown = props.onKeyDown,
9
+ otherProps = _objectWithoutPropertiesLoose(props, _excluded);
10
+
11
+ var classNames = cn(getInputClasses(props), 'py-1 min-h-[75px] disabled:resize-none', props.className); // home and end keys only navigate to the start/end of textarea value if the textarea container does not scroll
14
12
  // if it has scroll height then the browser reverts to native scrolling behaviour only
15
13
  // so we manually override it to ensure _our_ desired behaviour remains intact
16
14
 
17
- const handleKeyDown = event => {
15
+ var handleKeyDown = function handleKeyDown(event) {
18
16
  if (event.key === 'Home' || event.key === 'End') {
19
17
  event.preventDefault();
20
- const position = event.key === 'End' ? event.currentTarget.value.length : 0;
18
+ var position = event.key === 'End' ? event.currentTarget.value.length : 0;
21
19
  event.currentTarget.setSelectionRange(position, position);
22
20
  event.currentTarget.scrollTop = event.key === 'End' ? event.currentTarget.scrollHeight : 0;
23
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.js","sources":["../../../../src/components/Textarea/Textarea.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport cn from 'classnames';\r\nimport { getInputClasses } from '../Input/util';\r\n\r\nexport type TextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement> & {\r\n /** Draws attention to the textarea by changing its style and making it visually prominent */\r\n highlighted?: boolean;\r\n /* Whether the input is in an invalid state */\r\n invalid?: boolean;\r\n /** Value of the textarea */\r\n value?: string;\r\n};\r\n\r\nexport const Textarea = React.forwardRef(function Textarea(props: TextareaProps, ref: React.Ref<HTMLTextAreaElement>) {\r\n const { defaultValue: _, highlighted, invalid, onKeyDown, ...otherProps } = props;\r\n const classNames = cn(getInputClasses(props), 'py-1 min-h-[75px] disabled:resize-none', props.className);\r\n\r\n // home and end keys only navigate to the start/end of textarea value if the textarea container does not scroll\r\n // if it has scroll height then the browser reverts to native scrolling behaviour only\r\n // so we manually override it to ensure _our_ desired behaviour remains intact\r\n const handleKeyDown = (event: React.KeyboardEvent<HTMLTextAreaElement>) => {\r\n if (event.key === 'Home' || event.key === 'End') {\r\n event.preventDefault();\r\n const position = event.key === 'End' ? event.currentTarget.value.length : 0;\r\n event.currentTarget.setSelectionRange(position, position);\r\n event.currentTarget.scrollTop = event.key === 'End' ? event.currentTarget.scrollHeight : 0;\r\n }\r\n\r\n if (onKeyDown) {\r\n onKeyDown(event);\r\n }\r\n };\r\n\r\n return <textarea {...otherProps} className={classNames} data-taco=\"textarea\" onKeyDown={handleKeyDown} ref={ref} />;\r\n});\r\n"],"names":["Textarea","React","props","ref","defaultValue","_","highlighted","invalid","onKeyDown","otherProps","classNames","cn","getInputClasses","className","handleKeyDown","event","key","preventDefault","position","currentTarget","value","length","setSelectionRange","scrollTop","scrollHeight"],"mappings":";;;;MAaaA,QAAQ,gBAAGC,UAAA,CAAiB,SAASD,QAAT,CAAkBE,KAAlB,EAAwCC,GAAxC;AACrC,QAAM;AAAEC,IAAAA,YAAY,EAAEC,CAAhB;AAAmBC,IAAAA,WAAnB;AAAgCC,IAAAA,OAAhC;AAAyCC,IAAAA,SAAzC;AAAoD,OAAGC;AAAvD,MAAsEP,KAA5E;AACA,QAAMQ,UAAU,GAAGC,EAAE,CAACC,eAAe,CAACV,KAAD,CAAhB,EAAyB,wCAAzB,EAAmEA,KAAK,CAACW,SAAzE,CAArB;AAGA;AACA;;AACA,QAAMC,aAAa,GAAIC,KAAD;AAClB,QAAIA,KAAK,CAACC,GAAN,KAAc,MAAd,IAAwBD,KAAK,CAACC,GAAN,KAAc,KAA1C,EAAiD;AAC7CD,MAAAA,KAAK,CAACE,cAAN;AACA,YAAMC,QAAQ,GAAGH,KAAK,CAACC,GAAN,KAAc,KAAd,GAAsBD,KAAK,CAACI,aAAN,CAAoBC,KAApB,CAA0BC,MAAhD,GAAyD,CAA1E;AACAN,MAAAA,KAAK,CAACI,aAAN,CAAoBG,iBAApB,CAAsCJ,QAAtC,EAAgDA,QAAhD;AACAH,MAAAA,KAAK,CAACI,aAAN,CAAoBI,SAApB,GAAgCR,KAAK,CAACC,GAAN,KAAc,KAAd,GAAsBD,KAAK,CAACI,aAAN,CAAoBK,YAA1C,GAAyD,CAAzF;AACH;;AAED,QAAIhB,SAAJ,EAAe;AACXA,MAAAA,SAAS,CAACO,KAAD,CAAT;AACH;AACJ,GAXD;;AAaA,SAAOd,aAAA,WAAA,oBAAcQ;AAAYI,IAAAA,SAAS,EAAEH;iBAAsB;AAAWF,IAAAA,SAAS,EAAEM;AAAeX,IAAAA,GAAG,EAAEA;IAArG,CAAP;AACH,CArBuB;;;;"}
1
+ {"version":3,"file":"Textarea.js","sources":["../../../../src/components/Textarea/Textarea.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport cn from 'classnames';\r\nimport { getInputClasses } from '../Input/util';\r\n\r\nexport type TextareaProps = React.TextareaHTMLAttributes<HTMLTextAreaElement> & {\r\n /** Draws attention to the textarea by changing its style and making it visually prominent */\r\n highlighted?: boolean;\r\n /* Whether the input is in an invalid state */\r\n invalid?: boolean;\r\n /** Value of the textarea */\r\n value?: string;\r\n};\r\n\r\nexport const Textarea = React.forwardRef(function Textarea(props: TextareaProps, ref: React.Ref<HTMLTextAreaElement>) {\r\n const { defaultValue: _, highlighted, invalid, onKeyDown, ...otherProps } = props;\r\n const classNames = cn(getInputClasses(props), 'py-1 min-h-[75px] disabled:resize-none', props.className);\r\n\r\n // home and end keys only navigate to the start/end of textarea value if the textarea container does not scroll\r\n // if it has scroll height then the browser reverts to native scrolling behaviour only\r\n // so we manually override it to ensure _our_ desired behaviour remains intact\r\n const handleKeyDown = (event: React.KeyboardEvent<HTMLTextAreaElement>) => {\r\n if (event.key === 'Home' || event.key === 'End') {\r\n event.preventDefault();\r\n const position = event.key === 'End' ? event.currentTarget.value.length : 0;\r\n event.currentTarget.setSelectionRange(position, position);\r\n event.currentTarget.scrollTop = event.key === 'End' ? event.currentTarget.scrollHeight : 0;\r\n }\r\n\r\n if (onKeyDown) {\r\n onKeyDown(event);\r\n }\r\n };\r\n\r\n return <textarea {...otherProps} className={classNames} data-taco=\"textarea\" onKeyDown={handleKeyDown} ref={ref} />;\r\n});\r\n"],"names":["Textarea","React","props","ref","onKeyDown","otherProps","classNames","cn","getInputClasses","className","handleKeyDown","event","key","preventDefault","position","currentTarget","value","length","setSelectionRange","scrollTop","scrollHeight"],"mappings":";;;;;;IAaaA,QAAQ,gBAAGC,UAAA,CAAiB,SAASD,QAAT,CAAkBE,KAAlB,EAAwCC,GAAxC;AACrC,MAA+CC,SAA/C,GAA4EF,KAA5E,CAA+CE,SAA/C;AAAA,MAA6DC,UAA7D,iCAA4EH,KAA5E;;AACA,MAAMI,UAAU,GAAGC,EAAE,CAACC,eAAe,CAACN,KAAD,CAAhB,EAAyB,wCAAzB,EAAmEA,KAAK,CAACO,SAAzE,CAArB;AAGA;AACA;;AACA,MAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD;AAClB,QAAIA,KAAK,CAACC,GAAN,KAAc,MAAd,IAAwBD,KAAK,CAACC,GAAN,KAAc,KAA1C,EAAiD;AAC7CD,MAAAA,KAAK,CAACE,cAAN;AACA,UAAMC,QAAQ,GAAGH,KAAK,CAACC,GAAN,KAAc,KAAd,GAAsBD,KAAK,CAACI,aAAN,CAAoBC,KAApB,CAA0BC,MAAhD,GAAyD,CAA1E;AACAN,MAAAA,KAAK,CAACI,aAAN,CAAoBG,iBAApB,CAAsCJ,QAAtC,EAAgDA,QAAhD;AACAH,MAAAA,KAAK,CAACI,aAAN,CAAoBI,SAApB,GAAgCR,KAAK,CAACC,GAAN,KAAc,KAAd,GAAsBD,KAAK,CAACI,aAAN,CAAoBK,YAA1C,GAAyD,CAAzF;AACH;;AAED,QAAIhB,SAAJ,EAAe;AACXA,MAAAA,SAAS,CAACO,KAAD,CAAT;AACH;AACJ,GAXD;;AAaA,SAAOV,aAAA,WAAA,oBAAcI;AAAYI,IAAAA,SAAS,EAAEH;iBAAsB;AAAWF,IAAAA,SAAS,EAAEM;AAAeP,IAAAA,GAAG,EAAEA;IAArG,CAAP;AACH,CArBuB;;;;"}
@@ -1,51 +1,65 @@
1
+ import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import { useState, useCallback, useEffect, createElement, useContext, createContext } from 'react';
2
3
  import { v4 } from 'uuid';
3
4
  import { AnimatePresence, motion } from 'framer-motion';
4
5
  import { Toast } from './Toast.js';
5
6
 
6
- const DEFAULT_AUTO_CLOSE_TIMEOUT = 7500;
7
- const ToastContext = /*#__PURE__*/createContext({});
7
+ var _excluded = ["children"];
8
+ var DEFAULT_AUTO_CLOSE_TIMEOUT = 7500;
9
+ var ToastContext = /*#__PURE__*/createContext({});
8
10
 
9
- const insertToastWithoutDuplicates = (currentToasts, id, content, options, close) => {
10
- const nextToasts = [...currentToasts];
11
- const existingToastIndex = currentToasts.findIndex(toast => JSON.stringify(toast.content) === JSON.stringify(content));
11
+ var insertToastWithoutDuplicates = function insertToastWithoutDuplicates(currentToasts, id, content, options, close) {
12
+ var nextToasts = [].concat(currentToasts);
13
+ var existingToastIndex = currentToasts.findIndex(function (toast) {
14
+ return JSON.stringify(toast.content) === JSON.stringify(content);
15
+ });
12
16
 
13
17
  if (existingToastIndex > -1) {
14
18
  nextToasts[existingToastIndex].lastDuplicateId = id;
15
19
  nextToasts[existingToastIndex].lastUpdated = Date.now();
16
20
  } else {
17
21
  nextToasts.push({
18
- id,
22
+ id: id,
19
23
  content: typeof content === 'function' ? content(close) : content,
20
- options
24
+ options: options
21
25
  });
22
26
  }
23
27
 
24
28
  return nextToasts;
25
29
  };
26
30
 
27
- const ToastProvider = ({
28
- children,
29
- ...props
30
- }) => {
31
- const [toasts, setToasts] = useState([]);
31
+ var ToastProvider = function ToastProvider(_ref) {
32
+ var children = _ref.children,
33
+ props = _objectWithoutPropertiesLoose(_ref, _excluded);
32
34
 
33
- const handleClose = id => {
34
- setToasts(currentToasts => currentToasts.filter(toast => toast.id !== id));
35
+ var _React$useState = useState([]),
36
+ toasts = _React$useState[0],
37
+ setToasts = _React$useState[1];
38
+
39
+ var handleClose = function handleClose(id) {
40
+ setToasts(function (currentToasts) {
41
+ return currentToasts.filter(function (toast) {
42
+ return toast.id !== id;
43
+ });
44
+ });
35
45
  }; // memoize (useCallback) this function,
36
46
  // it is the value of the context provider and we don't want it to trigger state tree re-renders on provider children
37
47
 
38
48
 
39
- const toaster = useCallback((content, options) => {
40
- const id = v4();
49
+ var toaster = useCallback(function (content, options) {
50
+ var id = v4();
41
51
 
42
- const close = () => handleClose(id);
52
+ var close = function close() {
53
+ return handleClose(id);
54
+ };
43
55
 
44
- setToasts(currentToasts => insertToastWithoutDuplicates(currentToasts, id, content, options, close));
56
+ setToasts(function (currentToasts) {
57
+ return insertToastWithoutDuplicates(currentToasts, id, content, options, close);
58
+ });
45
59
 
46
- const update = (content, options) => {
47
- setToasts(currentToasts => {
48
- const nextToasts = currentToasts.filter(toast => {
60
+ var update = function update(content, options) {
61
+ setToasts(function (currentToasts) {
62
+ var nextToasts = currentToasts.filter(function (toast) {
49
63
  if (toast.lastDuplicateId) {
50
64
  return toast.lastDuplicateId !== id;
51
65
  }
@@ -56,70 +70,80 @@ const ToastProvider = ({
56
70
  });
57
71
  };
58
72
 
59
- const success = (content, options) => {
60
- update(content, {
61
- autoClose: DEFAULT_AUTO_CLOSE_TIMEOUT,
62
- ...options,
73
+ var success = function success(content, options) {
74
+ update(content, _extends({
75
+ autoClose: DEFAULT_AUTO_CLOSE_TIMEOUT
76
+ }, options, {
63
77
  type: 'success'
64
- });
78
+ }));
65
79
  };
66
80
 
67
- const error = (content, options) => {
68
- update(content, { ...options,
81
+ var error = function error(content, options) {
82
+ update(content, _extends({}, options, {
69
83
  type: 'error'
70
- });
84
+ }));
71
85
  };
72
86
 
73
- const warning = (content, options) => {
74
- update(content, { ...options,
87
+ var warning = function warning(content, options) {
88
+ update(content, _extends({}, options, {
75
89
  type: 'warning'
76
- });
90
+ }));
77
91
  };
78
92
 
79
- const information = (content, options) => {
80
- update(content, { ...options,
93
+ var information = function information(content, options) {
94
+ update(content, _extends({}, options, {
81
95
  type: 'information'
82
- });
96
+ }));
83
97
  };
84
98
 
85
- const loading = (content, options) => {
86
- update(content, { ...options,
99
+ var loading = function loading(content, options) {
100
+ update(content, _extends({}, options, {
87
101
  type: 'loading'
88
- });
102
+ }));
89
103
  };
90
104
 
91
105
  return {
92
- success,
93
- error,
94
- warning,
95
- information,
96
- loading,
97
- close
106
+ success: success,
107
+ error: error,
108
+ warning: warning,
109
+ information: information,
110
+ loading: loading,
111
+ close: close
98
112
  };
99
113
  }, []); // no need to rebind these every render, do them once in an effect
100
114
 
101
- useEffect(() => {
102
- toaster.success = (content, options) => toaster(content, {
103
- autoClose: DEFAULT_AUTO_CLOSE_TIMEOUT,
104
- ...options,
105
- type: 'success'
106
- });
115
+ useEffect(function () {
116
+ toaster.success = function (content, options) {
117
+ return toaster(content, _extends({
118
+ autoClose: DEFAULT_AUTO_CLOSE_TIMEOUT
119
+ }, options, {
120
+ type: 'success'
121
+ }));
122
+ };
107
123
 
108
- toaster.error = (content, options) => toaster(content, { ...options,
109
- type: 'error'
110
- });
124
+ toaster.error = function (content, options) {
125
+ return toaster(content, _extends({}, options, {
126
+ type: 'error'
127
+ }));
128
+ };
111
129
 
112
- toaster.warning = (content, options) => toaster(content, { ...options,
113
- type: 'warning'
114
- });
130
+ toaster.warning = function (content, options) {
131
+ return toaster(content, _extends({}, options, {
132
+ type: 'warning'
133
+ }));
134
+ };
115
135
 
116
- toaster.information = (content, options) => toaster(content, { ...options,
117
- type: 'information'
118
- });
136
+ toaster.information = function (content, options) {
137
+ return toaster(content, _extends({}, options, {
138
+ type: 'information'
139
+ }));
140
+ };
119
141
 
120
- toaster.loading = (content, options) => toaster(content, { ...options,
121
- type: 'loading'
122
- });
142
+ toaster.loading = function (content, options) {
143
+ return toaster(content, _extends({}, options, {
144
+ type: 'loading'
145
+ }));
146
+ };
123
147
  }, []);
124
148
  return createElement(ToastContext.Provider, Object.assign({}, props, {
125
149
  value: toaster
@@ -129,35 +153,41 @@ const ToastProvider = ({
129
153
  role: "log"
130
154
  }, createElement(AnimatePresence, {
131
155
  initial: false
132
- }, toasts.map(toast => createElement(motion.div, {
133
- key: toast.id,
134
- transition: {
135
- type: 'spring',
136
- damping: 20,
137
- stiffness: 300
138
- },
139
- initial: {
140
- opacity: 0,
141
- y: 10,
142
- scale: 0.5
143
- },
144
- animate: {
145
- opacity: 1,
146
- y: 0,
147
- scale: 1
148
- },
149
- exit: {
150
- opacity: 0,
151
- scale: 0.5,
156
+ }, toasts.map(function (toast) {
157
+ return createElement(motion.div, {
158
+ key: toast.id,
152
159
  transition: {
153
- duration: 0.2
160
+ type: 'spring',
161
+ damping: 20,
162
+ stiffness: 300
163
+ },
164
+ initial: {
165
+ opacity: 0,
166
+ y: 10,
167
+ scale: 0.5
168
+ },
169
+ animate: {
170
+ opacity: 1,
171
+ y: 0,
172
+ scale: 1
173
+ },
174
+ exit: {
175
+ opacity: 0,
176
+ scale: 0.5,
177
+ transition: {
178
+ duration: 0.2
179
+ }
180
+ }
181
+ }, createElement(Toast, Object.assign({}, toast, {
182
+ onClose: function onClose() {
183
+ return handleClose(toast.id);
154
184
  }
155
- }
156
- }, createElement(Toast, Object.assign({}, toast, {
157
- onClose: () => handleClose(toast.id)
158
- })))))));
185
+ })));
186
+ }))));
187
+ };
188
+ var useToast = function useToast() {
189
+ return useContext(ToastContext);
159
190
  };
160
- const useToast = () => useContext(ToastContext);
161
191
 
162
192
  export { ToastProvider, useToast };
163
193
  //# sourceMappingURL=Toaster.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toaster.js","sources":["../../../../src/components/Toast/Toaster.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { v4 as uuid } from 'uuid';\r\nimport { AnimatePresence, motion } from 'framer-motion';\r\nimport { ToastOptions, Toast, ToastProps } from './Toast';\r\nimport './Toast.css';\r\n\r\nconst DEFAULT_AUTO_CLOSE_TIMEOUT = 7500;\r\n\r\ntype ToastCreator<T> = (content: React.ReactNode | ((close: () => void) => React.ReactNode), options?: ToastOptions) => T;\r\n\r\nexport interface Toaster<T> extends ToastCreator<T> {\r\n success: ToastCreator<T>;\r\n error: ToastCreator<T>;\r\n warning: ToastCreator<T>;\r\n information: ToastCreator<T>;\r\n loading: ToastCreator<T>;\r\n}\r\n\r\nexport interface ToastReference {\r\n /** Show a success toast */\r\n success: ToastCreator<void>;\r\n /** Show an error toast */\r\n error: ToastCreator<void>;\r\n /** Show a warning toast */\r\n warning: ToastCreator<void>;\r\n /** Show an information toast */\r\n information: ToastCreator<void>;\r\n /** Show a loading toast */\r\n loading: ToastCreator<void>;\r\n /**\r\n * Close an existing toast.\r\n * The toast function returns a reference to the active toast,\r\n * allowing you to programmatically close it when needed\r\n */\r\n close: () => void;\r\n}\r\n\r\nconst ToastContext = React.createContext<Toaster<ToastReference>>({} as Toaster<ToastReference>);\r\n\r\nexport interface ToastProviderProps {\r\n children: React.ReactNode;\r\n}\r\n\r\ntype InternalToast = Omit<ToastProps, 'onClose'>;\r\n\r\nconst insertToastWithoutDuplicates = (\r\n currentToasts: InternalToast[],\r\n id: string,\r\n content: React.ReactNode,\r\n options: ToastOptions,\r\n close: () => void\r\n): InternalToast[] => {\r\n const nextToasts = [...currentToasts];\r\n const existingToastIndex = currentToasts.findIndex(toast => JSON.stringify(toast.content) === JSON.stringify(content));\r\n\r\n if (existingToastIndex > -1) {\r\n nextToasts[existingToastIndex].lastDuplicateId = id;\r\n nextToasts[existingToastIndex].lastUpdated = Date.now();\r\n } else {\r\n nextToasts.push({\r\n id,\r\n content: typeof content === 'function' ? content(close) : content,\r\n options,\r\n });\r\n }\r\n\r\n return nextToasts;\r\n};\r\n\r\nexport const ToastProvider = ({ children, ...props }: ToastProviderProps): JSX.Element => {\r\n const [toasts, setToasts] = React.useState<InternalToast[]>([]);\r\n\r\n const handleClose = (id: string): void => {\r\n setToasts(currentToasts => currentToasts.filter(toast => toast.id !== id));\r\n };\r\n\r\n // memoize (useCallback) this function,\r\n // it is the value of the context provider and we don't want it to trigger state tree re-renders on provider children\r\n const toaster = React.useCallback((content: React.ReactNode, options: ToastOptions): ToastReference => {\r\n const id = uuid();\r\n const close = (): void => handleClose(id);\r\n\r\n setToasts(currentToasts => insertToastWithoutDuplicates(currentToasts, id, content, options, close));\r\n\r\n const update = (content: React.ReactNode, options: ToastOptions): void => {\r\n setToasts(currentToasts => {\r\n const nextToasts = currentToasts.filter(toast => {\r\n if (toast.lastDuplicateId) {\r\n return toast.lastDuplicateId !== id;\r\n }\r\n\r\n return toast.id !== id;\r\n });\r\n return insertToastWithoutDuplicates(nextToasts, uuid(), content, options, close);\r\n });\r\n };\r\n\r\n const success = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\r\n update(content, { autoClose: DEFAULT_AUTO_CLOSE_TIMEOUT, ...options, type: 'success' });\r\n };\r\n const error = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\r\n update(content, { ...options, type: 'error' });\r\n };\r\n const warning = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\r\n update(content, { ...options, type: 'warning' });\r\n };\r\n const information = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\r\n update(content, { ...options, type: 'information' });\r\n };\r\n const loading = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\r\n update(content, { ...options, type: 'loading' });\r\n };\r\n\r\n return {\r\n success,\r\n error,\r\n warning,\r\n information,\r\n loading,\r\n close,\r\n };\r\n }, []) as Toaster<ToastReference>;\r\n\r\n // no need to rebind these every render, do them once in an effect\r\n React.useEffect(() => {\r\n toaster.success = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\r\n toaster(content, { autoClose: DEFAULT_AUTO_CLOSE_TIMEOUT, ...options, type: 'success' });\r\n toaster.error = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\r\n toaster(content, { ...options, type: 'error' });\r\n toaster.warning = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\r\n toaster(content, { ...options, type: 'warning' });\r\n toaster.information = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\r\n toaster(content, { ...options, type: 'information' });\r\n toaster.loading = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\r\n toaster(content, { ...options, type: 'loading' });\r\n }, []);\r\n\r\n return (\r\n <ToastContext.Provider {...props} value={toaster}>\r\n {children}\r\n <div\r\n id=\"yt-toast__container\"\r\n className=\"pointer-events-all absolute bottom-0 right-0 !left-auto z-[1000] mb-4 mr-4 flex max-w-md flex-col items-end justify-end\"\r\n role=\"log\"\r\n >\r\n <AnimatePresence initial={false}>\r\n {toasts.map((toast: ToastProps) => (\r\n <motion.div\r\n key={toast.id}\r\n transition={{\r\n type: 'spring',\r\n damping: 20,\r\n stiffness: 300,\r\n }}\r\n initial={{ opacity: 0, y: 10, scale: 0.5 }}\r\n animate={{ opacity: 1, y: 0, scale: 1 }}\r\n exit={{ opacity: 0, scale: 0.5, transition: { duration: 0.2 } }}\r\n >\r\n <Toast {...toast} onClose={() => handleClose(toast.id)} />\r\n </motion.div>\r\n ))}\r\n </AnimatePresence>\r\n </div>\r\n </ToastContext.Provider>\r\n );\r\n};\r\n\r\nexport const useToast = (): Toaster<ToastReference> => React.useContext(ToastContext);\r\n"],"names":["DEFAULT_AUTO_CLOSE_TIMEOUT","ToastContext","React","insertToastWithoutDuplicates","currentToasts","id","content","options","close","nextToasts","existingToastIndex","findIndex","toast","JSON","stringify","lastDuplicateId","lastUpdated","Date","now","push","ToastProvider","children","props","toasts","setToasts","handleClose","filter","toaster","uuid","update","success","autoClose","type","error","warning","information","loading","Provider","value","className","role","AnimatePresence","initial","map","motion","div","key","transition","damping","stiffness","opacity","y","scale","animate","exit","duration","Toast","onClose","useToast"],"mappings":"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"}
1
+ {"version":3,"file":"Toaster.js","sources":["../../../../src/components/Toast/Toaster.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { v4 as uuid } from 'uuid';\r\nimport { AnimatePresence, motion } from 'framer-motion';\r\nimport { ToastOptions, Toast, ToastProps } from './Toast';\r\nimport './Toast.css';\r\n\r\nconst DEFAULT_AUTO_CLOSE_TIMEOUT = 7500;\r\n\r\ntype ToastCreator<T> = (content: React.ReactNode | ((close: () => void) => React.ReactNode), options?: ToastOptions) => T;\r\n\r\nexport interface Toaster<T> extends ToastCreator<T> {\r\n success: ToastCreator<T>;\r\n error: ToastCreator<T>;\r\n warning: ToastCreator<T>;\r\n information: ToastCreator<T>;\r\n loading: ToastCreator<T>;\r\n}\r\n\r\nexport interface ToastReference {\r\n /** Show a success toast */\r\n success: ToastCreator<void>;\r\n /** Show an error toast */\r\n error: ToastCreator<void>;\r\n /** Show a warning toast */\r\n warning: ToastCreator<void>;\r\n /** Show an information toast */\r\n information: ToastCreator<void>;\r\n /** Show a loading toast */\r\n loading: ToastCreator<void>;\r\n /**\r\n * Close an existing toast.\r\n * The toast function returns a reference to the active toast,\r\n * allowing you to programmatically close it when needed\r\n */\r\n close: () => void;\r\n}\r\n\r\nconst ToastContext = React.createContext<Toaster<ToastReference>>({} as Toaster<ToastReference>);\r\n\r\nexport interface ToastProviderProps {\r\n children: React.ReactNode;\r\n}\r\n\r\ntype InternalToast = Omit<ToastProps, 'onClose'>;\r\n\r\nconst insertToastWithoutDuplicates = (\r\n currentToasts: InternalToast[],\r\n id: string,\r\n content: React.ReactNode,\r\n options: ToastOptions,\r\n close: () => void\r\n): InternalToast[] => {\r\n const nextToasts = [...currentToasts];\r\n const existingToastIndex = currentToasts.findIndex(toast => JSON.stringify(toast.content) === JSON.stringify(content));\r\n\r\n if (existingToastIndex > -1) {\r\n nextToasts[existingToastIndex].lastDuplicateId = id;\r\n nextToasts[existingToastIndex].lastUpdated = Date.now();\r\n } else {\r\n nextToasts.push({\r\n id,\r\n content: typeof content === 'function' ? content(close) : content,\r\n options,\r\n });\r\n }\r\n\r\n return nextToasts;\r\n};\r\n\r\nexport const ToastProvider = ({ children, ...props }: ToastProviderProps): JSX.Element => {\r\n const [toasts, setToasts] = React.useState<InternalToast[]>([]);\r\n\r\n const handleClose = (id: string): void => {\r\n setToasts(currentToasts => currentToasts.filter(toast => toast.id !== id));\r\n };\r\n\r\n // memoize (useCallback) this function,\r\n // it is the value of the context provider and we don't want it to trigger state tree re-renders on provider children\r\n const toaster = React.useCallback((content: React.ReactNode, options: ToastOptions): ToastReference => {\r\n const id = uuid();\r\n const close = (): void => handleClose(id);\r\n\r\n setToasts(currentToasts => insertToastWithoutDuplicates(currentToasts, id, content, options, close));\r\n\r\n const update = (content: React.ReactNode, options: ToastOptions): void => {\r\n setToasts(currentToasts => {\r\n const nextToasts = currentToasts.filter(toast => {\r\n if (toast.lastDuplicateId) {\r\n return toast.lastDuplicateId !== id;\r\n }\r\n\r\n return toast.id !== id;\r\n });\r\n return insertToastWithoutDuplicates(nextToasts, uuid(), content, options, close);\r\n });\r\n };\r\n\r\n const success = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\r\n update(content, { autoClose: DEFAULT_AUTO_CLOSE_TIMEOUT, ...options, type: 'success' });\r\n };\r\n const error = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\r\n update(content, { ...options, type: 'error' });\r\n };\r\n const warning = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\r\n update(content, { ...options, type: 'warning' });\r\n };\r\n const information = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\r\n update(content, { ...options, type: 'information' });\r\n };\r\n const loading = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): void => {\r\n update(content, { ...options, type: 'loading' });\r\n };\r\n\r\n return {\r\n success,\r\n error,\r\n warning,\r\n information,\r\n loading,\r\n close,\r\n };\r\n }, []) as Toaster<ToastReference>;\r\n\r\n // no need to rebind these every render, do them once in an effect\r\n React.useEffect(() => {\r\n toaster.success = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\r\n toaster(content, { autoClose: DEFAULT_AUTO_CLOSE_TIMEOUT, ...options, type: 'success' });\r\n toaster.error = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\r\n toaster(content, { ...options, type: 'error' });\r\n toaster.warning = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\r\n toaster(content, { ...options, type: 'warning' });\r\n toaster.information = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\r\n toaster(content, { ...options, type: 'information' });\r\n toaster.loading = (content: React.ReactNode, options?: Omit<ToastOptions, 'type'>): ToastReference =>\r\n toaster(content, { ...options, type: 'loading' });\r\n }, []);\r\n\r\n return (\r\n <ToastContext.Provider {...props} value={toaster}>\r\n {children}\r\n <div\r\n id=\"yt-toast__container\"\r\n className=\"pointer-events-all absolute bottom-0 right-0 !left-auto z-[1000] mb-4 mr-4 flex max-w-md flex-col items-end justify-end\"\r\n role=\"log\"\r\n >\r\n <AnimatePresence initial={false}>\r\n {toasts.map((toast: ToastProps) => (\r\n <motion.div\r\n key={toast.id}\r\n transition={{\r\n type: 'spring',\r\n damping: 20,\r\n stiffness: 300,\r\n }}\r\n initial={{ opacity: 0, y: 10, scale: 0.5 }}\r\n animate={{ opacity: 1, y: 0, scale: 1 }}\r\n exit={{ opacity: 0, scale: 0.5, transition: { duration: 0.2 } }}\r\n >\r\n <Toast {...toast} onClose={() => handleClose(toast.id)} />\r\n </motion.div>\r\n ))}\r\n </AnimatePresence>\r\n </div>\r\n </ToastContext.Provider>\r\n );\r\n};\r\n\r\nexport const useToast = (): Toaster<ToastReference> => React.useContext(ToastContext);\r\n"],"names":["DEFAULT_AUTO_CLOSE_TIMEOUT","ToastContext","React","insertToastWithoutDuplicates","currentToasts","id","content","options","close","nextToasts","existingToastIndex","findIndex","toast","JSON","stringify","lastDuplicateId","lastUpdated","Date","now","push","ToastProvider","children","props","toasts","setToasts","handleClose","filter","toaster","uuid","update","success","autoClose","type","error","warning","information","loading","Provider","value","className","role","AnimatePresence","initial","map","motion","div","key","transition","damping","stiffness","opacity","y","scale","animate","exit","duration","Toast","onClose","useToast"],"mappings":"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"}
@@ -1,13 +1,14 @@
1
+ import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import { forwardRef, createElement } from 'react';
2
3
  import { Root, Trigger, Content, Arrow } from '@radix-ui/react-tooltip';
3
4
 
4
- const Tooltip = /*#__PURE__*/forwardRef(function Tooltip(props, ref) {
5
- const {
6
- title,
7
- children,
8
- placement,
9
- ...otherProps
10
- } = props;
5
+ var _excluded = ["title", "children", "placement"];
6
+ var Tooltip = /*#__PURE__*/forwardRef(function Tooltip(props, ref) {
7
+ var title = props.title,
8
+ children = props.children,
9
+ placement = props.placement,
10
+ otherProps = _objectWithoutPropertiesLoose(props, _excluded);
11
+
11
12
  return createElement(Root, {
12
13
  delayDuration: 50
13
14
  }, createElement(Trigger, {
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\r\n\r\nexport type TooltipProps = React.HTMLAttributes<HTMLDivElement> & {\r\n /** The element which activates the tooltip when hovered. Should be a single React/HTML element */\r\n children: React.ReactElement | any;\r\n /** Text displayed in the tooltip */\r\n title: string;\r\n /**\r\n * Placement of the tooltip relative to the reference element. Placement will be reversed if a collision occurs\r\n * @defaultValue bottom\r\n */\r\n placement?: 'top' | 'right' | 'bottom' | 'left';\r\n};\r\n\r\nexport const Tooltip = React.forwardRef(function Tooltip(props: TooltipProps, ref: React.Ref<HTMLElement>) {\r\n const { title, children, placement, ...otherProps } = props;\r\n\r\n return (\r\n <TooltipPrimitive.Root delayDuration={50}>\r\n <TooltipPrimitive.Trigger asChild ref={ref as any}>\r\n {children}\r\n </TooltipPrimitive.Trigger>\r\n <TooltipPrimitive.Content {...otherProps} asChild side={placement} sideOffset={3}>\r\n <div\r\n className=\"wcag-purple animate-[fade-in_150ms] rounded-sm px-2 py-1 text-xs font-bold\"\r\n data-taco=\"tooltip\"\r\n style={{\r\n transformOrigin: 'var(--radix-tooltip-content-transform-origin)',\r\n }}\r\n >\r\n <TooltipPrimitive.Arrow className=\"fill-purple stroke-purple\" />\r\n {title}\r\n </div>\r\n </TooltipPrimitive.Content>\r\n </TooltipPrimitive.Root>\r\n );\r\n});\r\n"],"names":["Tooltip","React","props","ref","title","children","placement","otherProps","TooltipPrimitive","delayDuration","asChild","side","sideOffset","className","style","transformOrigin"],"mappings":";;;MAeaA,OAAO,gBAAGC,UAAA,CAAiB,SAASD,OAAT,CAAiBE,KAAjB,EAAsCC,GAAtC;AACpC,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,QAAT;AAAmBC,IAAAA,SAAnB;AAA8B,OAAGC;AAAjC,MAAgDL,KAAtD;AAEA,SACID,aAAA,CAACO,IAAD;AAAuBC,IAAAA,aAAa,EAAE;GAAtC,EACIR,aAAA,CAACO,OAAD;AAA0BE,IAAAA,OAAO;AAACP,IAAAA,GAAG,EAAEA;GAAvC,EACKE,QADL,CADJ,EAIIJ,aAAA,CAACO,OAAD,oBAA8BD;AAAYG,IAAAA,OAAO;AAACC,IAAAA,IAAI,EAAEL;AAAWM,IAAAA,UAAU,EAAE;IAA/E,EACIX,aAAA,MAAA;AACIY,IAAAA,SAAS,EAAC;iBACA;AACVC,IAAAA,KAAK,EAAE;AACHC,MAAAA,eAAe,EAAE;AADd;GAHX,EAOId,aAAA,CAACO,KAAD;AAAwBK,IAAAA,SAAS,EAAC;GAAlC,CAPJ,EAQKT,KARL,CADJ,CAJJ,CADJ;AAmBH,CAtBsB;;;;"}
1
+ {"version":3,"file":"Tooltip.js","sources":["../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\r\n\r\nexport type TooltipProps = React.HTMLAttributes<HTMLDivElement> & {\r\n /** The element which activates the tooltip when hovered. Should be a single React/HTML element */\r\n children: React.ReactElement | any;\r\n /** Text displayed in the tooltip */\r\n title: string;\r\n /**\r\n * Placement of the tooltip relative to the reference element. Placement will be reversed if a collision occurs\r\n * @defaultValue bottom\r\n */\r\n placement?: 'top' | 'right' | 'bottom' | 'left';\r\n};\r\n\r\nexport const Tooltip = React.forwardRef(function Tooltip(props: TooltipProps, ref: React.Ref<HTMLElement>) {\r\n const { title, children, placement, ...otherProps } = props;\r\n\r\n return (\r\n <TooltipPrimitive.Root delayDuration={50}>\r\n <TooltipPrimitive.Trigger asChild ref={ref as any}>\r\n {children}\r\n </TooltipPrimitive.Trigger>\r\n <TooltipPrimitive.Content {...otherProps} asChild side={placement} sideOffset={3}>\r\n <div\r\n className=\"wcag-purple animate-[fade-in_150ms] rounded-sm px-2 py-1 text-xs font-bold\"\r\n data-taco=\"tooltip\"\r\n style={{\r\n transformOrigin: 'var(--radix-tooltip-content-transform-origin)',\r\n }}\r\n >\r\n <TooltipPrimitive.Arrow className=\"fill-purple stroke-purple\" />\r\n {title}\r\n </div>\r\n </TooltipPrimitive.Content>\r\n </TooltipPrimitive.Root>\r\n );\r\n});\r\n"],"names":["Tooltip","React","props","ref","title","children","placement","otherProps","TooltipPrimitive","delayDuration","asChild","side","sideOffset","className","style","transformOrigin"],"mappings":";;;;;IAeaA,OAAO,gBAAGC,UAAA,CAAiB,SAASD,OAAT,CAAiBE,KAAjB,EAAsCC,GAAtC;AACpC,MAAQC,KAAR,GAAsDF,KAAtD,CAAQE,KAAR;AAAA,MAAeC,QAAf,GAAsDH,KAAtD,CAAeG,QAAf;AAAA,MAAyBC,SAAzB,GAAsDJ,KAAtD,CAAyBI,SAAzB;AAAA,MAAuCC,UAAvC,iCAAsDL,KAAtD;;AAEA,SACID,aAAA,CAACO,IAAD;AAAuBC,IAAAA,aAAa,EAAE;GAAtC,EACIR,aAAA,CAACO,OAAD;AAA0BE,IAAAA,OAAO;AAACP,IAAAA,GAAG,EAAEA;GAAvC,EACKE,QADL,CADJ,EAIIJ,aAAA,CAACO,OAAD,oBAA8BD;AAAYG,IAAAA,OAAO;AAACC,IAAAA,IAAI,EAAEL;AAAWM,IAAAA,UAAU,EAAE;IAA/E,EACIX,aAAA,MAAA;AACIY,IAAAA,SAAS,EAAC;iBACA;AACVC,IAAAA,KAAK,EAAE;AACHC,MAAAA,eAAe,EAAE;AADd;GAHX,EAOId,aAAA,CAACO,KAAD;AAAwBK,IAAAA,SAAS,EAAC;GAAlC,CAPJ,EAQKT,KARL,CADJ,CAJJ,CADJ;AAmBH,CAtBsB;;;;"}
@@ -1,39 +1,45 @@
1
+ import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import React__default from 'react';
2
3
  import cn from 'classnames';
3
4
 
4
- const TreeviewItem = /*#__PURE__*/React__default.forwardRef(function TreeviewItem(props, ref) {
5
+ var _excluded = ["children", "className", "expanded", "title", "fixed", "onClick"];
6
+ var TreeviewItem = /*#__PURE__*/React__default.forwardRef(function TreeviewItem(props, ref) {
5
7
  return React__default.createElement("a", Object.assign({}, props, {
6
8
  ref: ref
7
9
  }));
8
10
  });
9
- const TreeviewGroup = /*#__PURE__*/React__default.forwardRef(function TreeviewGroup(props, ref) {
10
- const {
11
- children,
12
- className: externalClassName,
13
- expanded: initialExpanded = false,
14
- title,
15
- fixed,
16
- onClick,
17
- ...otherProps
18
- } = props;
19
- const [expanded, setExpanded] = React__default.useState(fixed || initialExpanded);
20
- React__default.useEffect(() => {
11
+ var TreeviewGroup = /*#__PURE__*/React__default.forwardRef(function TreeviewGroup(props, ref) {
12
+ var children = props.children,
13
+ externalClassName = props.className,
14
+ _props$expanded = props.expanded,
15
+ initialExpanded = _props$expanded === void 0 ? false : _props$expanded,
16
+ title = props.title,
17
+ fixed = props.fixed,
18
+ onClick = props.onClick,
19
+ otherProps = _objectWithoutPropertiesLoose(props, _excluded);
20
+
21
+ var _React$useState = React__default.useState(fixed || initialExpanded),
22
+ expanded = _React$useState[0],
23
+ setExpanded = _React$useState[1];
24
+
25
+ React__default.useEffect(function () {
21
26
  if (!fixed) {
22
27
  setExpanded(fixed || initialExpanded);
23
28
  }
24
29
  }, [fixed, initialExpanded]);
25
- const listClassName = cn('flex-col mb-0', {
30
+ var listClassName = cn('flex-col mb-0', {
26
31
  flex: expanded,
27
32
  hidden: !expanded
28
33
  });
29
- const itemProps = { ...otherProps,
34
+
35
+ var itemProps = _extends({}, otherProps, {
30
36
  'aria-expanded': expanded,
31
37
  role: 'treeitem',
32
38
  tabIndex: -1
33
- };
39
+ });
34
40
 
35
- const handleClick = event => {
36
- const nextState = !expanded;
41
+ var handleClick = function handleClick(event) {
42
+ var nextState = !expanded;
37
43
 
38
44
  if (!fixed) {
39
45
  setExpanded(nextState);
@@ -44,7 +50,7 @@ const TreeviewGroup = /*#__PURE__*/React__default.forwardRef(function TreeviewGr
44
50
  }
45
51
  };
46
52
 
47
- const className = typeof externalClassName === 'function' ? externalClassName(expanded) : externalClassName;
53
+ var className = typeof externalClassName === 'function' ? externalClassName(expanded) : externalClassName;
48
54
  return React__default.createElement("div", Object.assign({}, itemProps, {
49
55
  className: className,
50
56
  ref: ref
@@ -53,14 +59,18 @@ const TreeviewGroup = /*#__PURE__*/React__default.forwardRef(function TreeviewGr
53
59
  }, typeof title === 'function' ? title(expanded) : title), React__default.createElement("ul", {
54
60
  role: "group",
55
61
  className: listClassName
56
- }, React__default.Children.toArray(children).filter(item => !!item).map((item, i) => React__default.createElement("li", {
57
- key: i,
58
- role: "none"
59
- }, React__default.cloneElement(item, {
60
- role: 'treeitem'
61
- })))));
62
+ }, React__default.Children.toArray(children).filter(function (item) {
63
+ return !!item;
64
+ }).map(function (item, i) {
65
+ return React__default.createElement("li", {
66
+ key: i,
67
+ role: "none"
68
+ }, React__default.cloneElement(item, {
69
+ role: 'treeitem'
70
+ }));
71
+ })));
62
72
  });
63
- const Treeview = /*#__PURE__*/React__default.forwardRef(function Treeview(props, ref) {
73
+ var Treeview = /*#__PURE__*/React__default.forwardRef(function Treeview(props, ref) {
64
74
  return React__default.createElement("div", Object.assign({}, props, {
65
75
  ref: ref,
66
76
  role: "tree"
@@ -1 +1 @@
1
- {"version":3,"file":"Treeview.js","sources":["../../../../src/components/Treeview/Treeview.tsx"],"sourcesContent":["import React from 'react';\r\nimport cn from 'classnames';\r\n\r\nexport type TreeviewItemProps = React.LinkHTMLAttributes<HTMLAnchorElement>;\r\n\r\nconst TreeviewItem = React.forwardRef(function TreeviewItem(props: TreeviewItemProps, ref: React.Ref<HTMLAnchorElement>) {\r\n return <a {...props} ref={ref} />;\r\n});\r\n\r\nexport type TreeviewGroupProps = Omit<React.LinkHTMLAttributes<HTMLDivElement>, 'className' | 'onClick' | 'title'> & {\r\n /** Add a classname to the treeview */\r\n className?: string | ((expanded: boolean) => string);\r\n /**\r\n * Set wheter the region is expanded, showing the children, or collapsed.\r\n * Default value is `false`\r\n */\r\n expanded?: boolean;\r\n /** Region is expanded at mount and can't be collapsed */\r\n fixed?: boolean;\r\n /** Handler called when user clicks the title of the group */\r\n onClick?: (event: React.MouseEvent<HTMLDivElement>, expanded: boolean) => void;\r\n /** Text displayed in the group's header */\r\n title: React.ReactNode | ((expanded: boolean) => React.ReactNode);\r\n};\r\n\r\nconst TreeviewGroup = React.forwardRef(function TreeviewGroup(props: TreeviewGroupProps, ref: React.Ref<HTMLDivElement>) {\r\n const {\r\n children,\r\n className: externalClassName,\r\n expanded: initialExpanded = false,\r\n title,\r\n fixed,\r\n onClick,\r\n ...otherProps\r\n } = props;\r\n const [expanded, setExpanded] = React.useState(fixed || initialExpanded);\r\n\r\n React.useEffect(() => {\r\n if (!fixed) {\r\n setExpanded(fixed || initialExpanded);\r\n }\r\n }, [fixed, initialExpanded]);\r\n\r\n const listClassName = cn('flex-col mb-0', {\r\n flex: expanded,\r\n hidden: !expanded,\r\n });\r\n\r\n const itemProps = {\r\n ...otherProps,\r\n 'aria-expanded': expanded,\r\n role: 'treeitem',\r\n tabIndex: -1,\r\n };\r\n\r\n const handleClick = (event: React.MouseEvent<HTMLDivElement>): void => {\r\n const nextState = !expanded;\r\n\r\n if (!fixed) {\r\n setExpanded(nextState);\r\n }\r\n\r\n if (onClick) {\r\n onClick(event, nextState);\r\n }\r\n };\r\n\r\n const className = typeof externalClassName === 'function' ? externalClassName(expanded) : externalClassName;\r\n\r\n return (\r\n <div {...itemProps} className={className} ref={ref}>\r\n <div onClick={handleClick}>{typeof title === 'function' ? title(expanded) : title}</div>\r\n <ul role=\"group\" className={listClassName}>\r\n {React.Children.toArray(children)\r\n .filter(item => !!item)\r\n .map((item, i) => (\r\n <li key={i} role=\"none\">\r\n {React.cloneElement(item as React.ReactElement<any>, { role: 'treeitem' })}\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n );\r\n});\r\n\r\nexport type TreeviewProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nexport type ForwardedTreeviewWithStatics = React.ForwardRefExoticComponent<\r\n TreeviewProps & React.RefAttributes<HTMLDivElement>\r\n> & {\r\n /** Navigable link */\r\n Item: React.ForwardRefExoticComponent<TreeviewItemProps & React.RefAttributes<HTMLAnchorElement>>;\r\n /** Container for a set of related links, usually expandable */\r\n Group: React.ForwardRefExoticComponent<TreeviewGroupProps & React.RefAttributes<HTMLDivElement>>;\r\n};\r\n\r\nexport const Treeview = React.forwardRef(function Treeview(props: TreeviewProps, ref: React.Ref<HTMLDivElement>) {\r\n return <div {...props} ref={ref} role=\"tree\" />;\r\n}) as ForwardedTreeviewWithStatics;\r\n\r\nTreeview.Group = TreeviewGroup;\r\nTreeview.Item = TreeviewItem;\r\n"],"names":["TreeviewItem","React","forwardRef","props","ref","TreeviewGroup","children","className","externalClassName","expanded","initialExpanded","title","fixed","onClick","otherProps","setExpanded","useState","useEffect","listClassName","cn","flex","hidden","itemProps","role","tabIndex","handleClick","event","nextState","Children","toArray","filter","item","map","i","key","cloneElement","Treeview","Group","Item"],"mappings":"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"}
1
+ {"version":3,"file":"Treeview.js","sources":["../../../../src/components/Treeview/Treeview.tsx"],"sourcesContent":["import React from 'react';\r\nimport cn from 'classnames';\r\n\r\nexport type TreeviewItemProps = React.LinkHTMLAttributes<HTMLAnchorElement>;\r\n\r\nconst TreeviewItem = React.forwardRef(function TreeviewItem(props: TreeviewItemProps, ref: React.Ref<HTMLAnchorElement>) {\r\n return <a {...props} ref={ref} />;\r\n});\r\n\r\nexport type TreeviewGroupProps = Omit<React.LinkHTMLAttributes<HTMLDivElement>, 'className' | 'onClick' | 'title'> & {\r\n /** Add a classname to the treeview */\r\n className?: string | ((expanded: boolean) => string);\r\n /**\r\n * Set wheter the region is expanded, showing the children, or collapsed.\r\n * Default value is `false`\r\n */\r\n expanded?: boolean;\r\n /** Region is expanded at mount and can't be collapsed */\r\n fixed?: boolean;\r\n /** Handler called when user clicks the title of the group */\r\n onClick?: (event: React.MouseEvent<HTMLDivElement>, expanded: boolean) => void;\r\n /** Text displayed in the group's header */\r\n title: React.ReactNode | ((expanded: boolean) => React.ReactNode);\r\n};\r\n\r\nconst TreeviewGroup = React.forwardRef(function TreeviewGroup(props: TreeviewGroupProps, ref: React.Ref<HTMLDivElement>) {\r\n const {\r\n children,\r\n className: externalClassName,\r\n expanded: initialExpanded = false,\r\n title,\r\n fixed,\r\n onClick,\r\n ...otherProps\r\n } = props;\r\n const [expanded, setExpanded] = React.useState(fixed || initialExpanded);\r\n\r\n React.useEffect(() => {\r\n if (!fixed) {\r\n setExpanded(fixed || initialExpanded);\r\n }\r\n }, [fixed, initialExpanded]);\r\n\r\n const listClassName = cn('flex-col mb-0', {\r\n flex: expanded,\r\n hidden: !expanded,\r\n });\r\n\r\n const itemProps = {\r\n ...otherProps,\r\n 'aria-expanded': expanded,\r\n role: 'treeitem',\r\n tabIndex: -1,\r\n };\r\n\r\n const handleClick = (event: React.MouseEvent<HTMLDivElement>): void => {\r\n const nextState = !expanded;\r\n\r\n if (!fixed) {\r\n setExpanded(nextState);\r\n }\r\n\r\n if (onClick) {\r\n onClick(event, nextState);\r\n }\r\n };\r\n\r\n const className = typeof externalClassName === 'function' ? externalClassName(expanded) : externalClassName;\r\n\r\n return (\r\n <div {...itemProps} className={className} ref={ref}>\r\n <div onClick={handleClick}>{typeof title === 'function' ? title(expanded) : title}</div>\r\n <ul role=\"group\" className={listClassName}>\r\n {React.Children.toArray(children)\r\n .filter(item => !!item)\r\n .map((item, i) => (\r\n <li key={i} role=\"none\">\r\n {React.cloneElement(item as React.ReactElement<any>, { role: 'treeitem' })}\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n );\r\n});\r\n\r\nexport type TreeviewProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nexport type ForwardedTreeviewWithStatics = React.ForwardRefExoticComponent<\r\n TreeviewProps & React.RefAttributes<HTMLDivElement>\r\n> & {\r\n /** Navigable link */\r\n Item: React.ForwardRefExoticComponent<TreeviewItemProps & React.RefAttributes<HTMLAnchorElement>>;\r\n /** Container for a set of related links, usually expandable */\r\n Group: React.ForwardRefExoticComponent<TreeviewGroupProps & React.RefAttributes<HTMLDivElement>>;\r\n};\r\n\r\nexport const Treeview = React.forwardRef(function Treeview(props: TreeviewProps, ref: React.Ref<HTMLDivElement>) {\r\n return <div {...props} ref={ref} role=\"tree\" />;\r\n}) as ForwardedTreeviewWithStatics;\r\n\r\nTreeview.Group = TreeviewGroup;\r\nTreeview.Item = TreeviewItem;\r\n"],"names":["TreeviewItem","React","forwardRef","props","ref","TreeviewGroup","children","externalClassName","className","expanded","initialExpanded","title","fixed","onClick","otherProps","useState","setExpanded","useEffect","listClassName","cn","flex","hidden","itemProps","role","tabIndex","handleClick","event","nextState","Children","toArray","filter","item","map","i","key","cloneElement","Treeview","Group","Item"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { forwardRef, createElement } from 'react';
2
2
 
3
- const VisuallyHidden = /*#__PURE__*/forwardRef(function VisuallyHidden(props, ref) {
3
+ var VisuallyHidden = /*#__PURE__*/forwardRef(function VisuallyHidden(props, ref) {
4
4
  return createElement("span", Object.assign({}, props, {
5
5
  className: "sr-only",
6
6
  ref: ref