@adaptive-ds/solid-ui 0.14.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/dist/input/check/CheckBoolean.d.ts.map +1 -1
  2. package/dist/input/check/CheckBoolean.js.map +1 -1
  3. package/dist/input/check/CheckBooleanSingle.d.ts.map +1 -1
  4. package/dist/input/check/CheckBooleanSingle.js.map +1 -1
  5. package/dist/input/check/CheckMultiple.js.map +1 -1
  6. package/dist/input/search/searchInputSignal.d.ts.map +1 -1
  7. package/dist/input/search/searchInputSignal.js.map +1 -1
  8. package/dist/input/select/SelectMultiple.d.ts.map +1 -1
  9. package/dist/input/select/SelectMultiple.js.map +1 -1
  10. package/dist/input/select/SelectSingleNative.d.ts.map +1 -1
  11. package/dist/input/select/SelectSingleNative.js.map +1 -1
  12. package/dist/input/switch/SwitchSingle.d.ts.map +1 -1
  13. package/dist/input/switch/SwitchSingle.js.map +1 -1
  14. package/dist/interactive/button/ButtonIconOnly.d.ts.map +1 -1
  15. package/dist/interactive/button/ButtonIconOnly.js.map +1 -1
  16. package/dist/interactive/dialog/CorvuDialog.d.ts +2 -0
  17. package/dist/interactive/dialog/CorvuDialog.d.ts.map +1 -1
  18. package/dist/interactive/dialog/CorvuDialog.js +74 -66
  19. package/dist/interactive/dialog/CorvuDialog.js.map +1 -1
  20. package/dist/interactive/dialog/CorvuDialogIcon.d.ts.map +1 -1
  21. package/dist/interactive/dialog/CorvuDialogIcon.js +1 -1
  22. package/dist/interactive/dialog/CorvuDialogIcon.js.map +1 -1
  23. package/dist/interactive/popover/CorvuPopover.d.ts +2 -0
  24. package/dist/interactive/popover/CorvuPopover.d.ts.map +1 -1
  25. package/dist/interactive/popover/CorvuPopover.js +6 -0
  26. package/dist/interactive/popover/CorvuPopover.js.map +1 -1
  27. package/dist/interactive/popover/CorvuPopoverIcon.d.ts +2 -0
  28. package/dist/interactive/popover/CorvuPopoverIcon.d.ts.map +1 -1
  29. package/dist/interactive/popover/CorvuPopoverIcon.js +9 -1
  30. package/dist/interactive/popover/CorvuPopoverIcon.js.map +1 -1
  31. package/dist/interactive/sidebar/Sidebar.d.ts +16 -0
  32. package/dist/interactive/sidebar/Sidebar.d.ts.map +1 -0
  33. package/dist/interactive/sidebar/Sidebar.js +46 -0
  34. package/dist/interactive/sidebar/Sidebar.js.map +1 -0
  35. package/dist/interactive/sidebar/SidebarMobileDrawer.d.ts +7 -0
  36. package/dist/interactive/sidebar/SidebarMobileDrawer.d.ts.map +1 -0
  37. package/dist/interactive/sidebar/SidebarMobileDrawer.js +21 -0
  38. package/dist/interactive/sidebar/SidebarMobileDrawer.js.map +1 -0
  39. package/dist/interactive/sidebar/SidebarState.d.ts +7 -0
  40. package/dist/interactive/sidebar/SidebarState.d.ts.map +1 -0
  41. package/dist/interactive/sidebar/SidebarState.js +0 -0
  42. package/dist/interactive/sidebar/SidebarToggle.d.ts +16 -0
  43. package/dist/interactive/sidebar/SidebarToggle.d.ts.map +1 -0
  44. package/dist/interactive/sidebar/SidebarToggle.js +47 -0
  45. package/dist/interactive/sidebar/SidebarToggle.js.map +1 -0
  46. package/dist/interactive/sidebar/createSidebarState.d.ts +3 -0
  47. package/dist/interactive/sidebar/createSidebarState.d.ts.map +1 -0
  48. package/dist/interactive/sidebar/createSidebarState.js +13 -0
  49. package/dist/interactive/sidebar/createSidebarState.js.map +1 -0
  50. package/dist/interactive/sidebar/index.d.ts +4 -0
  51. package/dist/interactive/sidebar/index.d.ts.map +1 -0
  52. package/dist/interactive/sidebar/index.js +4 -0
  53. package/dist/interactive/tabs/TabsTop.d.ts.map +1 -1
  54. package/dist/interactive/tabs/TabsTop.js.map +1 -1
  55. package/dist/interactive/theme/ThemeButton.d.ts.map +1 -1
  56. package/dist/interactive/theme/ThemeButton.js +4 -6
  57. package/dist/interactive/theme/ThemeButton.js.map +1 -1
  58. package/dist/interactive/toast/toastIconCva.d.ts.map +1 -1
  59. package/dist/interactive/toast/toastIconCva.js.map +1 -1
  60. package/dist/interactive/toggle/ToggleButton.d.ts.map +1 -1
  61. package/dist/interactive/toggle/ToggleButton.js.map +1 -1
  62. package/dist/interactive/toggle/ToggleButtonIconOnly.d.ts.map +1 -1
  63. package/dist/interactive/toggle/ToggleButtonIconOnly.js.map +1 -1
  64. package/dist/node_modules/@corvu/popover/dist/index.js +1 -1
  65. package/dist/solid-ui.css +65 -37
  66. package/dist/static/grid/classesGridCols.d.ts.map +1 -1
  67. package/dist/static/grid/classesGridCols.js.map +1 -1
  68. package/dist/static/icon/linkIcons.js.map +1 -1
  69. package/dist/static/icons/iconApple.d.ts.map +1 -1
  70. package/dist/static/icons/iconApple.js.map +1 -1
  71. package/dist/static/icons/iconBluesky.d.ts.map +1 -1
  72. package/dist/static/icons/iconBluesky.js.map +1 -1
  73. package/dist/static/icons/iconDevTo.d.ts.map +1 -1
  74. package/dist/static/icons/iconDevTo.js.map +1 -1
  75. package/dist/static/icons/iconGithub.d.ts.map +1 -1
  76. package/dist/static/icons/iconGithub.js.map +1 -1
  77. package/dist/static/icons/iconGoogle.d.ts.map +1 -1
  78. package/dist/static/icons/iconGoogle.js.map +1 -1
  79. package/dist/static/icons/iconXcom.d.ts.map +1 -1
  80. package/dist/static/icons/iconXcom.js.map +1 -1
  81. package/dist/static/loaders/LoaderShuffle4Dots.module.css.js +2 -2
  82. package/dist/static/loaders/LoaderShuffle4Dots.module.css.js.map +1 -1
  83. package/dist/static/loaders/LoaderShuffle9Squares.module.css.js +3 -3
  84. package/dist/static/loaders/LoaderShuffle9Squares.module.css.js.map +1 -1
  85. package/dist/static/loaders/LoaderSpin4Square.module.css.js +2 -2
  86. package/dist/static/loaders/LoaderSpin4Square.module.css.js.map +1 -1
  87. package/dist/static/timeline/Timeline.d.ts.map +1 -1
  88. package/dist/static/timeline/Timeline.js.map +1 -1
  89. package/dist/utils/HasGetOptions.d.ts.map +1 -1
  90. package/dist/utils/createLocalStore.d.ts.map +1 -1
  91. package/dist/utils/createLocalStore.js.map +1 -1
  92. package/dist/utils/createStoreObject.d.ts.map +1 -1
  93. package/dist/utils/createStoreObject.js.map +1 -1
  94. package/package.json +7 -6
@@ -1 +1 @@
1
- {"version":3,"file":"CorvuDialogIcon.js","names":["classesDisabledDirectly","buttonCvaIconOnly","buttonVariant","ButtonCvaProps","buttonIconCva","classesButtonClickAnimation","CorcuDialogTexts","corvuDialogTextDefault","classesDialogContentMerge","classesDialogOverlayMerge","Icon","HasIcon","HasTitle","MayHaveChildren","MayHaveClass","MayHaveInnerClass","isLoading","MayHaveIsLoading","classMerge","Dialog","mdiClose","splitProps","Component","ComponentProps","CorvuDialogIconProps","Omit","dialogTitle","description","titleClass","descriptionClass","texts","CorvuDialogIcon","p","s","rest","_$createComponent","children","Trigger","_$mergeProps","class","variant","disabled","title","path","icon","iconClass","Portal","Overlay","Content","innerClass","_el$","_tmpl$","_el$2","firstChild","_$insert","Label","_c$","_$memo","Description","Close","outline","closeDialog"],"sources":["../../../ui/interactive/dialog/CorvuDialogIcon.tsx"],"sourcesContent":["import { classesDisabledDirectly } from \"#ui/classes/classesDisabledDirectly.js\"\nimport { buttonCvaIconOnly, buttonVariant, type ButtonCvaProps } from \"#ui/interactive/button/buttonCva.js\"\nimport { buttonIconCva } from \"#ui/interactive/button/buttonIconCva.js\"\nimport { classesButtonClickAnimation } from \"#ui/interactive/button/classesButtonClickAnimation.js\"\nimport type { CorcuDialogTexts } from \"#ui/interactive/dialog/CorcuDialogTexts.js\"\nimport { corvuDialogTextDefault } from \"#ui/interactive/dialog/CorcuDialogTexts.js\"\nimport { classesDialogContentMerge, classesDialogOverlayMerge } from \"#ui/interactive/dialog/classesDialogContent.js\"\nimport { Icon } from \"#ui/static/icon/Icon.jsx\"\nimport type { HasIcon } from \"#ui/utils/HasIcon.js\"\nimport type { HasTitle } from \"#ui/utils/HasTitle.js\"\nimport type { MayHaveChildren } from \"#ui/utils/MayHaveChildren.js\"\nimport type { MayHaveClass } from \"#ui/utils/MayHaveClass.js\"\nimport type { MayHaveInnerClass } from \"#ui/utils/MayHaveInnerClass.js\"\nimport { isLoading, type MayHaveIsLoading } from \"#ui/utils/MayHaveIsLoading.js\"\nimport { classMerge } from \"#ui/utils/classMerge.js\"\nimport Dialog from \"@corvu/dialog\"\nimport { mdiClose } from \"@mdi/js\"\nimport { splitProps, type Component, type ComponentProps } from \"solid-js\"\n\nexport interface CorvuDialogIconProps\n extends Omit<ComponentProps<\"button\">, \"title\">,\n ButtonCvaProps,\n HasIcon,\n HasTitle,\n MayHaveClass,\n MayHaveInnerClass,\n MayHaveChildren,\n MayHaveIsLoading {\n dialogTitle: string\n description?: string\n titleClass?: string\n descriptionClass?: string\n texts?: CorcuDialogTexts\n}\n\nexport const CorvuDialogIcon: Component<CorvuDialogIconProps> = (p) => {\n const [s, rest] = splitProps(p, [\n // button\n \"variant\",\n \"size\",\n \"class\",\n // state\n \"isLoading\",\n \"disabled\",\n // icons\n \"title\",\n \"icon\",\n \"iconClass\",\n // dialog\n \"innerClass\",\n \"children\",\n \"dialogTitle\",\n \"description\",\n \"titleClass\",\n \"descriptionClass\",\n \"texts\",\n ])\n\n const texts = s.texts ?? corvuDialogTextDefault\n\n return (\n <Dialog>\n <Dialog.Trigger\n class={buttonCvaIconOnly(s.variant, isLoading(p), s.disabled, classesButtonClickAnimation, s.class)}\n title={s.title}\n {...rest}\n >\n <Icon\n path={s.icon}\n class={buttonIconCva(\n s.variant,\n isLoading(p) && \"animate-spin-faster\",\n s.disabled && classesDisabledDirectly,\n s.iconClass,\n )}\n />\n </Dialog.Trigger>\n <Dialog.Portal>\n <Dialog.Overlay class={classesDialogOverlayMerge()} />\n <Dialog.Content class={classesDialogContentMerge(s.innerClass)}>\n <header class=\"flex items-start justify-between mb-4\">\n <div>\n <Dialog.Label class={classMerge(\"text-lg font-semibold\", s.titleClass)}>{s.dialogTitle}</Dialog.Label>\n {s.description && (\n <Dialog.Description class={classMerge(\"text-muted-foreground\", s.descriptionClass)}>\n {s.description}\n </Dialog.Description>\n )}\n </div>\n <Dialog.Close class={buttonCvaIconOnly(buttonVariant.outline, false, false)} title={texts.closeDialog}>\n <Icon path={mdiClose} class={buttonIconCva(buttonVariant.outline, \"\")} />\n </Dialog.Close>\n </header>\n {s.children}\n </Dialog.Content>\n </Dialog.Portal>\n </Dialog>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;AAmCA,IAAa+B,mBAAoDC,MAAM;CACrE,MAAM,CAACC,GAAGC,QAAQb,WAAWW,GAAG;EAE9B;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;CAEF,MAAMF,QAAQG,EAAEH,SAASvB;AAEzB,QAAA4B,gBACGhB,eAAM,EAAA,IAAAiB,WAAA;AAAA,SAAA,CAAAD,gBACJhB,cAAOkB,SAAOC,aAAA;GAAA,KAAA,WAAA;AAAA,WACNrC,kBAAkBgC,EAAEO,SAASxB,UAAUgB,EAAE,EAAEC,EAAEQ,UAAUpC,6BAA6B4B,EAAEM,MAAM;;GAAA,IACnGG,QAAK;AAAA,WAAET,EAAES;;GAAK,EACVR,MAAI,EAAA,IAAAE,WAAA;AAAA,UAAAD,gBAEPzB,MAAI;IAAA,IACHiC,OAAI;AAAA,YAAEV,EAAEW;;IAAI,KAAA,WAAA;AAAA,YACLxC,cACL6B,EAAEO,SACFxB,UAAUgB,EAAE,IAAI,uBAChBC,EAAEQ,YAAAA,iCACFR,EAAEY,UACH;;IAAA,CAAA;KAAA,CAAA,CAAA,EAAAV,gBAGJhB,cAAO2B,QAAM,EAAA,IAAAV,WAAA;AAAA,UAAA,CAAAD,gBACXhB,cAAO4B,SAAO,EAAA,KAAA,WAAA;AAAA,WAAQtC,2BAA2B;MAAA,CAAA,EAAA0B,gBACjDhB,cAAO6B,SAAO;IAAA,KAAA,WAAA;AAAA,YAAQxC,0BAA0ByB,EAAEgB,WAAW;;IAAA,IAAAb,WAAA;AAAA,YAAA,QAAA;MAAA,IAAAc,OAAAC,QAAA,EAAAC,QAAAF,KAAAG;AAAAC,aAAAF,OAAAjB,gBAGvDhB,cAAOoC,OAAK;OAAA,KAAA,WAAA;AAAA,eAAQrC,WAAW,yBAAyBe,EAAEL,WAAW;;OAAA,IAAAQ,WAAA;AAAA,eAAGH,EAAEP;;OAAW,CAAA,EAAA,KAAA;AAAA4B,aAAAF,cAAA;OAAA,IAAAI,MAAAC,WAAA,CAAA,CACrFxB,EAAEN,YAAW;AAAA,oBAAb6B,KAAA,IAAArB,gBACEhB,cAAOuC,aAAW;QAAA,KAAA,WAAA;AAAA,gBAAQxC,WAAW,yBAAyBe,EAAEJ,iBAAiB;;QAAA,IAAAO,WAAA;AAAA,gBAC/EH,EAAEN;;QAAW,CAEjB;UAAA,EAAA,KAAA;AAAA2B,aAAAJ,MAAAf,gBAEFhB,cAAOwC,OAAK;OAAA,KAAA,WAAA;AAAA,eAAQ1D,kBAAkBC,cAAc0D,SAAS,OAAO,MAAM;;OAAA,IAAElB,QAAK;AAAA,eAAEZ,MAAM+B;;OAAW,IAAAzB,WAAA;AAAA,eAAAD,gBAClGzB,MAAI;SAACiC,MAAMvB;SAAQ,KAAA,WAAA;AAAA,iBAAShB,cAAcF,cAAc0D,SAAS,GAAG;;SAAA,CAAA;;OAAA,CAAA,EAAA,KAAA;AAAA,aAAAV;SAAA,EAAAO,WAGxExB,EAAEG,SAAQ,CAAA;;IAAA,CAAA,CAAA;KAAA,CAAA,CAAA;IAAA,CAAA"}
1
+ {"version":3,"file":"CorvuDialogIcon.js","names":["classesDisabledDirectly","buttonCvaIconOnly","buttonVariant","ButtonCvaProps","buttonIconCva","classesButtonClickAnimation","CorcuDialogTexts","corvuDialogTextDefault","classesDialogContentMerge","classesDialogOverlayMerge","Icon","HasIcon","HasTitle","MayHaveChildren","MayHaveClass","MayHaveInnerClass","isLoading","MayHaveIsLoading","classMerge","Dialog","mdiClose","splitProps","Component","ComponentProps","CorvuDialogIconProps","Omit","dialogTitle","description","titleClass","descriptionClass","texts","CorvuDialogIcon","p","s","rest","_$createComponent","children","Trigger","_$mergeProps","class","variant","disabled","title","path","icon","iconClass","Portal","Overlay","Content","innerClass","_el$","_tmpl$","_el$2","firstChild","_$insert","Label","_c$","_$memo","Description","Close","outline","closeDialog"],"sources":["../../../ui/interactive/dialog/CorvuDialogIcon.tsx"],"sourcesContent":["import { classesDisabledDirectly } from \"#ui/classes/classesDisabledDirectly.js\"\nimport { buttonCvaIconOnly, buttonVariant, type ButtonCvaProps } from \"#ui/interactive/button/buttonCva.js\"\nimport { buttonIconCva } from \"#ui/interactive/button/buttonIconCva.js\"\nimport { classesButtonClickAnimation } from \"#ui/interactive/button/classesButtonClickAnimation.js\"\nimport type { CorcuDialogTexts } from \"#ui/interactive/dialog/CorcuDialogTexts.js\"\nimport { corvuDialogTextDefault } from \"#ui/interactive/dialog/CorcuDialogTexts.js\"\nimport { classesDialogContentMerge, classesDialogOverlayMerge } from \"#ui/interactive/dialog/classesDialogContent.js\"\nimport { Icon } from \"#ui/static/icon/Icon.jsx\"\nimport type { HasIcon } from \"#ui/utils/HasIcon.js\"\nimport type { HasTitle } from \"#ui/utils/HasTitle.js\"\nimport type { MayHaveChildren } from \"#ui/utils/MayHaveChildren.js\"\nimport type { MayHaveClass } from \"#ui/utils/MayHaveClass.js\"\nimport type { MayHaveInnerClass } from \"#ui/utils/MayHaveInnerClass.js\"\nimport { isLoading, type MayHaveIsLoading } from \"#ui/utils/MayHaveIsLoading.js\"\nimport { classMerge } from \"#ui/utils/classMerge.js\"\nimport Dialog from \"@corvu/dialog\"\nimport { mdiClose } from \"@mdi/js\"\nimport { splitProps, type Component, type ComponentProps } from \"solid-js\"\n\nexport interface CorvuDialogIconProps\n extends\n Omit<ComponentProps<\"button\">, \"title\">,\n ButtonCvaProps,\n HasIcon,\n HasTitle,\n MayHaveClass,\n MayHaveInnerClass,\n MayHaveChildren,\n MayHaveIsLoading {\n dialogTitle: string\n description?: string\n titleClass?: string\n descriptionClass?: string\n texts?: CorcuDialogTexts\n}\n\nexport const CorvuDialogIcon: Component<CorvuDialogIconProps> = (p) => {\n const [s, rest] = splitProps(p, [\n // button\n \"variant\",\n \"size\",\n \"class\",\n // state\n \"isLoading\",\n \"disabled\",\n // icons\n \"title\",\n \"icon\",\n \"iconClass\",\n // dialog\n \"innerClass\",\n \"children\",\n \"dialogTitle\",\n \"description\",\n \"titleClass\",\n \"descriptionClass\",\n \"texts\",\n ])\n\n const texts = s.texts ?? corvuDialogTextDefault\n\n return (\n <Dialog>\n <Dialog.Trigger\n class={buttonCvaIconOnly(s.variant, isLoading(p), s.disabled, classesButtonClickAnimation, s.class)}\n title={s.title}\n {...rest}\n >\n <Icon\n path={s.icon}\n class={buttonIconCva(\n s.variant,\n isLoading(p) && \"animate-spin-faster\",\n s.disabled && classesDisabledDirectly,\n s.iconClass,\n )}\n />\n </Dialog.Trigger>\n <Dialog.Portal>\n <Dialog.Overlay class={classesDialogOverlayMerge()} />\n <Dialog.Content class={classesDialogContentMerge(s.innerClass)}>\n <header class=\"flex items-start justify-between mb-4\">\n <div>\n <Dialog.Label class={classMerge(\"text-lg font-semibold\", s.titleClass)}>{s.dialogTitle}</Dialog.Label>\n {s.description && (\n <Dialog.Description class={classMerge(\"text-muted-foreground\", s.descriptionClass)}>\n {s.description}\n </Dialog.Description>\n )}\n </div>\n <Dialog.Close class={buttonCvaIconOnly(buttonVariant.outline, false, false)} title={texts.closeDialog}>\n <Icon path={mdiClose} class={buttonIconCva(buttonVariant.outline, \"\")} />\n </Dialog.Close>\n </header>\n {s.children}\n </Dialog.Content>\n </Dialog.Portal>\n </Dialog>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;AAoCA,IAAa+B,mBAAoDC,MAAM;CACrE,MAAM,CAACC,GAAGC,QAAQb,WAAWW,GAAG;EAE9B;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;CAEF,MAAMF,QAAQG,EAAEH,SAASvB;AAEzB,QAAA4B,gBACGhB,eAAM,EAAA,IAAAiB,WAAA;AAAA,SAAA,CAAAD,gBACJhB,cAAOkB,SAAOC,aAAA;GAAA,KAAA,WAAA;AAAA,WACNrC,kBAAkBgC,EAAEO,SAASxB,UAAUgB,EAAE,EAAEC,EAAEQ,UAAUpC,6BAA6B4B,EAAEM,MAAM;;GAAA,IACnGG,QAAK;AAAA,WAAET,EAAES;;GAAK,EACVR,MAAI,EAAA,IAAAE,WAAA;AAAA,UAAAD,gBAEPzB,MAAI;IAAA,IACHiC,OAAI;AAAA,YAAEV,EAAEW;;IAAI,KAAA,WAAA;AAAA,YACLxC,cACL6B,EAAEO,SACFxB,UAAUgB,EAAE,IAAI,uBAChBC,EAAEQ,YAAAA,iCACFR,EAAEY,UACH;;IAAA,CAAA;KAAA,CAAA,CAAA,EAAAV,gBAGJhB,cAAO2B,QAAM,EAAA,IAAAV,WAAA;AAAA,UAAA,CAAAD,gBACXhB,cAAO4B,SAAO,EAAA,KAAA,WAAA;AAAA,WAAQtC,2BAA2B;MAAA,CAAA,EAAA0B,gBACjDhB,cAAO6B,SAAO;IAAA,KAAA,WAAA;AAAA,YAAQxC,0BAA0ByB,EAAEgB,WAAW;;IAAA,IAAAb,WAAA;AAAA,YAAA,QAAA;MAAA,IAAAc,OAAAC,QAAA,EAAAC,QAAAF,KAAAG;AAAAC,aAAAF,OAAAjB,gBAGvDhB,cAAOoC,OAAK;OAAA,KAAA,WAAA;AAAA,eAAQrC,WAAW,yBAAyBe,EAAEL,WAAW;;OAAA,IAAAQ,WAAA;AAAA,eAAGH,EAAEP;;OAAW,CAAA,EAAA,KAAA;AAAA4B,aAAAF,cAAA;OAAA,IAAAI,MAAAC,WAAA,CAAA,CACrFxB,EAAEN,YAAW;AAAA,oBAAb6B,KAAA,IAAArB,gBACEhB,cAAOuC,aAAW;QAAA,KAAA,WAAA;AAAA,gBAAQxC,WAAW,yBAAyBe,EAAEJ,iBAAiB;;QAAA,IAAAO,WAAA;AAAA,gBAC/EH,EAAEN;;QAAW,CAEjB;UAAA,EAAA,KAAA;AAAA2B,aAAAJ,MAAAf,gBAEFhB,cAAOwC,OAAK;OAAA,KAAA,WAAA;AAAA,eAAQ1D,kBAAkBC,cAAc0D,SAAS,OAAO,MAAM;;OAAA,IAAElB,QAAK;AAAA,eAAEZ,MAAM+B;;OAAW,IAAAzB,WAAA;AAAA,eAAAD,gBAClGzB,MAAI;SAACiC,MAAMvB;SAAQ,KAAA,WAAA;AAAA,iBAAShB,cAAcF,cAAc0D,SAAS,GAAG;;SAAA,CAAA;;OAAA,CAAA,EAAA,KAAA;AAAA,aAAAV;SAAA,EAAAO,WAGxExB,EAAEG,SAAQ,CAAA;;IAAA,CAAA,CAAA;KAAA,CAAA,CAAA;IAAA,CAAA"}
@@ -5,6 +5,8 @@ import { MayHaveInnerClass } from '#ui/utils/MayHaveInnerClass.js';
5
5
  import { JSX } from 'solid-js';
6
6
  export interface CorvuPopoverProps extends MayHaveClass, MayHaveInnerClass, MayHaveChildren, ButtonIcon1Props {
7
7
  buttonChildren?: JSX.Element;
8
+ open?: boolean;
9
+ onOpenChange?: (open: boolean) => void;
8
10
  }
9
11
  export declare function CorvuPopover(p: CorvuPopoverProps): JSX.Element;
10
12
  //# sourceMappingURL=CorvuPopover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CorvuPopover.d.ts","sourceRoot":"","sources":["../../../ui/interactive/popover/CorvuPopover.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAK9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAEvE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,WAAW,iBAAkB,SAAQ,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB;IAE3G,cAAc,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;CAC7B;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,iBAAiB,eA8BhD"}
1
+ {"version":3,"file":"CorvuPopover.d.ts","sourceRoot":"","sources":["../../../ui/interactive/popover/CorvuPopover.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAK9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAEvE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,WAAW,iBAAkB,SAAQ,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB;IAE3G,cAAc,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IAE5B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CACvC;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,iBAAiB,eAgChD"}
@@ -14,6 +14,12 @@ function CorvuPopover(p) {
14
14
  flip: true,
15
15
  shift: true
16
16
  },
17
+ get open() {
18
+ return p.open;
19
+ },
20
+ get onOpenChange() {
21
+ return p.onOpenChange;
22
+ },
17
23
  get children() {
18
24
  return [createComponent(src_default.Trigger, {
19
25
  get ["class"]() {
@@ -1 +1 @@
1
- {"version":3,"file":"CorvuPopover.js","names":["classesDisabledDirectly","buttonCva2","ButtonIcon1Props","buttonIconCva","classesButtonClickAnimation","classesPopoverContentMerge","Icon","MayHaveChildren","MayHaveClass","MayHaveInnerClass","Popover","JSX","CorvuPopoverProps","buttonChildren","Element","CorvuPopover","p","_$createComponent","floatingOptions","offset","flip","shift","children","Trigger","class","variant","size","disabled","isDisabled","_$memo","icon","path","iconClass","iconRight","Portal","Content","innerClass"],"sources":["../../../ui/interactive/popover/CorvuPopover.tsx"],"sourcesContent":["import { classesDisabledDirectly } from \"#ui/classes/classesDisabledDirectly.js\"\nimport { buttonCva2 } from \"#ui/interactive/button/buttonCva.js\"\nimport type { ButtonIcon1Props } from \"#ui/interactive/button/ButtonIcon1.jsx\"\nimport { buttonIconCva } from \"#ui/interactive/button/buttonIconCva.js\"\nimport { classesButtonClickAnimation } from \"#ui/interactive/button/classesButtonClickAnimation.js\"\nimport { classesPopoverContentMerge } from \"#ui/interactive/popover/classesPopoverContent.js\"\nimport { Icon } from \"#ui/static/icon/Icon.jsx\"\nimport type { MayHaveChildren } from \"#ui/utils/MayHaveChildren.js\"\nimport type { MayHaveClass } from \"#ui/utils/MayHaveClass.js\"\nimport type { MayHaveInnerClass } from \"#ui/utils/MayHaveInnerClass.js\"\nimport Popover from \"@corvu/popover\"\nimport type { JSX } from \"solid-js\"\n\nexport interface CorvuPopoverProps extends MayHaveClass, MayHaveInnerClass, MayHaveChildren, ButtonIcon1Props {\n // buttonProps: ButtonIcon1Props\n buttonChildren?: JSX.Element\n}\n\nexport function CorvuPopover(p: CorvuPopoverProps) {\n // const [a, buttonProps] = splitProps(p.buttonProps, [\"onClick\"])\n return (\n <Popover\n floatingOptions={{\n offset: 8,\n flip: true,\n shift: true,\n }}\n >\n <Popover.Trigger\n class={buttonCva2(\n p.variant,\n p.size,\n classesButtonClickAnimation,\n (p.disabled || p.isDisabled?.()) && classesDisabledDirectly,\n p.class,\n )}\n >\n {p.icon && <Icon path={p.icon} class={buttonIconCva(p.variant, p.buttonChildren && \"mr-2\", p.iconClass)} />}\n {p.buttonChildren}\n {p.iconRight && (\n <Icon path={p.iconRight} class={buttonIconCva(p.variant, p.buttonChildren && \"ml-2\", p.iconClass)} />\n )}\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content class={classesPopoverContentMerge(p.innerClass)}>{p.children}</Popover.Content>\n </Popover.Portal>\n </Popover>\n )\n}\n"],"mappings":";;;;;;;;;AAkBA,SAAgBe,aAAaC,GAAsB;AAEjD,QAAAC,gBACGP,aAAO;EACNQ,iBAAiB;GACfC,QAAQ;GACRC,MAAM;GACNC,OAAO;GACR;EAAA,IAAAC,WAAA;AAAA,UAAA,CAAAL,gBAEAP,YAAQa,SAAO;IAAA,KAAA,WAAA;AAAA,YACPtB,WACLe,EAAES,SACFT,EAAEU,MACFtB,8BACCY,EAAEW,YAAYX,EAAEY,cAAc,KAAA,iCAC/BZ,EAAEQ,MACH;;IAAA,IAAAF,WAAA;AAAA,YAAA;MAAAO,WAEAA,WAAA,CAAA,CAAAb,EAAEc,KAAI,EAAA,IAAAb,gBAAKX,MAAI;OAAA,IAACyB,OAAI;AAAA,eAAEf,EAAEc;;OAAI,KAAA,WAAA;AAAA,eAAS3B,cAAca,EAAES,SAAST,EAAEH,kBAAkB,QAAQG,EAAEgB,UAAU;;OAAA,CAAI,CAAA;MAAAH,WAC1Gb,EAAEH,eAAc;MAAAgB,WAChBA,WAAA,CAAA,CAAAb,EAAEiB,UAAS,EAAA,IAAAhB,gBACTX,MAAI;OAAA,IAACyB,OAAI;AAAA,eAAEf,EAAEiB;;OAAS,KAAA,WAAA;AAAA,eAAS9B,cAAca,EAAES,SAAST,EAAEH,kBAAkB,QAAQG,EAAEgB,UAAU;;OAAA,CAClG,CAAA;MAAA;;IAAA,CAAA,EAAAf,gBAEFP,YAAQwB,QAAM,EAAA,IAAAZ,WAAA;AAAA,WAAAL,gBACZP,YAAQyB,SAAO;KAAA,KAAA,WAAA;AAAA,aAAQ9B,2BAA2BW,EAAEoB,WAAW;;KAAA,IAAAd,WAAA;AAAA,aAAGN,EAAEM;;KAAQ,CAAA;MAAA,CAAA,CAAA;;EAAA,CAAA"}
1
+ {"version":3,"file":"CorvuPopover.js","names":["classesDisabledDirectly","buttonCva2","ButtonIcon1Props","buttonIconCva","classesButtonClickAnimation","classesPopoverContentMerge","Icon","MayHaveChildren","MayHaveClass","MayHaveInnerClass","Popover","JSX","CorvuPopoverProps","buttonChildren","Element","open","onOpenChange","CorvuPopover","p","_$createComponent","floatingOptions","offset","flip","shift","children","Trigger","class","variant","size","disabled","isDisabled","_$memo","icon","path","iconClass","iconRight","Portal","Content","innerClass"],"sources":["../../../ui/interactive/popover/CorvuPopover.tsx"],"sourcesContent":["import { classesDisabledDirectly } from \"#ui/classes/classesDisabledDirectly.js\"\nimport { buttonCva2 } from \"#ui/interactive/button/buttonCva.js\"\nimport type { ButtonIcon1Props } from \"#ui/interactive/button/ButtonIcon1.jsx\"\nimport { buttonIconCva } from \"#ui/interactive/button/buttonIconCva.js\"\nimport { classesButtonClickAnimation } from \"#ui/interactive/button/classesButtonClickAnimation.js\"\nimport { classesPopoverContentMerge } from \"#ui/interactive/popover/classesPopoverContent.js\"\nimport { Icon } from \"#ui/static/icon/Icon.jsx\"\nimport type { MayHaveChildren } from \"#ui/utils/MayHaveChildren.js\"\nimport type { MayHaveClass } from \"#ui/utils/MayHaveClass.js\"\nimport type { MayHaveInnerClass } from \"#ui/utils/MayHaveInnerClass.js\"\nimport Popover from \"@corvu/popover\"\nimport type { JSX } from \"solid-js\"\n\nexport interface CorvuPopoverProps extends MayHaveClass, MayHaveInnerClass, MayHaveChildren, ButtonIcon1Props {\n // buttonProps: ButtonIcon1Props\n buttonChildren?: JSX.Element\n\n open?: boolean\n onOpenChange?: (open: boolean) => void\n}\n\nexport function CorvuPopover(p: CorvuPopoverProps) {\n // const [a, buttonProps] = splitProps(p.buttonProps, [\"onClick\"])\n return (\n <Popover\n floatingOptions={{\n offset: 8,\n flip: true,\n shift: true,\n }}\n open={p.open}\n onOpenChange={p.onOpenChange}\n >\n <Popover.Trigger\n class={buttonCva2(\n p.variant,\n p.size,\n classesButtonClickAnimation,\n (p.disabled || p.isDisabled?.()) && classesDisabledDirectly,\n p.class,\n )}\n >\n {p.icon && <Icon path={p.icon} class={buttonIconCva(p.variant, p.buttonChildren && \"mr-2\", p.iconClass)} />}\n {p.buttonChildren}\n {p.iconRight && (\n <Icon path={p.iconRight} class={buttonIconCva(p.variant, p.buttonChildren && \"ml-2\", p.iconClass)} />\n )}\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content class={classesPopoverContentMerge(p.innerClass)}>{p.children}</Popover.Content>\n </Popover.Portal>\n </Popover>\n )\n}\n"],"mappings":";;;;;;;;;AAqBA,SAAgBiB,aAAaC,GAAsB;AAEjD,QAAAC,gBACGT,aAAO;EACNU,iBAAiB;GACfC,QAAQ;GACRC,MAAM;GACNC,OAAO;GACR;EAAA,IACDR,OAAI;AAAA,UAAEG,EAAEH;;EAAI,IACZC,eAAY;AAAA,UAAEE,EAAEF;;EAAY,IAAAQ,WAAA;AAAA,UAAA,CAAAL,gBAE3BT,YAAQe,SAAO;IAAA,KAAA,WAAA;AAAA,YACPxB,WACLiB,EAAES,SACFT,EAAEU,MACFxB,8BACCc,EAAEW,YAAYX,EAAEY,cAAc,KAAA,iCAC/BZ,EAAEQ,MACH;;IAAA,IAAAF,WAAA;AAAA,YAAA;MAAAO,WAEAA,WAAA,CAAA,CAAAb,EAAEc,KAAI,EAAA,IAAAb,gBAAKb,MAAI;OAAA,IAAC2B,OAAI;AAAA,eAAEf,EAAEc;;OAAI,KAAA,WAAA;AAAA,eAAS7B,cAAce,EAAES,SAAST,EAAEL,kBAAkB,QAAQK,EAAEgB,UAAU;;OAAA,CAAI,CAAA;MAAAH,WAC1Gb,EAAEL,eAAc;MAAAkB,WAChBA,WAAA,CAAA,CAAAb,EAAEiB,UAAS,EAAA,IAAAhB,gBACTb,MAAI;OAAA,IAAC2B,OAAI;AAAA,eAAEf,EAAEiB;;OAAS,KAAA,WAAA;AAAA,eAAShC,cAAce,EAAES,SAAST,EAAEL,kBAAkB,QAAQK,EAAEgB,UAAU;;OAAA,CAClG,CAAA;MAAA;;IAAA,CAAA,EAAAf,gBAEFT,YAAQ0B,QAAM,EAAA,IAAAZ,WAAA;AAAA,WAAAL,gBACZT,YAAQ2B,SAAO;KAAA,KAAA,WAAA;AAAA,aAAQhC,2BAA2Ba,EAAEoB,WAAW;;KAAA,IAAAd,WAAA;AAAA,aAAGN,EAAEM;;KAAQ,CAAA;MAAA,CAAA,CAAA;;EAAA,CAAA"}
@@ -7,6 +7,8 @@ import { MayHaveInnerClass } from '#ui/utils/MayHaveInnerClass.js';
7
7
  import { MayHaveIsLoading } from '#ui/utils/MayHaveIsLoading.js';
8
8
  import { Component, ComponentProps } from 'solid-js';
9
9
  export interface CorvuPopoverIconProps extends Omit<ComponentProps<"button">, "title">, ButtonCvaProps, HasIcon, HasTitle, MayHaveClass, MayHaveInnerClass, MayHaveChildren, MayHaveIsLoading {
10
+ open?: boolean;
11
+ onOpenChange?: (open: boolean) => void;
10
12
  }
11
13
  export declare const CorvuPopoverIcon: Component<CorvuPopoverIconProps>;
12
14
  //# sourceMappingURL=CorvuPopoverIcon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CorvuPopoverIcon.d.ts","sourceRoot":"","sources":["../../../ui/interactive/popover/CorvuPopoverIcon.tsx"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAK5F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAa,KAAK,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAEhF,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAc,MAAM,UAAU,CAAA;AAE1E,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,EAC7C,cAAc,EACd,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,gBAAgB;CAAG;AAEvB,eAAO,MAAM,gBAAgB,EAAE,SAAS,CAAC,qBAAqB,CA8C7D,CAAA"}
1
+ {"version":3,"file":"CorvuPopoverIcon.d.ts","sourceRoot":"","sources":["../../../ui/interactive/popover/CorvuPopoverIcon.tsx"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,qCAAqC,CAAA;AAK5F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAa,KAAK,gBAAgB,EAAE,MAAM,+BAA+B,CAAA;AAEhF,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAc,MAAM,UAAU,CAAA;AAE1E,MAAM,WAAW,qBACf,SACE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,EACvC,cAAc,EACd,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,gBAAgB;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CACvC;AAED,eAAO,MAAM,gBAAgB,EAAE,SAAS,CAAC,qBAAqB,CAmD7D,CAAA"}
@@ -20,7 +20,9 @@ var CorvuPopoverIcon = (p) => {
20
20
  "icon",
21
21
  "iconClass",
22
22
  "innerClass",
23
- "children"
23
+ "children",
24
+ "open",
25
+ "onOpenChange"
24
26
  ]);
25
27
  return createComponent(src_default, {
26
28
  floatingOptions: {
@@ -28,6 +30,12 @@ var CorvuPopoverIcon = (p) => {
28
30
  flip: true,
29
31
  shift: true
30
32
  },
33
+ get open() {
34
+ return s.open;
35
+ },
36
+ get onOpenChange() {
37
+ return s.onOpenChange;
38
+ },
31
39
  get children() {
32
40
  return [createComponent(src_default.Trigger, mergeProps$1({
33
41
  get ["class"]() {
@@ -1 +1 @@
1
- {"version":3,"file":"CorvuPopoverIcon.js","names":["classesDisabledDirectly","buttonCvaIconOnly","ButtonCvaProps","buttonIconCva","classesButtonClickAnimation","classesPopoverContentMerge","Icon","HasIcon","HasTitle","MayHaveChildren","MayHaveClass","MayHaveInnerClass","isLoading","MayHaveIsLoading","Popover","Component","ComponentProps","splitProps","CorvuPopoverIconProps","Omit","CorvuPopoverIcon","p","s","rest","_$createComponent","floatingOptions","offset","flip","shift","children","Trigger","_$mergeProps","class","variant","disabled","title","path","icon","iconClass","Portal","Content","innerClass"],"sources":["../../../ui/interactive/popover/CorvuPopoverIcon.tsx"],"sourcesContent":["import { classesDisabledDirectly } from \"#ui/classes/classesDisabledDirectly.js\"\nimport { buttonCvaIconOnly, type ButtonCvaProps } from \"#ui/interactive/button/buttonCva.js\"\nimport { buttonIconCva } from \"#ui/interactive/button/buttonIconCva.js\"\nimport { classesButtonClickAnimation } from \"#ui/interactive/button/classesButtonClickAnimation.js\"\nimport { classesPopoverContentMerge } from \"#ui/interactive/popover/classesPopoverContent.js\"\nimport { Icon } from \"#ui/static/icon/Icon.jsx\"\nimport type { HasIcon } from \"#ui/utils/HasIcon.js\"\nimport type { HasTitle } from \"#ui/utils/HasTitle.js\"\nimport type { MayHaveChildren } from \"#ui/utils/MayHaveChildren.js\"\nimport type { MayHaveClass } from \"#ui/utils/MayHaveClass.js\"\nimport type { MayHaveInnerClass } from \"#ui/utils/MayHaveInnerClass.js\"\nimport { isLoading, type MayHaveIsLoading } from \"#ui/utils/MayHaveIsLoading.js\"\nimport Popover from \"@corvu/popover\"\nimport { type Component, type ComponentProps, splitProps } from \"solid-js\"\n\nexport interface CorvuPopoverIconProps\n extends Omit<ComponentProps<\"button\">, \"title\">,\n ButtonCvaProps,\n HasIcon,\n HasTitle,\n MayHaveClass,\n MayHaveInnerClass,\n MayHaveChildren,\n MayHaveIsLoading {}\n\nexport const CorvuPopoverIcon: Component<CorvuPopoverIconProps> = (p) => {\n const [s, rest] = splitProps(p, [\n // button\n \"variant\",\n \"size\",\n \"class\",\n // state\n \"isLoading\",\n \"disabled\",\n // icons\n \"title\",\n \"icon\",\n \"iconClass\",\n // popover\n \"innerClass\",\n \"children\",\n ])\n\n return (\n <Popover\n floatingOptions={{\n offset: 8,\n flip: true,\n shift: true,\n }}\n >\n <Popover.Trigger\n class={buttonCvaIconOnly(s.variant, isLoading(p), s.disabled, classesButtonClickAnimation, s.class)}\n title={s.title}\n {...rest}\n >\n <Icon\n path={s.icon}\n class={buttonIconCva(\n s.variant,\n isLoading(p) && \"animate-spin-faster\",\n s.disabled && classesDisabledDirectly,\n s.iconClass,\n )}\n />\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content class={classesPopoverContentMerge(s.innerClass)}>{s.children}</Popover.Content>\n </Popover.Portal>\n </Popover>\n )\n}\n"],"mappings":";;;;;;;;;;;AAyBA,IAAaoB,oBAAsDC,MAAM;CACvE,MAAM,CAACC,GAAGC,QAAQN,WAAWI,GAAG;EAE9B;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;EACA;EACD,CAAC;AAEF,QAAAG,gBACGV,aAAO;EACNW,iBAAiB;GACfC,QAAQ;GACRC,MAAM;GACNC,OAAO;GACR;EAAA,IAAAC,WAAA;AAAA,UAAA,CAAAL,gBAEAV,YAAQgB,SAAOC,aAAA;IAAA,KAAA,WAAA;AAAA,YACP9B,kBAAkBqB,EAAEW,SAASrB,UAAUS,EAAE,EAAEC,EAAEY,UAAU9B,6BAA6BkB,EAAEU,MAAM;;IAAA,IACnGG,QAAK;AAAA,YAAEb,EAAEa;;IAAK,EACVZ,MAAI,EAAA,IAAAM,WAAA;AAAA,WAAAL,gBAEPlB,MAAI;KAAA,IACH8B,OAAI;AAAA,aAAEd,EAAEe;;KAAI,KAAA,WAAA;AAAA,aACLlC,cACLmB,EAAEW,SACFrB,UAAUS,EAAE,IAAI,uBAChBC,EAAEY,YAAAA,iCACFZ,EAAEgB,UACH;;KAAA,CAAA;MAAA,CAAA,CAAA,EAAAd,gBAGJV,YAAQyB,QAAM,EAAA,IAAAV,WAAA;AAAA,WAAAL,gBACZV,YAAQ0B,SAAO;KAAA,KAAA,WAAA;AAAA,aAAQnC,2BAA2BiB,EAAEmB,WAAW;;KAAA,IAAAZ,WAAA;AAAA,aAAGP,EAAEO;;KAAQ,CAAA;MAAA,CAAA,CAAA;;EAAA,CAAA"}
1
+ {"version":3,"file":"CorvuPopoverIcon.js","names":["classesDisabledDirectly","buttonCvaIconOnly","ButtonCvaProps","buttonIconCva","classesButtonClickAnimation","classesPopoverContentMerge","Icon","HasIcon","HasTitle","MayHaveChildren","MayHaveClass","MayHaveInnerClass","isLoading","MayHaveIsLoading","Popover","Component","ComponentProps","splitProps","CorvuPopoverIconProps","Omit","open","onOpenChange","CorvuPopoverIcon","p","s","rest","_$createComponent","floatingOptions","offset","flip","shift","children","Trigger","_$mergeProps","class","variant","disabled","title","path","icon","iconClass","Portal","Content","innerClass"],"sources":["../../../ui/interactive/popover/CorvuPopoverIcon.tsx"],"sourcesContent":["import { classesDisabledDirectly } from \"#ui/classes/classesDisabledDirectly.js\"\nimport { buttonCvaIconOnly, type ButtonCvaProps } from \"#ui/interactive/button/buttonCva.js\"\nimport { buttonIconCva } from \"#ui/interactive/button/buttonIconCva.js\"\nimport { classesButtonClickAnimation } from \"#ui/interactive/button/classesButtonClickAnimation.js\"\nimport { classesPopoverContentMerge } from \"#ui/interactive/popover/classesPopoverContent.js\"\nimport { Icon } from \"#ui/static/icon/Icon.jsx\"\nimport type { HasIcon } from \"#ui/utils/HasIcon.js\"\nimport type { HasTitle } from \"#ui/utils/HasTitle.js\"\nimport type { MayHaveChildren } from \"#ui/utils/MayHaveChildren.js\"\nimport type { MayHaveClass } from \"#ui/utils/MayHaveClass.js\"\nimport type { MayHaveInnerClass } from \"#ui/utils/MayHaveInnerClass.js\"\nimport { isLoading, type MayHaveIsLoading } from \"#ui/utils/MayHaveIsLoading.js\"\nimport Popover from \"@corvu/popover\"\nimport { type Component, type ComponentProps, splitProps } from \"solid-js\"\n\nexport interface CorvuPopoverIconProps\n extends\n Omit<ComponentProps<\"button\">, \"title\">,\n ButtonCvaProps,\n HasIcon,\n HasTitle,\n MayHaveClass,\n MayHaveInnerClass,\n MayHaveChildren,\n MayHaveIsLoading {\n open?: boolean\n onOpenChange?: (open: boolean) => void\n}\n\nexport const CorvuPopoverIcon: Component<CorvuPopoverIconProps> = (p) => {\n const [s, rest] = splitProps(p, [\n // button\n \"variant\",\n \"size\",\n \"class\",\n // state\n \"isLoading\",\n \"disabled\",\n // icons\n \"title\",\n \"icon\",\n \"iconClass\",\n // popover\n \"innerClass\",\n \"children\",\n // state\n \"open\",\n \"onOpenChange\",\n ])\n\n return (\n <Popover\n floatingOptions={{\n offset: 8,\n flip: true,\n shift: true,\n }}\n open={s.open}\n onOpenChange={s.onOpenChange}\n >\n <Popover.Trigger\n class={buttonCvaIconOnly(s.variant, isLoading(p), s.disabled, classesButtonClickAnimation, s.class)}\n title={s.title}\n {...rest}\n >\n <Icon\n path={s.icon}\n class={buttonIconCva(\n s.variant,\n isLoading(p) && \"animate-spin-faster\",\n s.disabled && classesDisabledDirectly,\n s.iconClass,\n )}\n />\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content class={classesPopoverContentMerge(s.innerClass)}>{s.children}</Popover.Content>\n </Popover.Portal>\n </Popover>\n )\n}\n"],"mappings":";;;;;;;;;;;AA6BA,IAAasB,oBAAsDC,MAAM;CACvE,MAAM,CAACC,GAAGC,QAAQR,WAAWM,GAAG;EAE9B;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACD,CAAC;AAEF,QAAAG,gBACGZ,aAAO;EACNa,iBAAiB;GACfC,QAAQ;GACRC,MAAM;GACNC,OAAO;GACR;EAAA,IACDV,OAAI;AAAA,UAAEI,EAAEJ;;EAAI,IACZC,eAAY;AAAA,UAAEG,EAAEH;;EAAY,IAAAU,WAAA;AAAA,UAAA,CAAAL,gBAE3BZ,YAAQkB,SAAOC,aAAA;IAAA,KAAA,WAAA;AAAA,YACPhC,kBAAkBuB,EAAEW,SAASvB,UAAUW,EAAE,EAAEC,EAAEY,UAAUhC,6BAA6BoB,EAAEU,MAAM;;IAAA,IACnGG,QAAK;AAAA,YAAEb,EAAEa;;IAAK,EACVZ,MAAI,EAAA,IAAAM,WAAA;AAAA,WAAAL,gBAEPpB,MAAI;KAAA,IACHgC,OAAI;AAAA,aAAEd,EAAEe;;KAAI,KAAA,WAAA;AAAA,aACLpC,cACLqB,EAAEW,SACFvB,UAAUW,EAAE,IAAI,uBAChBC,EAAEY,YAAAA,iCACFZ,EAAEgB,UACH;;KAAA,CAAA;MAAA,CAAA,CAAA,EAAAd,gBAGJZ,YAAQ2B,QAAM,EAAA,IAAAV,WAAA;AAAA,WAAAL,gBACZZ,YAAQ4B,SAAO;KAAA,KAAA,WAAA;AAAA,aAAQrC,2BAA2BmB,EAAEmB,WAAW;;KAAA,IAAAZ,WAAA;AAAA,aAAGP,EAAEO;;KAAQ,CAAA;MAAA,CAAA,CAAA;;EAAA,CAAA"}
@@ -0,0 +1,16 @@
1
+ import { CorcuDialogTexts } from '#ui/interactive/dialog/CorcuDialogTexts.js';
2
+ import { SidebarState } from '#ui/interactive/sidebar/SidebarState.jsx';
3
+ import { HasChildren } from '#ui/utils/HasChildren.js';
4
+ import { MayHaveClass } from '#ui/utils/MayHaveClass.js';
5
+ export interface SidebarProps extends HasChildren, MayHaveClass {
6
+ state: SidebarState;
7
+ defaultWidth?: number;
8
+ debounceMs?: number;
9
+ title: string;
10
+ description?: string;
11
+ titleClass?: string;
12
+ descriptionClass?: string;
13
+ texts?: CorcuDialogTexts;
14
+ }
15
+ export declare function Sidebar(p: SidebarProps): import("solid-js").JSX.Element;
16
+ //# sourceMappingURL=Sidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.d.ts","sourceRoot":"","sources":["../../../ui/interactive/sidebar/Sidebar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAA;AAElF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAA;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAI7D,MAAM,WAAW,YAAa,SAAQ,WAAW,EAAE,YAAY;IAC7D,KAAK,EAAE,YAAY,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,CAAA;IAKnB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,gBAAgB,CAAA;CACzB;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,YAAY,kCAuBtC"}
@@ -0,0 +1,46 @@
1
+ import { SidebarMobileDrawer } from "./SidebarMobileDrawer.js";
2
+ import { Show, onMount, splitProps } from "solid-js";
3
+ import { createComponent, memo, mergeProps as mergeProps$1 } from "solid-js/web";
4
+ import { debounce } from "@solid-primitives/scheduled";
5
+ //#region ui/interactive/sidebar/Sidebar.tsx
6
+ function Sidebar(p) {
7
+ const [s, rest] = splitProps(p, [
8
+ "state",
9
+ "defaultWidth",
10
+ "debounceMs",
11
+ "children",
12
+ "class"
13
+ ]);
14
+ onMount(() => {
15
+ const checkMobile = debounce(() => p.state.isMobile.set(window.innerWidth < (p.defaultWidth ?? 768)), p.debounceMs ?? 200);
16
+ checkMobile();
17
+ window.addEventListener("resize", checkMobile);
18
+ return () => window.removeEventListener("resize", checkMobile);
19
+ });
20
+ return [createComponent(Show, {
21
+ get when() {
22
+ return memo(() => !!!p.state.isMobile.get())() && p.state.openDesktop.get();
23
+ },
24
+ get children() {
25
+ return p.children;
26
+ }
27
+ }), createComponent(Show, {
28
+ get when() {
29
+ return p.state.isMobile.get();
30
+ },
31
+ get children() {
32
+ return createComponent(SidebarMobileDrawer, mergeProps$1(rest, {
33
+ get open() {
34
+ return p.state.openMobile;
35
+ },
36
+ get children() {
37
+ return p.children;
38
+ }
39
+ }));
40
+ }
41
+ })];
42
+ }
43
+ //#endregion
44
+ export { Sidebar };
45
+
46
+ //# sourceMappingURL=Sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sidebar.js","names":["CorcuDialogTexts","SidebarMobileDrawer","SidebarState","HasChildren","MayHaveClass","debounce","onMount","Show","splitProps","SidebarProps","state","defaultWidth","debounceMs","title","description","titleClass","descriptionClass","texts","Sidebar","p","s","rest","checkMobile","isMobile","set","window","innerWidth","addEventListener","removeEventListener","_$createComponent","when","_$memo","get","openDesktop","children","_$mergeProps","open","openMobile"],"sources":["../../../ui/interactive/sidebar/Sidebar.tsx"],"sourcesContent":["import type { CorcuDialogTexts } from \"#ui/interactive/dialog/CorcuDialogTexts.js\"\nimport { SidebarMobileDrawer } from \"#ui/interactive/sidebar/SidebarMobileDrawer.jsx\"\nimport type { SidebarState } from \"#ui/interactive/sidebar/SidebarState.jsx\"\nimport type { HasChildren } from \"#ui/utils/HasChildren.js\"\nimport type { MayHaveClass } from \"#ui/utils/MayHaveClass.js\"\nimport { debounce } from \"@solid-primitives/scheduled\"\nimport { onMount, Show, splitProps } from \"solid-js\"\n\nexport interface SidebarProps extends HasChildren, MayHaveClass {\n state: SidebarState\n defaultWidth?: number\n debounceMs?: number\n\n //\n // props for mobile dialog\n //\n title: string\n description?: string\n titleClass?: string\n descriptionClass?: string\n texts?: CorcuDialogTexts\n}\n\nexport function Sidebar(p: SidebarProps) {\n const [s, rest] = splitProps(p, [\"state\", \"defaultWidth\", \"debounceMs\", \"children\", \"class\"])\n\n onMount(() => {\n const checkMobile = debounce(\n () => p.state.isMobile.set(window.innerWidth < (p.defaultWidth ?? 768)),\n p.debounceMs ?? 200,\n )\n checkMobile()\n window.addEventListener(\"resize\", checkMobile)\n return () => window.removeEventListener(\"resize\", checkMobile)\n })\n\n return (\n <>\n <Show when={!p.state.isMobile.get() && p.state.openDesktop.get()}>{p.children}</Show>\n <Show when={p.state.isMobile.get()}>\n <SidebarMobileDrawer {...rest} open={p.state.openMobile}>\n {p.children}\n </SidebarMobileDrawer>\n </Show>\n </>\n )\n}\n"],"mappings":";;;;;AAuBA,SAAgBkB,QAAQC,GAAiB;CACvC,MAAM,CAACC,GAAGC,QAAQb,WAAWW,GAAG;EAAC;EAAS;EAAgB;EAAc;EAAY;EAAQ,CAAC;AAE7Fb,eAAc;EACZ,MAAMgB,cAAcjB,eACZc,EAAET,MAAMa,SAASC,IAAIC,OAAOC,cAAcP,EAAER,gBAAgB,KAAK,EACvEQ,EAAEP,cAAc,IACjB;AACDU,eAAa;AACbG,SAAOE,iBAAiB,UAAUL,YAAY;AAC9C,eAAaG,OAAOG,oBAAoB,UAAUN,YAAY;GAC9D;AAEF,QAAA,CAAAO,gBAEKtB,MAAI;EAAA,IAACuB,OAAI;AAAA,UAAEC,WAAA,CAAA,CAAA,CAACZ,EAAET,MAAMa,SAASS,KAAK,CAAA,EAAA,IAAIb,EAAET,MAAMuB,YAAYD,KAAK;;EAAA,IAAAE,WAAA;AAAA,UAAGf,EAAEe;;EAAQ,CAAA,EAAAL,gBAC5EtB,MAAI;EAAA,IAACuB,OAAI;AAAA,UAAEX,EAAET,MAAMa,SAASS,KAAK;;EAAA,IAAAE,WAAA;AAAA,UAAAL,gBAC/B5B,qBAAmBkC,aAAKd,MAAI;IAAA,IAAEe,OAAI;AAAA,YAAEjB,EAAET,MAAM2B;;IAAU,IAAAH,WAAA;AAAA,YACpDf,EAAEe;;IAAQ,CAAA,CAAA;;EAAA,CAAA,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { CorvuDialogProps } from '#ui/interactive/dialog/CorvuDialog.jsx';
2
+ import { SignalObject } from '#ui/utils/createSignalObject.js';
3
+ export interface SidebarMobileDrawerProps extends Omit<CorvuDialogProps, "open" | "onOpenChange"> {
4
+ open: SignalObject<boolean>;
5
+ }
6
+ export declare function SidebarMobileDrawer(p: SidebarMobileDrawerProps): import("solid-js").JSX.Element;
7
+ //# sourceMappingURL=SidebarMobileDrawer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarMobileDrawer.d.ts","sourceRoot":"","sources":["../../../ui/interactive/sidebar/SidebarMobileDrawer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAE3F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAGnE,MAAM,WAAW,wBAAyB,SAAQ,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,cAAc,CAAC;IAC/F,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;CAC5B;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,wBAAwB,kCAU9D"}
@@ -0,0 +1,21 @@
1
+ import { classMerge } from "../../utils/classMerge.js";
2
+ import { CorvuDialog } from "../dialog/CorvuDialog.js";
3
+ import { splitProps } from "solid-js";
4
+ import { createComponent, mergeProps as mergeProps$1 } from "solid-js/web";
5
+ //#region ui/interactive/sidebar/SidebarMobileDrawer.tsx
6
+ function SidebarMobileDrawer(p) {
7
+ const [s, rest] = splitProps(p, ["open", "class"]);
8
+ return createComponent(CorvuDialog, mergeProps$1(rest, {
9
+ get open() {
10
+ return s.open.get();
11
+ },
12
+ onOpenChange: (open) => s.open.set(open),
13
+ get ["class"]() {
14
+ return classMerge("hidden", s.class);
15
+ }
16
+ }));
17
+ }
18
+ //#endregion
19
+ export { SidebarMobileDrawer };
20
+
21
+ //# sourceMappingURL=SidebarMobileDrawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarMobileDrawer.js","names":["CorvuDialog","CorvuDialogProps","classMerge","SignalObject","splitProps","SidebarMobileDrawerProps","Omit","open","SidebarMobileDrawer","p","s","rest","_$createComponent","_$mergeProps","get","onOpenChange","set","class"],"sources":["../../../ui/interactive/sidebar/SidebarMobileDrawer.tsx"],"sourcesContent":["import { CorvuDialog, type CorvuDialogProps } from \"#ui/interactive/dialog/CorvuDialog.jsx\"\nimport { classMerge } from \"#ui/utils/classMerge.js\"\nimport type { SignalObject } from \"#ui/utils/createSignalObject.js\"\nimport { splitProps } from \"solid-js\"\n\nexport interface SidebarMobileDrawerProps extends Omit<CorvuDialogProps, \"open\" | \"onOpenChange\"> {\n open: SignalObject<boolean>\n}\n\nexport function SidebarMobileDrawer(p: SidebarMobileDrawerProps) {\n const [s, rest] = splitProps(p, [\"open\", \"class\"])\n return (\n <CorvuDialog\n {...rest}\n open={s.open.get()}\n onOpenChange={(open) => s.open.set(open)}\n class={classMerge(\"hidden\", s.class)}\n />\n )\n}\n"],"mappings":";;;;;AASA,SAAgBQ,oBAAoBC,GAA6B;CAC/D,MAAM,CAACC,GAAGC,QAAQP,WAAWK,GAAG,CAAC,QAAQ,QAAQ,CAAC;AAClD,QAAAG,gBACGZ,aAAWa,aACNF,MAAI;EAAA,IACRJ,OAAI;AAAA,UAAEG,EAAEH,KAAKO,KAAK;;EAClBC,eAAeR,SAASG,EAAEH,KAAKS,IAAIT,KAAK;EAAA,KAAA,WAAA;AAAA,UACjCL,WAAW,UAAUQ,EAAEO,MAAM;;EAAA,CAAA,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { SignalObject } from '#ui/utils/createSignalObject.js';
2
+ export interface SidebarState {
3
+ openDesktop: SignalObject<boolean>;
4
+ openMobile: SignalObject<boolean>;
5
+ isMobile: SignalObject<boolean>;
6
+ }
7
+ //# sourceMappingURL=SidebarState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarState.d.ts","sourceRoot":"","sources":["../../../ui/interactive/sidebar/SidebarState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAEnE,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;IAClC,UAAU,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;IACjC,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;CAChC"}
File without changes
@@ -0,0 +1,16 @@
1
+ import { SidebarState } from '#ui/interactive/sidebar/SidebarState.jsx';
2
+ import { MayHaveButtonVariant } from '#ui/utils/MayHaveButtonVariant.js';
3
+ import { MayHaveChildren } from '#ui/utils/MayHaveChildren.js';
4
+ import { MayHaveClass } from '#ui/utils/MayHaveClass.js';
5
+ export interface SidebarToggleProps extends SidebarState, SidebarToggleClasses, MayHaveChildren, MayHaveClass, MayHaveButtonVariant {
6
+ iconClass?: string;
7
+ }
8
+ interface SidebarToggleClasses {
9
+ iconDesktopOpen?: string;
10
+ iconDesktopClose?: string;
11
+ iconMobileOpen?: string;
12
+ iconMobileClose?: string;
13
+ }
14
+ export declare function SidebarToggle(p: SidebarToggleProps): import("solid-js").JSX.Element;
15
+ export {};
16
+ //# sourceMappingURL=SidebarToggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarToggle.d.ts","sourceRoot":"","sources":["../../../ui/interactive/sidebar/SidebarToggle.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAA;AAE5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAG7D,MAAM,WAAW,kBACf,SAAQ,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,YAAY,EAAE,oBAAoB;IAC/F,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,UAAU,oBAAoB;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,kBAAkB,kCAqBlD"}
@@ -0,0 +1,47 @@
1
+ import { Icon } from "../../static/icon/Icon.js";
2
+ import { ButtonIcon } from "../button/ButtonIcon.js";
3
+ import { ttt } from "../../i18n/ttt.js";
4
+ import { createComponent, memo } from "solid-js/web";
5
+ import { mdiChevronLeft, mdiChevronRight, mdiClose, mdiMenu } from "@mdi/js";
6
+ //#region ui/interactive/sidebar/SidebarToggle.tsx
7
+ function SidebarToggle(p) {
8
+ const isOpen = () => p.isMobile.get() ? p.openMobile.get() : p.openDesktop.get();
9
+ const handleToggle = () => {
10
+ if (p.isMobile.get()) p.openMobile.set(!p.openMobile.get());
11
+ else p.openDesktop.set(!p.openDesktop.get());
12
+ };
13
+ return createComponent(ButtonIcon, {
14
+ get variant() {
15
+ return p.variant;
16
+ },
17
+ onClick: handleToggle,
18
+ get title() {
19
+ return memo(() => !!isOpen())() ? ttt("Close sidebar") : ttt("Open sidebar");
20
+ },
21
+ get ["class"]() {
22
+ return p.class;
23
+ },
24
+ get children() {
25
+ return memo(() => !!p.children)() ? p.children : createComponent(Icon, {
26
+ get path() {
27
+ return getIcon(p);
28
+ },
29
+ get ["class"]() {
30
+ return p.iconClass;
31
+ }
32
+ });
33
+ }
34
+ });
35
+ }
36
+ function getIcon(p) {
37
+ if (p.isMobile) {
38
+ if (p.openMobile) return p.iconMobileOpen ?? mdiMenu;
39
+ return p.iconMobileClose ?? mdiClose;
40
+ }
41
+ if (p.openDesktop) return p.iconDesktopOpen ?? mdiChevronLeft;
42
+ return p.iconDesktopClose ?? mdiChevronRight;
43
+ }
44
+ //#endregion
45
+ export { SidebarToggle };
46
+
47
+ //# sourceMappingURL=SidebarToggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SidebarToggle.js","names":["ttt","ButtonIcon","SidebarState","Icon","MayHaveButtonVariant","MayHaveChildren","MayHaveClass","mdiChevronLeft","mdiChevronRight","mdiClose","mdiMenu","SidebarToggleProps","SidebarToggleClasses","iconClass","iconDesktopOpen","iconDesktopClose","iconMobileOpen","iconMobileClose","SidebarToggle","p","isOpen","isMobile","get","openMobile","openDesktop","handleToggle","set","_$createComponent","variant","onClick","title","_$memo","class","children","path","getIcon"],"sources":["../../../ui/interactive/sidebar/SidebarToggle.tsx"],"sourcesContent":["import { ttt } from \"#ui/i18n/ttt.js\"\nimport { ButtonIcon } from \"#ui/interactive/button/ButtonIcon.jsx\"\nimport type { SidebarState } from \"#ui/interactive/sidebar/SidebarState.jsx\"\nimport { Icon } from \"#ui/static/icon/Icon.jsx\"\nimport type { MayHaveButtonVariant } from \"#ui/utils/MayHaveButtonVariant.js\"\nimport type { MayHaveChildren } from \"#ui/utils/MayHaveChildren.js\"\nimport type { MayHaveClass } from \"#ui/utils/MayHaveClass.js\"\nimport { mdiChevronLeft, mdiChevronRight, mdiClose, mdiMenu } from \"@mdi/js\"\n\nexport interface SidebarToggleProps\n extends SidebarState, SidebarToggleClasses, MayHaveChildren, MayHaveClass, MayHaveButtonVariant {\n iconClass?: string\n}\n\ninterface SidebarToggleClasses {\n iconDesktopOpen?: string\n iconDesktopClose?: string\n iconMobileOpen?: string\n iconMobileClose?: string\n}\n\nexport function SidebarToggle(p: SidebarToggleProps) {\n const isOpen = () => (p.isMobile.get() ? p.openMobile.get() : p.openDesktop.get())\n\n const handleToggle = () => {\n if (p.isMobile.get()) {\n p.openMobile.set(!p.openMobile.get())\n } else {\n p.openDesktop.set(!p.openDesktop.get())\n }\n }\n\n return (\n <ButtonIcon\n variant={p.variant}\n onClick={handleToggle}\n title={isOpen() ? ttt(\"Close sidebar\") : ttt(\"Open sidebar\")}\n class={p.class}\n >\n {p.children ? p.children : <Icon path={getIcon(p)} class={p.iconClass} />}\n </ButtonIcon>\n )\n}\n\nfunction getIcon(p: SidebarToggleProps): string {\n if (p.isMobile) {\n if (p.openMobile) {\n return p.iconMobileOpen ?? mdiMenu\n }\n return p.iconMobileClose ?? mdiClose\n }\n if (p.openDesktop) {\n return p.iconDesktopOpen ?? mdiChevronLeft\n }\n return p.iconDesktopClose ?? mdiChevronRight\n}\n"],"mappings":";;;;;;AAqBA,SAAgBkB,cAAcC,GAAuB;CACnD,MAAMC,eAAgBD,EAAEE,SAASC,KAAK,GAAGH,EAAEI,WAAWD,KAAK,GAAGH,EAAEK,YAAYF,KAAM;CAElF,MAAMG,qBAAqB;AACzB,MAAIN,EAAEE,SAASC,KAAK,CAClBH,GAAEI,WAAWG,IAAI,CAACP,EAAEI,WAAWD,KAAK,CAAC;MAErCH,GAAEK,YAAYE,IAAI,CAACP,EAAEK,YAAYF,KAAK,CAAC;;AAI3C,QAAAK,gBACG1B,YAAU;EAAA,IACT2B,UAAO;AAAA,UAAET,EAAES;;EACXC,SAASJ;EAAY,IACrBK,QAAK;AAAA,UAAEC,WAAA,CAAA,CAAAX,QAAQ,CAAA,EAAA,GAAGpB,IAAI,gBAAgB,GAAGA,IAAI,eAAe;;EAAA,KAAA,WAAA;AAAA,UACrDmB,EAAEa;;EAAK,IAAAC,WAAA;AAAA,UAEbF,WAAA,CAAA,CAAAZ,EAAEc,SAAQ,EAAA,GAAGd,EAAEc,WAAQN,gBAAIxB,MAAI;IAAA,IAAC+B,OAAI;AAAA,YAAEC,QAAQhB,EAAE;;IAAA,KAAA,WAAA;AAAA,YAASA,EAAEN;;IAAS,CAAI;;EAAA,CAAA;;AAK/E,SAASsB,QAAQhB,GAA+B;AAC9C,KAAIA,EAAEE,UAAU;AACd,MAAIF,EAAEI,WACJ,QAAOJ,EAAEH,kBAAkBN;AAE7B,SAAOS,EAAEF,mBAAmBR;;AAE9B,KAAIU,EAAEK,YACJ,QAAOL,EAAEL,mBAAmBP;AAE9B,QAAOY,EAAEJ,oBAAoBP"}
@@ -0,0 +1,3 @@
1
+ import { SidebarState } from '#ui/interactive/sidebar/SidebarState.jsx';
2
+ export declare function createSidebarState(initialOpenDesktop?: boolean, initialOpenMobile?: boolean, initialIsMobile?: boolean): SidebarState;
3
+ //# sourceMappingURL=createSidebarState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSidebarState.d.ts","sourceRoot":"","sources":["../../../ui/interactive/sidebar/createSidebarState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAA;AAG5E,wBAAgB,kBAAkB,CAChC,kBAAkB,UAAO,EACzB,iBAAiB,UAAO,EACxB,eAAe,UAAQ,GACtB,YAAY,CAMd"}
@@ -0,0 +1,13 @@
1
+ import { createSignalObject } from "../../utils/createSignalObject.js";
2
+ //#region ui/interactive/sidebar/createSidebarState.tsx
3
+ function createSidebarState(initialOpenDesktop = true, initialOpenMobile = true, initialIsMobile = false) {
4
+ return {
5
+ openDesktop: createSignalObject(initialOpenDesktop),
6
+ openMobile: createSignalObject(initialOpenMobile),
7
+ isMobile: createSignalObject(initialIsMobile)
8
+ };
9
+ }
10
+ //#endregion
11
+ export { createSidebarState };
12
+
13
+ //# sourceMappingURL=createSidebarState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createSidebarState.js","names":["SidebarState","createSignalObject","createSidebarState","initialOpenDesktop","initialOpenMobile","initialIsMobile","openDesktop","openMobile","isMobile"],"sources":["../../../ui/interactive/sidebar/createSidebarState.tsx"],"sourcesContent":["import type { SidebarState } from \"#ui/interactive/sidebar/SidebarState.jsx\"\nimport { createSignalObject } from \"#ui/utils/createSignalObject.js\"\n\nexport function createSidebarState(\n initialOpenDesktop = true,\n initialOpenMobile = true,\n initialIsMobile = false,\n): SidebarState {\n return {\n openDesktop: createSignalObject(initialOpenDesktop),\n openMobile: createSignalObject(initialOpenMobile),\n isMobile: createSignalObject(initialIsMobile),\n }\n}\n"],"mappings":";;AAGA,SAAgBE,mBACdC,qBAAqB,MACrBC,oBAAoB,MACpBC,kBAAkB,OACJ;AACd,QAAO;EACLC,aAAaL,mBAAmBE,mBAAmB;EACnDI,YAAYN,mBAAmBG,kBAAkB;EACjDI,UAAUP,mBAAmBI,gBAAe;EAC7C"}
@@ -0,0 +1,4 @@
1
+ export { Sidebar, type SidebarProps } from './Sidebar.jsx';
2
+ export { SidebarMobileDrawer, type SidebarMobileDrawerProps } from './SidebarMobileDrawer.jsx';
3
+ export { SidebarToggle, type SidebarToggleProps } from './SidebarToggle.jsx';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../ui/interactive/sidebar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,mBAAmB,EAAE,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AAC9F,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,4 @@
1
+ import { SidebarMobileDrawer } from "./SidebarMobileDrawer.js";
2
+ import { Sidebar } from "./Sidebar.js";
3
+ import { SidebarToggle } from "./SidebarToggle.js";
4
+ export { Sidebar, SidebarMobileDrawer, SidebarToggle };
@@ -1 +1 @@
1
- {"version":3,"file":"TabsTop.d.ts","sourceRoot":"","sources":["../../../ui/interactive/tabs/TabsTop.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAItE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAG1C,MAAM,WAAW,YACf,SAAQ,oBAAoB,EAC1B,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,YAAY;IACd,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IACrC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;IACnD,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,UAAU,CAAA;IAC5C,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,WAAW,CAAA;CACpB;AAED;;;IAGI;AACJ,wBAAgB,OAAO,CAAC,CAAC,EAAE,YAAY,kCA+CtC"}
1
+ {"version":3,"file":"TabsTop.d.ts","sourceRoot":"","sources":["../../../ui/interactive/tabs/TabsTop.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAA;AAItE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAA;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAG1C,MAAM,WAAW,YACf,SAAQ,oBAAoB,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY;IAC5F,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IACrC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;IACnD,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,UAAU,CAAA;IAC5C,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,WAAW,CAAA;CACpB;AAED;;;IAGI;AACJ,wBAAgB,OAAO,CAAC,CAAC,EAAE,YAAY,kCA+CtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TabsTop.js","names":["TabsTopText","tabsTopTextDefault","classArr","SignalObject","HasGetOptions","HasValueSignalString","MayHaveValueText","MayHaveChildren","MayHaveClass","Key","JSXElement","createUniqueId","TabsTopProps","valueIcon","value","valueAmount","valueChildren","id","disabled","texts","TabsTop","p","baseId","_el$","_tmpl$","_$insert","_$createComponent","each","getOptions","by","fallback","NoTabOptions","class","children","TabOption","valueSignal","valueText","_$effect","_p$","_v$","_v$2","_v$3","e","_$setAttribute","t","a","_$className","undefined","_el$2","_tmpl$2","TabContent","_el$3","noEntries","TabOptionProps","_el$4","_tmpl$3","$$click","setActiveTab","getText","_v$4","isSelected","_v$5","makeTriggerId","_v$6","makeContentId","_v$7","_v$8","_v$9","_v$0","o","i","n","s","_el$5","_tmpl$4","_v$1","_v$10","_v$11","_v$12","_v$13","hidden","SetActiveTabProps","prev","get","set","OptionProps","GetTextProps","amount","text","_$delegateEvents"],"sources":["../../../ui/interactive/tabs/TabsTop.tsx"],"sourcesContent":["import type { TabsTopText } from \"#ui/interactive/tabs/TabsTopText.js\"\nimport { tabsTopTextDefault } from \"#ui/interactive/tabs/TabsTopText.js\"\nimport { classArr } from \"#ui/utils/classArr.js\"\nimport type { SignalObject } from \"#ui/utils/createSignalObject.js\"\nimport type { HasGetOptions } from \"#ui/utils/HasGetOptions.js\"\nimport type { HasValueSignalString } from \"#ui/utils/HasValueSignalString.js\"\nimport type { MayHaveValueText } from \"#ui/utils/HasValueText.js\"\nimport type { MayHaveChildren } from \"#ui/utils/MayHaveChildren.js\"\nimport type { MayHaveClass } from \"#ui/utils/MayHaveClass.js\"\nimport { Key } from \"@solid-primitives/keyed\"\nimport type { JSXElement } from \"solid-js\"\nimport { createUniqueId } from \"solid-js\"\n\nexport interface TabsTopProps\n extends HasValueSignalString,\n HasGetOptions,\n MayHaveValueText,\n MayHaveChildren,\n MayHaveClass {\n valueIcon?: (value: string) => string\n valueAmount?: (value: string) => number | undefined\n valueChildren: (value: string) => JSXElement\n id?: string\n disabled?: boolean\n texts?: TabsTopText\n}\n\n/**\n * https://www.radix-ui.com/primitives/docs/components/tabs\n * https://github.com/radix-ui/primitives/blob/main/packages/react/tabs/src/Tabs.tsx\n **/\nexport function TabsTop(p: TabsTopProps) {\n const baseId = createUniqueId()\n return (\n <>\n <div\n id={p.id}\n role=\"tablist\"\n data-disabled={p.disabled}\n class={classArr(\n \"flex flex-wrap gap-2\",\n // \"grid gap-2 rounded-md p-2\",\n \"bg-white dark:bg-black\", // bg\n \"border border-slate-200 dark:border-slate-700\", // border\n p.class,\n )}\n >\n <Key each={p.getOptions()} by={(value) => value} fallback={<NoTabOptions class={p.class} texts={p.texts} />}>\n {(value) => (\n <TabOption\n baseId={baseId}\n value={value()}\n valueSignal={p.valueSignal}\n disabled={p.disabled}\n valueAmount={p.valueAmount}\n valueText={p.valueText}\n valueChildren={p.valueChildren}\n />\n )}\n </Key>\n </div>\n <div>\n <Key each={p.getOptions()} by={(value) => value} fallback={<NoTabOptions class={p.class} texts={p.texts} />}>\n {(value) => (\n <TabContent\n baseId={baseId}\n value={value()}\n valueSignal={p.valueSignal}\n disabled={p.disabled}\n valueAmount={p.valueAmount}\n valueText={p.valueText}\n valueChildren={p.valueChildren}\n />\n )}\n </Key>\n </div>\n </>\n )\n}\n\nfunction NoTabOptions(p: { class?: string; texts?: TabsTopText }) {\n const texts = p.texts ?? tabsTopTextDefault\n return <div class={p.class}>{texts.noEntries}</div>\n}\n\ninterface TabOptionProps extends MayHaveClass {\n baseId: string\n value: string\n valueSignal: SignalObject<string>\n disabled?: boolean\n valueAmount?: (value: string) => number | undefined\n valueText?: (value: string) => string\n valueChildren: (value: string) => JSXElement\n}\n\nfunction TabOption(p: TabOptionProps): JSXElement {\n // console.log(\"TabOption\", p.value, \"value:\", p.valueSignal.get())\n return (\n <button\n type=\"button\"\n role=\"tab\"\n aria-selected={isSelected(p)}\n id={makeTriggerId(p.baseId, p.value)}\n aria-controls={makeContentId(p.baseId, p.value)}\n data-state={isSelected(p) ? \"active\" : \"inactive\"}\n data-disabled={p.disabled}\n disabled={p.disabled}\n class={classArr(\n // \"block\",\n \"cursor-pointer select-none\",\n \"rounded-sm\",\n \"px-3 py-2 text-center\",\n isSelected(p) ? \"bg-blue-500 text-white\" : \"hover:bg-slate-50 dark:hover:bg-slate-900\", // bg hover\n \"flex gap-2\",\n p.class,\n )}\n onClick={(e) => setActiveTab(p)}\n >\n {getText(p)}\n </button>\n )\n}\n\nfunction TabContent(p: TabOptionProps): JSXElement {\n return (\n <div\n id={makeContentId(p.baseId, p.value)}\n role=\"tabpanel\"\n data-state={isSelected(p) ? \"active\" : \"inactive\"}\n aria-labelledby={makeTriggerId(p.baseId, p.value)}\n hidden={!isSelected(p)}\n tabIndex={0}\n class={classArr(\"\")}\n >\n {p.valueChildren(p.value)}\n </div>\n )\n}\n\nfunction makeTriggerId(baseId: string, value: string) {\n return `${baseId}-${value}-trigger`\n}\n\nfunction makeContentId(baseId: string, value: string) {\n return `${baseId}-${value}-content`\n}\n\ninterface SetActiveTabProps extends HasValueSignalString {\n value: string\n}\n\nfunction setActiveTab(p: SetActiveTabProps) {\n let prev = p.valueSignal.get()\n // console.log(\"setActiveTab\", p.value, \"prev:\", prev)\n if (prev === p.value) return\n p.valueSignal.set(p.value)\n}\n\ninterface OptionProps {\n value: string\n valueSignal: SignalObject<string>\n}\n\nfunction isSelected(p: OptionProps) {\n return p.value === p.valueSignal.get()\n}\n\ninterface GetTextProps {\n value: string\n valueAmount?: (value: string) => number | undefined\n valueText?: (value: string) => string\n}\n\nfunction getText(p: GetTextProps): string {\n const amount = p.valueAmount?.(p.value)\n const text = p.valueText?.(p.value) || p.value\n if (!amount) return text\n return `${text} (${amount})`\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TabsTop.js","names":["TabsTopText","tabsTopTextDefault","classArr","SignalObject","HasGetOptions","HasValueSignalString","MayHaveValueText","MayHaveChildren","MayHaveClass","Key","JSXElement","createUniqueId","TabsTopProps","valueIcon","value","valueAmount","valueChildren","id","disabled","texts","TabsTop","p","baseId","_el$","_tmpl$","_$insert","_$createComponent","each","getOptions","by","fallback","NoTabOptions","class","children","TabOption","valueSignal","valueText","_$effect","_p$","_v$","_v$2","_v$3","e","_$setAttribute","t","a","_$className","undefined","_el$2","_tmpl$2","TabContent","_el$3","noEntries","TabOptionProps","_el$4","_tmpl$3","$$click","setActiveTab","getText","_v$4","isSelected","_v$5","makeTriggerId","_v$6","makeContentId","_v$7","_v$8","_v$9","_v$0","o","i","n","s","_el$5","_tmpl$4","_v$1","_v$10","_v$11","_v$12","_v$13","hidden","SetActiveTabProps","prev","get","set","OptionProps","GetTextProps","amount","text","_$delegateEvents"],"sources":["../../../ui/interactive/tabs/TabsTop.tsx"],"sourcesContent":["import type { TabsTopText } from \"#ui/interactive/tabs/TabsTopText.js\"\nimport { tabsTopTextDefault } from \"#ui/interactive/tabs/TabsTopText.js\"\nimport { classArr } from \"#ui/utils/classArr.js\"\nimport type { SignalObject } from \"#ui/utils/createSignalObject.js\"\nimport type { HasGetOptions } from \"#ui/utils/HasGetOptions.js\"\nimport type { HasValueSignalString } from \"#ui/utils/HasValueSignalString.js\"\nimport type { MayHaveValueText } from \"#ui/utils/HasValueText.js\"\nimport type { MayHaveChildren } from \"#ui/utils/MayHaveChildren.js\"\nimport type { MayHaveClass } from \"#ui/utils/MayHaveClass.js\"\nimport { Key } from \"@solid-primitives/keyed\"\nimport type { JSXElement } from \"solid-js\"\nimport { createUniqueId } from \"solid-js\"\n\nexport interface TabsTopProps\n extends HasValueSignalString, HasGetOptions, MayHaveValueText, MayHaveChildren, MayHaveClass {\n valueIcon?: (value: string) => string\n valueAmount?: (value: string) => number | undefined\n valueChildren: (value: string) => JSXElement\n id?: string\n disabled?: boolean\n texts?: TabsTopText\n}\n\n/**\n * https://www.radix-ui.com/primitives/docs/components/tabs\n * https://github.com/radix-ui/primitives/blob/main/packages/react/tabs/src/Tabs.tsx\n **/\nexport function TabsTop(p: TabsTopProps) {\n const baseId = createUniqueId()\n return (\n <>\n <div\n id={p.id}\n role=\"tablist\"\n data-disabled={p.disabled}\n class={classArr(\n \"flex flex-wrap gap-2\",\n // \"grid gap-2 rounded-md p-2\",\n \"bg-white dark:bg-black\", // bg\n \"border border-slate-200 dark:border-slate-700\", // border\n p.class,\n )}\n >\n <Key each={p.getOptions()} by={(value) => value} fallback={<NoTabOptions class={p.class} texts={p.texts} />}>\n {(value) => (\n <TabOption\n baseId={baseId}\n value={value()}\n valueSignal={p.valueSignal}\n disabled={p.disabled}\n valueAmount={p.valueAmount}\n valueText={p.valueText}\n valueChildren={p.valueChildren}\n />\n )}\n </Key>\n </div>\n <div>\n <Key each={p.getOptions()} by={(value) => value} fallback={<NoTabOptions class={p.class} texts={p.texts} />}>\n {(value) => (\n <TabContent\n baseId={baseId}\n value={value()}\n valueSignal={p.valueSignal}\n disabled={p.disabled}\n valueAmount={p.valueAmount}\n valueText={p.valueText}\n valueChildren={p.valueChildren}\n />\n )}\n </Key>\n </div>\n </>\n )\n}\n\nfunction NoTabOptions(p: { class?: string; texts?: TabsTopText }) {\n const texts = p.texts ?? tabsTopTextDefault\n return <div class={p.class}>{texts.noEntries}</div>\n}\n\ninterface TabOptionProps extends MayHaveClass {\n baseId: string\n value: string\n valueSignal: SignalObject<string>\n disabled?: boolean\n valueAmount?: (value: string) => number | undefined\n valueText?: (value: string) => string\n valueChildren: (value: string) => JSXElement\n}\n\nfunction TabOption(p: TabOptionProps): JSXElement {\n // console.log(\"TabOption\", p.value, \"value:\", p.valueSignal.get())\n return (\n <button\n type=\"button\"\n role=\"tab\"\n aria-selected={isSelected(p)}\n id={makeTriggerId(p.baseId, p.value)}\n aria-controls={makeContentId(p.baseId, p.value)}\n data-state={isSelected(p) ? \"active\" : \"inactive\"}\n data-disabled={p.disabled}\n disabled={p.disabled}\n class={classArr(\n // \"block\",\n \"cursor-pointer select-none\",\n \"rounded-sm\",\n \"px-3 py-2 text-center\",\n isSelected(p) ? \"bg-blue-500 text-white\" : \"hover:bg-slate-50 dark:hover:bg-slate-900\", // bg hover\n \"flex gap-2\",\n p.class,\n )}\n onClick={(e) => setActiveTab(p)}\n >\n {getText(p)}\n </button>\n )\n}\n\nfunction TabContent(p: TabOptionProps): JSXElement {\n return (\n <div\n id={makeContentId(p.baseId, p.value)}\n role=\"tabpanel\"\n data-state={isSelected(p) ? \"active\" : \"inactive\"}\n aria-labelledby={makeTriggerId(p.baseId, p.value)}\n hidden={!isSelected(p)}\n tabIndex={0}\n class={classArr(\"\")}\n >\n {p.valueChildren(p.value)}\n </div>\n )\n}\n\nfunction makeTriggerId(baseId: string, value: string) {\n return `${baseId}-${value}-trigger`\n}\n\nfunction makeContentId(baseId: string, value: string) {\n return `${baseId}-${value}-content`\n}\n\ninterface SetActiveTabProps extends HasValueSignalString {\n value: string\n}\n\nfunction setActiveTab(p: SetActiveTabProps) {\n let prev = p.valueSignal.get()\n // console.log(\"setActiveTab\", p.value, \"prev:\", prev)\n if (prev === p.value) return\n p.valueSignal.set(p.value)\n}\n\ninterface OptionProps {\n value: string\n valueSignal: SignalObject<string>\n}\n\nfunction isSelected(p: OptionProps) {\n return p.value === p.valueSignal.get()\n}\n\ninterface GetTextProps {\n value: string\n valueAmount?: (value: string) => number | undefined\n valueText?: (value: string) => string\n}\n\nfunction getText(p: GetTextProps): string {\n const amount = p.valueAmount?.(p.value)\n const text = p.valueText?.(p.value) || p.value\n if (!amount) return text\n return `${text} (${amount})`\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeButton.d.ts","sourceRoot":"","sources":["../../../ui/interactive/theme/ThemeButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAK/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAG7D,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,eAAe,CAAA;CACxB;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,gBAAgB,kCA0B9C"}
1
+ {"version":3,"file":"ThemeButton.d.ts","sourceRoot":"","sources":["../../../ui/interactive/theme/ThemeButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAK/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAG7D,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,eAAe,CAAA;CACxB;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,gBAAgB,kCAuB9C"}
@@ -5,7 +5,7 @@ import { themeButtonTextDefault } from "./ThemeButtonText.js";
5
5
  import { themeInit, themeRotate, themeSignal } from "./themeSignal.js";
6
6
  import { ButtonIconOnly } from "../button/ButtonIconOnly.js";
7
7
  import { onCleanup, onMount } from "solid-js";
8
- import { createComponent } from "solid-js/web";
8
+ import { createComponent, memo } from "solid-js/web";
9
9
  //#region ui/interactive/theme/ThemeButton.tsx
10
10
  function ThemeButton(p) {
11
11
  const navigate = (to) => {};
@@ -16,14 +16,12 @@ function ThemeButton(p) {
16
16
  window.addEventListener("keydown", handleGlobalKeyDown);
17
17
  onCleanup(() => window.removeEventListener("keydown", handleGlobalKeyDown));
18
18
  });
19
- const currentTheme = themeSignal.get();
20
- const themeName = texts[currentTheme];
21
19
  return createComponent(ButtonIconOnly, {
22
20
  get title() {
23
- return texts.currentTheme(themeName);
21
+ return texts.currentTheme(texts[themeSignal.get()]);
24
22
  },
25
23
  get icon() {
26
- return themeIcon(currentTheme);
24
+ return themeIcon(themeSignal.get());
27
25
  },
28
26
  get variant() {
29
27
  return buttonVariant.ghost;
@@ -33,7 +31,7 @@ function ThemeButton(p) {
33
31
  },
34
32
  onClick: themeRotate,
35
33
  get children() {
36
- return p.showText && themeName;
34
+ return memo(() => !!p.showText)() && texts[themeSignal.get()];
37
35
  }
38
36
  });
39
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeButton.js","names":["buttonVariant","ButtonIconOnly","ThemeButtonText","themeButtonTextDefault","themeInit","themeRotate","themeSignal","themeIcon","classMerge","MayHaveClass","onCleanup","onMount","ThemeButtonProps","showText","texts","ThemeButton","p","navigate","to","handleGlobalKeyDown","createGlobalKeyHandler","window","addEventListener","removeEventListener","currentTheme","get","themeName","_$createComponent","title","icon","variant","ghost","class","onClick","children","e","KeyboardEvent","key","altKey","preventDefault"],"sources":["../../../ui/interactive/theme/ThemeButton.tsx"],"sourcesContent":["import { buttonVariant } from \"#ui/interactive/button/buttonCva.js\"\nimport { ButtonIconOnly } from \"#ui/interactive/button/ButtonIconOnly.jsx\"\nimport type { ThemeButtonText } from \"#ui/interactive/theme/ThemeButtonText.js\"\nimport { themeButtonTextDefault } from \"#ui/interactive/theme/ThemeButtonText.js\"\nimport { themeInit, themeRotate, themeSignal } from \"#ui/interactive/theme/themeSignal.js\"\nimport { themeIcon } from \"#ui/interactive/theme/themeVariant.js\"\nimport { classMerge } from \"#ui/utils/classMerge.js\"\nimport type { MayHaveClass } from \"#ui/utils/MayHaveClass.js\"\nimport { onCleanup, onMount } from \"solid-js\"\n\nexport interface ThemeButtonProps extends MayHaveClass {\n showText?: boolean\n texts?: ThemeButtonText\n}\n\nexport function ThemeButton(p: ThemeButtonProps) {\n const navigate = (to: string) => {}\n const handleGlobalKeyDown = createGlobalKeyHandler(navigate)\n\n const texts = p.texts ?? themeButtonTextDefault\n\n onMount(() => {\n themeInit()\n window.addEventListener(\"keydown\", handleGlobalKeyDown)\n onCleanup(() => window.removeEventListener(\"keydown\", handleGlobalKeyDown))\n })\n\n const currentTheme = themeSignal.get()\n const themeName = texts[currentTheme]\n\n return (\n <ButtonIconOnly\n title={texts.currentTheme(themeName)}\n icon={themeIcon(currentTheme)}\n variant={buttonVariant.ghost}\n class={classMerge(p.class)}\n onClick={themeRotate}\n >\n {p.showText && themeName}\n </ButtonIconOnly>\n )\n}\n\nfunction createGlobalKeyHandler(navigate: (to: string) => void) {\n return (e: KeyboardEvent) => {\n if (e.key === \"s\" && e.altKey) {\n e.preventDefault()\n themeRotate()\n } else if (e.key === \"d\" && e.altKey) {\n e.preventDefault()\n navigate(\"/demos\")\n }\n }\n}\n"],"mappings":";;;;;;;;;AAeA,SAAgBe,YAAYC,GAAqB;CAC/C,MAAMC,YAAYC,OAAe;CACjC,MAAMC,sBAAsBC,uBAAuBH,SAAS;CAE5D,MAAMH,QAAQE,EAAEF,SAASX;AAEzBQ,eAAc;AACZP,aAAW;AACXiB,SAAOC,iBAAiB,WAAWH,oBAAoB;AACvDT,kBAAgBW,OAAOE,oBAAoB,WAAWJ,oBAAoB,CAAC;GAC3E;CAEF,MAAMK,eAAelB,YAAYmB,KAAK;CACtC,MAAMC,YAAYZ,MAAMU;AAExB,QAAAG,gBACG1B,gBAAc;EAAA,IACb2B,QAAK;AAAA,UAAEd,MAAMU,aAAaE,UAAU;;EAAA,IACpCG,OAAI;AAAA,UAAEtB,UAAUiB,aAAa;;EAAA,IAC7BM,UAAO;AAAA,UAAE9B,cAAc+B;;EAAK,KAAA,WAAA;AAAA,UACrBvB,WAAWQ,EAAEgB,MAAM;;EAC1BC,SAAS5B;EAAW,IAAA6B,WAAA;AAAA,UAEnBlB,EAAEH,YAAYa;;EAAS,CAAA;;AAK9B,SAASN,uBAAuBH,UAAgC;AAC9D,SAAQkB,MAAqB;AAC3B,MAAIA,EAAEE,QAAQ,OAAOF,EAAEG,QAAQ;AAC7BH,KAAEI,gBAAgB;AAClBlC,gBAAa;aACJ8B,EAAEE,QAAQ,OAAOF,EAAEG,QAAQ;AACpCH,KAAEI,gBAAgB;AAClBtB,YAAS,SAAS"}
1
+ {"version":3,"file":"ThemeButton.js","names":["buttonVariant","ButtonIconOnly","ThemeButtonText","themeButtonTextDefault","themeInit","themeRotate","themeSignal","themeIcon","classMerge","MayHaveClass","onCleanup","onMount","ThemeButtonProps","showText","texts","ThemeButton","p","navigate","to","handleGlobalKeyDown","createGlobalKeyHandler","window","addEventListener","removeEventListener","_$createComponent","title","currentTheme","get","icon","variant","ghost","class","onClick","children","_$memo","e","KeyboardEvent","key","altKey","preventDefault"],"sources":["../../../ui/interactive/theme/ThemeButton.tsx"],"sourcesContent":["import { buttonVariant } from \"#ui/interactive/button/buttonCva.js\"\nimport { ButtonIconOnly } from \"#ui/interactive/button/ButtonIconOnly.jsx\"\nimport type { ThemeButtonText } from \"#ui/interactive/theme/ThemeButtonText.js\"\nimport { themeButtonTextDefault } from \"#ui/interactive/theme/ThemeButtonText.js\"\nimport { themeInit, themeRotate, themeSignal } from \"#ui/interactive/theme/themeSignal.js\"\nimport { themeIcon } from \"#ui/interactive/theme/themeVariant.js\"\nimport { classMerge } from \"#ui/utils/classMerge.js\"\nimport type { MayHaveClass } from \"#ui/utils/MayHaveClass.js\"\nimport { onCleanup, onMount } from \"solid-js\"\n\nexport interface ThemeButtonProps extends MayHaveClass {\n showText?: boolean\n texts?: ThemeButtonText\n}\n\nexport function ThemeButton(p: ThemeButtonProps) {\n const navigate = (to: string) => {}\n const handleGlobalKeyDown = createGlobalKeyHandler(navigate)\n\n const texts = p.texts ?? themeButtonTextDefault\n\n onMount(() => {\n themeInit()\n window.addEventListener(\"keydown\", handleGlobalKeyDown)\n onCleanup(() => window.removeEventListener(\"keydown\", handleGlobalKeyDown))\n })\n\n return (\n <ButtonIconOnly\n title={texts.currentTheme(texts[themeSignal.get()])}\n icon={themeIcon(themeSignal.get())}\n variant={buttonVariant.ghost}\n class={classMerge(p.class)}\n onClick={themeRotate}\n >\n {p.showText && texts[themeSignal.get()]}\n </ButtonIconOnly>\n )\n}\n\nfunction createGlobalKeyHandler(navigate: (to: string) => void) {\n return (e: KeyboardEvent) => {\n if (e.key === \"s\" && e.altKey) {\n e.preventDefault()\n themeRotate()\n } else if (e.key === \"d\" && e.altKey) {\n e.preventDefault()\n navigate(\"/demos\")\n }\n }\n}\n"],"mappings":";;;;;;;;;AAeA,SAAgBe,YAAYC,GAAqB;CAC/C,MAAMC,YAAYC,OAAe;CACjC,MAAMC,sBAAsBC,uBAAuBH,SAAS;CAE5D,MAAMH,QAAQE,EAAEF,SAASX;AAEzBQ,eAAc;AACZP,aAAW;AACXiB,SAAOC,iBAAiB,WAAWH,oBAAoB;AACvDT,kBAAgBW,OAAOE,oBAAoB,WAAWJ,oBAAoB,CAAC;GAC3E;AAEF,QAAAK,gBACGvB,gBAAc;EAAA,IACbwB,QAAK;AAAA,UAAEX,MAAMY,aAAaZ,MAAMR,YAAYqB,KAAK,EAAE;;EAAA,IACnDC,OAAI;AAAA,UAAErB,UAAUD,YAAYqB,KAAK,CAAC;;EAAA,IAClCE,UAAO;AAAA,UAAE7B,cAAc8B;;EAAK,KAAA,WAAA;AAAA,UACrBtB,WAAWQ,EAAEe,MAAM;;EAC1BC,SAAS3B;EAAW,IAAA4B,WAAA;AAAA,UAEnBC,WAAA,CAAA,CAAAlB,EAAEH,SAAQ,EAAA,IAAIC,MAAMR,YAAYqB,KAAK;;EAAC,CAAA;;AAK7C,SAASP,uBAAuBH,UAAgC;AAC9D,SAAQkB,MAAqB;AAC3B,MAAIA,EAAEE,QAAQ,OAAOF,EAAEG,QAAQ;AAC7BH,KAAEI,gBAAgB;AAClBlC,gBAAa;aACJ8B,EAAEE,QAAQ,OAAOF,EAAEG,QAAQ;AACpCH,KAAEI,gBAAgB;AAClBtB,YAAS,SAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"toastIconCva.d.ts","sourceRoot":"","sources":["../../../ui/interactive/toast/toastIconCva.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,uCAAuC,CAAA;AAmCvF,wBAAgB,YAAY,CAC1B,OAAO,GAAE,YAAY,GAAG,IAAqB,EAC7C,GAAG,aAAa,EAAE,CAAC,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,UAK9D"}
1
+ {"version":3,"file":"toastIconCva.d.ts","sourceRoot":"","sources":["../../../ui/interactive/toast/toastIconCva.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,uCAAuC,CAAA;AAmCvF,wBAAgB,YAAY,CAC1B,OAAO,GAAE,YAAY,GAAG,IAAqB,EAC7C,GAAG,aAAa,EAAE,CAAC,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,UAG9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"toastIconCva.js","names":[],"sources":["../../../ui/interactive/toast/toastIconCva.ts"],"sourcesContent":["import { toastVariant, type ToastVariant } from \"#ui/interactive/toast/toastVariant.js\"\nimport { classArr } from \"#ui/utils/classArr.js\"\nimport { classMerge } from \"#ui/utils/classMerge.js\"\n\nconst classesTextFillBlack = \"text-black fill-black\"\nconst classesTextFillWhite = \"text-white fill-white\"\n\nconst classesBlackWhite = classArr(\n classesTextFillBlack,\n \"dark:text-white\", // dark text\n \"dark:fill-white\", // dark fill\n)\n\nconst classesWhiteWhite = classArr(\n classesTextFillWhite,\n \"dark:text-white\", // dark text\n \"dark:fill-white\", // dark fill\n)\n\nconst variants = {\n // filled grayscale\n filled: classesBlackWhite,\n subtle: classesBlackWhite,\n default: classArr(classesTextFillWhite, \"dark:text-black dark:fill-black\"),\n // filled colors\n primary: classArr(classesTextFillWhite, \"dark:text-indigo-100 dark:fill-indigo-100\"),\n // filled colors status\n success: classesWhiteWhite,\n info: classesWhiteWhite,\n warning: classesWhiteWhite,\n error: classesWhiteWhite,\n} as const satisfies Record<ToastVariant, string>\n\nconst defaultVariant = toastVariant.default\n\nexport function toastIconCva(\n variant: ToastVariant | null = defaultVariant,\n ...customClasses: (string | boolean | undefined | null | 0)[]\n) {\n return classMerge(\n \"size-6 min-w-6 min-h-6\",\n variants[variant ?? defaultVariant], ...customClasses)\n}\n"],"mappings":";;;;AAIA,IAAM,uBAAuB;AAC7B,IAAM,uBAAuB;AAE7B,IAAM,oBAAoB,SACxB,sBACA,mBACA,kBACD;AAED,IAAM,oBAAoB,SACxB,sBACA,mBACA,kBACD;AAED,IAAM,WAAW;CAEf,QAAQ;CACR,QAAQ;CACR,SAAS,SAAS,sBAAsB,kCAAkC;CAE1E,SAAS,SAAS,sBAAsB,4CAA4C;CAEpF,SAAS;CACT,MAAM;CACN,SAAS;CACT,OAAO;CACR;AAED,IAAM,iBAAiB,aAAa;AAEpC,SAAgB,aACd,UAA+B,gBAC/B,GAAG,eACH;AACA,QAAO,WACL,0BACA,SAAS,WAAW,iBAAiB,GAAG,cAAc"}
1
+ {"version":3,"file":"toastIconCva.js","names":[],"sources":["../../../ui/interactive/toast/toastIconCva.ts"],"sourcesContent":["import { toastVariant, type ToastVariant } from \"#ui/interactive/toast/toastVariant.js\"\nimport { classArr } from \"#ui/utils/classArr.js\"\nimport { classMerge } from \"#ui/utils/classMerge.js\"\n\nconst classesTextFillBlack = \"text-black fill-black\"\nconst classesTextFillWhite = \"text-white fill-white\"\n\nconst classesBlackWhite = classArr(\n classesTextFillBlack,\n \"dark:text-white\", // dark text\n \"dark:fill-white\", // dark fill\n)\n\nconst classesWhiteWhite = classArr(\n classesTextFillWhite,\n \"dark:text-white\", // dark text\n \"dark:fill-white\", // dark fill\n)\n\nconst variants = {\n // filled grayscale\n filled: classesBlackWhite,\n subtle: classesBlackWhite,\n default: classArr(classesTextFillWhite, \"dark:text-black dark:fill-black\"),\n // filled colors\n primary: classArr(classesTextFillWhite, \"dark:text-indigo-100 dark:fill-indigo-100\"),\n // filled colors status\n success: classesWhiteWhite,\n info: classesWhiteWhite,\n warning: classesWhiteWhite,\n error: classesWhiteWhite,\n} as const satisfies Record<ToastVariant, string>\n\nconst defaultVariant = toastVariant.default\n\nexport function toastIconCva(\n variant: ToastVariant | null = defaultVariant,\n ...customClasses: (string | boolean | undefined | null | 0)[]\n) {\n return classMerge(\"size-6 min-w-6 min-h-6\", variants[variant ?? defaultVariant], ...customClasses)\n}\n"],"mappings":";;;;AAIA,IAAM,uBAAuB;AAC7B,IAAM,uBAAuB;AAE7B,IAAM,oBAAoB,SACxB,sBACA,mBACA,kBACD;AAED,IAAM,oBAAoB,SACxB,sBACA,mBACA,kBACD;AAED,IAAM,WAAW;CAEf,QAAQ;CACR,QAAQ;CACR,SAAS,SAAS,sBAAsB,kCAAkC;CAE1E,SAAS,SAAS,sBAAsB,4CAA4C;CAEpF,SAAS;CACT,MAAM;CACN,SAAS;CACT,OAAO;CACR;AAED,IAAM,iBAAiB,aAAa;AAEpC,SAAgB,aACd,UAA+B,gBAC/B,GAAG,eACH;AACA,QAAO,WAAW,0BAA0B,SAAS,WAAW,iBAAiB,GAAG,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleButton.d.ts","sourceRoot":"","sources":["../../../ui/interactive/toggle/ToggleButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,KAAK,uBAAuB,EAAc,MAAM,sCAAsC,CAAA;AAC/F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,KAAK,cAAc,EAAc,MAAM,UAAU,CAAA;AAE1D;;;GAGG;AACH,MAAM,WAAW,iBACf,SAAQ,sBAAsB,EAC5B,YAAY,EACZ,eAAe,EACf,IAAI,CAAC,uBAAuB,EAAE,UAAU,CAAC,EACzC,cAAc,CAAC,QAAQ,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG;QAAE,aAAa,EAAE,iBAAiB,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IACzF,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CAC7C;AAED,KAAK,sBAAsB,GAAG;IAC5B,aAAa,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;CACrC,CAAA;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,iBAAiB,kCAqBhD"}
1
+ {"version":3,"file":"ToggleButton.d.ts","sourceRoot":"","sources":["../../../ui/interactive/toggle/ToggleButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,KAAK,uBAAuB,EAAc,MAAM,sCAAsC,CAAA;AAC/F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AACnE,OAAO,EAAE,KAAK,cAAc,EAAc,MAAM,UAAU,CAAA;AAE1D;;;GAGG;AACH,MAAM,WAAW,iBACf,SACE,sBAAsB,EACtB,YAAY,EACZ,eAAe,EACf,IAAI,CAAC,uBAAuB,EAAE,UAAU,CAAC,EACzC,cAAc,CAAC,QAAQ,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG;QAAE,aAAa,EAAE,iBAAiB,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IACzF,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CAC7C;AAED,KAAK,sBAAsB,GAAG;IAC5B,aAAa,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;CACrC,CAAA;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,iBAAiB,kCAqBhD"}