@health-samurai/react-components 0.0.0-alpha.20 → 0.0.0-alpha.21

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 (34) hide show
  1. package/dist/bundle.css +41 -42
  2. package/dist/src/components/code-editor/fhir-autocomplete.d.ts.map +1 -1
  3. package/dist/src/components/code-editor/fhir-autocomplete.js +8 -7
  4. package/dist/src/components/code-editor/fhir-autocomplete.js.map +1 -1
  5. package/dist/src/components/code-editor/index.d.ts.map +1 -1
  6. package/dist/src/components/code-editor/index.js +324 -4
  7. package/dist/src/components/code-editor/index.js.map +1 -1
  8. package/dist/src/components/code-editor/sql-completion.d.ts.map +1 -1
  9. package/dist/src/components/code-editor/sql-completion.js +2 -0
  10. package/dist/src/components/code-editor/sql-completion.js.map +1 -1
  11. package/dist/src/components/operation-outcome-view.d.ts.map +1 -1
  12. package/dist/src/components/operation-outcome-view.js +1 -1
  13. package/dist/src/components/operation-outcome-view.js.map +1 -1
  14. package/dist/src/index.css +22 -22
  15. package/dist/src/shadcn/components/ui/button.js +1 -1
  16. package/dist/src/shadcn/components/ui/button.js.map +1 -1
  17. package/dist/src/shadcn/components/ui/input.js +1 -1
  18. package/dist/src/shadcn/components/ui/input.js.map +1 -1
  19. package/dist/src/shadcn/components/ui/sidebar.js +2 -2
  20. package/dist/src/shadcn/components/ui/sidebar.js.map +1 -1
  21. package/dist/src/shadcn/components/ui/table.js +2 -2
  22. package/dist/src/shadcn/components/ui/table.js.map +1 -1
  23. package/dist/src/tokens.css +19 -6
  24. package/package.json +3 -3
  25. package/src/components/code-editor/fhir-autocomplete.ts +8 -7
  26. package/src/components/code-editor/index.tsx +319 -1
  27. package/src/components/code-editor/sql-completion.ts +7 -0
  28. package/src/components/operation-outcome-view.tsx +1 -0
  29. package/src/index.css +22 -22
  30. package/src/shadcn/components/ui/button.tsx +1 -1
  31. package/src/shadcn/components/ui/input.tsx +2 -2
  32. package/src/shadcn/components/ui/sidebar.tsx +3 -3
  33. package/src/shadcn/components/ui/table.tsx +2 -2
  34. package/src/tokens.css +19 -6
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shadcn/components/ui/input.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"#shadcn/lib/utils\";\n\n// Base icon styles\nconst iconBaseClasses = cn(\n\t// Positioning\n\t\"absolute\",\n\t\"top-1/2\",\n\t\"-translate-y-1/2\",\n\t\"z-10\",\n\n\t// Layout & Flexbox\n\t\"flex\",\n\t\"items-center\",\n\t\"justify-center\",\n\n\t// Cursor & Interactions\n\t\"cursor-default\",\n\t\"[&_svg]:pointer-events-none\",\n\n\t// Sizing\n\t\"[&_svg:not([class*='size-'])]:size-4\",\n\t\"shrink-0\",\n\t\"[&_svg]:shrink-0\",\n);\n\n// Left icon positioning\nconst iconLeftPosition = cn(\n\t// Positioning\n\t\"left-3\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\n// Right icon container\nconst iconRightContainer = cn(\n\t// Positioning\n\t\"absolute\",\n\t\"right-2\",\n\t\"top-1/2\",\n\t\"-translate-y-1/2\",\n\n\t// Layout & Flexbox\n\t\"flex\",\n\t\"gap-2\",\n\n\t// Z-index\n\t\"z-10\",\n);\n\n// Icon color states\nconst iconNormalColor = cn(\n\t// Colors\n\t\"text-text-tertiary\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\nconst iconInvalidColor = cn(\n\t// Colors\n\t\"text-text-tertiary\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\nconst iconDisabledColor = cn(\n\t// Colors\n\t\"text-text-disabled\",\n\n\t// Cursor & Interactions\n\t\"hover:cursor-not-allowed\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\n// Icon wrapper styles\nconst iconWrapperClasses = cn(\n\t// Sizing\n\t\"flex\",\n\t\"items-center\",\n\t\"[&>svg]:w-full\",\n\t\"[&>svg]:h-full\",\n\t\"[&>svg]:stroke-[1.5]\",\n);\n\n// Right icon item styles\nconst iconRightItemClasses = cn(\n\t// Layout & Flexbox\n\t\"flex\",\n\t\"items-center\",\n\t\"justify-center\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\n// Prefix styles\nconst prefixClasses = cn(\n\t// Borders\n\t\"border-border-primary\",\n\t\"border\",\n\t\"border-r-0\",\n\n\t// Background & Colors\n\t\"bg-bg-tertiary\",\n\t\"text-text-tertiary\",\n\n\t// Layout & Flexbox\n\t\"flex\",\n\t\"items-center\",\n\n\t// Spacing & Sizing\n\t\"rounded-l-md\",\n\t\"px-3\",\n\t\"py-1\",\n\n\t// Typography\n\t\"typo-body\",\n\n\t// Cursor & Interactions\n\t\"cursor-default\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\n// Suffix styles\nconst suffixClasses = cn(\n\t// Borders\n\t\"border-border-primary\",\n\t\"border\",\n\n\t// Background & Colors\n\t\"bg-bg-tertiary\",\n\t\"text-text-tertiary\",\n\n\t// Layout & Flexbox\n\t\"flex\",\n\t\"items-center\",\n\n\t// Spacing & Sizing\n\t\"rounded-r-md\",\n\t\"px-3\",\n\t\"py-1\",\n\n\t// Typography\n\t\"typo-body\",\n\n\t// Cursor & Interactions\n\t\"cursor-default\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\n// Disabled prefix styles\nconst prefixDisabledClasses = cn(\n\t// Borders\n\t\"border-border-primary\",\n\t\"border\",\n\n\t// Background & Colors\n\t\"bg-bg-tertiary\",\n\t\"text-text-disabled\",\n\n\t// Layout & Flexbox\n\t\"flex\",\n\t\"items-center\",\n\n\t// Spacing & Sizing\n\t\"rounded-l-md\",\n\t\"px-3\",\n\t\"py-1\",\n\n\t// Typography\n\t\"typo-body\",\n\n\t// Cursor & Interactions\n\t\"hover:cursor-not-allowed\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\n// Disabled suffix styles\nconst suffixDisabledClasses = cn(\n\t// Borders\n\t\"border-border-primary\",\n\t\"border\",\n\n\t// Background & Colors\n\t\"bg-bg-tertiary\",\n\t\"text-text-disabled\",\n\n\t// Layout & Flexbox\n\t\"flex\",\n\t\"items-center\",\n\n\t// Spacing & Sizing\n\t\"rounded-r-md\",\n\t\"px-3\",\n\t\"py-1\",\n\n\t// Typography\n\t\"typo-body\",\n\n\t// Cursor & Interactions\n\t\"hover:cursor-not-allowed\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\n// Invalid prefix styles\nconst prefixInvalidClasses = cn(\n\t// Borders\n\t\"border-border-error\",\n\t\"border\",\n\n\t// Background & Colors\n\t\"bg-bg-secondary\",\n\t\"text-text-tertiary\",\n\n\t// Layout & Flexbox\n\t\"flex\",\n\t\"items-center\",\n\n\t// Spacing & Sizing\n\t\"rounded-l-md\",\n\t\"px-3\",\n\t\"py-1\",\n\n\t// Typography\n\t\"typo-body\",\n\n\t// Cursor & Interactions\n\t\"cursor-default\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\n// Invalid suffix styles\nconst suffixInvalidClasses = cn(\n\t// Borders\n\t\"border-border-error\",\n\t\"border\",\n\n\t// Background & Colors\n\t\"bg-bg-secondary\",\n\t\"text-text-tertiary\",\n\n\t// Layout & Flexbox\n\t\"flex\",\n\t\"items-center\",\n\n\t// Spacing & Sizing\n\t\"rounded-r-md\",\n\t\"px-3\",\n\t\"py-1\",\n\n\t// Typography\n\t\"typo-body\",\n\n\t// Cursor & Interactions\n\t\"cursor-default\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\nconst inputVariants = cva(\n\tcn(\n\t\t// Sizing & Layout\n\t\t\"h-9\",\n\t\t\"flex\",\n\t\t\"w-full\",\n\t\t\"min-w-0\",\n\n\t\t// Spacing & Padding\n\t\t\"px-3\",\n\t\t\"py-2\",\n\n\t\t// Borders\n\t\t\"border\",\n\t\t\"border-border-primary\",\n\n\t\t// Background & Colors\n\t\t\"bg-transparent\",\n\t\t\"text-base\",\n\n\t\t// Typography\n\t\t\"typo-body\",\n\t\t\"md:text-md\",\n\n\t\t// File input styles\n\t\t\"file:text-text-primary\",\n\t\t\"file:inline-flex\",\n\t\t\"file:h-7\",\n\t\t\"file:border-0\",\n\t\t\"file:bg-transparent\",\n\t\t\"file:text-md\",\n\t\t\"file:font-medium\",\n\n\t\t// Placeholder styles\n\t\t\"placeholder:text-text-quternary\",\n\n\t\t// Selection styles\n\t\t\"selection:bg-bg-primary\",\n\t\t\"selection:text-text-primary-foreground\",\n\t\t\"selection:bg-selection\",\n\n\t\t// Hover states\n\t\t\"hover:border-border-primary_hover\",\n\n\t\t// Focus states\n\n\t\t\"focus-visible:border-border-link\",\n\n\t\t// Invalid states\n\t\t\"aria-invalid:ring-destructive\",\n\t\t\"aria-invalid:text-text-error-primary\",\n\t\t\"aria-invalid:border-border-error-primary\",\n\n\t\t// Disabled states\n\t\t\"disabled:bg-bg-secondary\",\n\t\t\"disabled:cursor-not-allowed\",\n\t\t\"disabled:border-border-primary\",\n\t\t\"disabled:text-text-disabled\",\n\t\t\"disabled:placeholder:text-text-disabled\",\n\n\t\t// Transitions\n\t\t\"transition-all\",\n\t\t\"duration-300\",\n\n\t\t// Outline\n\t\t\"outline-none\",\n\n\t\t// Border radius\n\t\t\"rounded-md\",\n\t),\n\t{\n\t\tvariants: {\n\t\t\thasLeftSlot: {\n\t\t\t\ttrue: cn(\n\t\t\t\t\t// Left padding for icon\n\t\t\t\t\t\"pl-9\",\n\t\t\t\t),\n\t\t\t},\n\t\t\thasRightSlot: {\n\t\t\t\ttrue: cn(\n\t\t\t\t\t// Right padding for icon\n\t\t\t\t\t\"pr-9\",\n\t\t\t\t),\n\t\t\t},\n\t\t\thasPrefix: {\n\t\t\t\ttrue: cn(\n\t\t\t\t\t// Border adjustments for prefix\n\t\t\t\t\t\"rounded-r-md\",\n\t\t\t\t\t\"rounded-l-none\",\n\n\t\t\t\t\t// Focus adjustments\n\t\t\t\t\t\"focus-visible:ring-offset-0\",\n\t\t\t\t\t\"focus-visible:border-l-1\",\n\t\t\t\t),\n\t\t\t},\n\t\t\thasSuffix: {\n\t\t\t\ttrue: cn(\n\t\t\t\t\t// Border adjustments for suffix\n\t\t\t\t\t\"border-r-0\",\n\t\t\t\t\t\"rounded-l-md\",\n\t\t\t\t\t\"rounded-r-none\",\n\n\t\t\t\t\t// Focus adjustments\n\t\t\t\t\t\"focus-visible:ring-offset-0\",\n\t\t\t\t\t\"focus-visible:border-r-1\",\n\t\t\t\t),\n\t\t\t},\n\t\t\tinvalid: {\n\t\t\t\ttrue: cn(\n\t\t\t\t\t// Invalid border colors\n\t\t\t\t\t\"border-border-error\",\n\t\t\t\t\t\"hover:border-border-error_inverse\",\n\n\t\t\t\t\t// Invalid focus states\n\t\t\t\t\t\"focus-visible:ring-4\",\n\t\t\t\t\t\"focus-visible:ring-ring-red\",\n\t\t\t\t\t\"focus-visible:border-border-error\",\n\n\t\t\t\t\t// Transitions\n\t\t\t\t\t\"transition-all\",\n\t\t\t\t\t\"duration-300\",\n\t\t\t\t),\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\thasPrefix: false,\n\t\t\thasSuffix: false,\n\t\t\tinvalid: false,\n\t\t},\n\t},\n);\n\ninterface InputProps\n\textends React.ComponentProps<\"input\">,\n\t\tVariantProps<typeof inputVariants> {\n\ttype?: \"text\" | \"password\";\n\tprefixValue?: React.ReactNode;\n\tsuffix?: string;\n\tinvalid?: boolean;\n\tleftSlot?: React.ReactNode;\n\trightSlot?: React.ReactNode;\n}\n\nfunction Input({\n\tclassName,\n\ttype,\n\tinvalid,\n\tprefixValue,\n\tsuffix,\n\tleftSlot,\n\trightSlot,\n\t...props\n}: InputProps) {\n\tconst processedLeftSlot = leftSlot === \"None\" ? undefined : leftSlot;\n\tconst processedRightSlot = rightSlot === \"None\" ? undefined : rightSlot;\n\n\tconst hasLeftIcon =\n\t\tprocessedLeftSlot &&\n\t\tprocessedLeftSlot !== null &&\n\t\tprocessedLeftSlot !== undefined;\n\tconst hasRightIcon =\n\t\tprocessedRightSlot &&\n\t\tprocessedRightSlot !== null &&\n\t\tprocessedRightSlot !== undefined;\n\n\tconst renderLeftSlot = () => {\n\t\tif (!hasLeftIcon) return null;\n\t\tconst colorClasses = props.disabled\n\t\t\t? iconDisabledColor\n\t\t\t: invalid\n\t\t\t\t? iconInvalidColor\n\t\t\t\t: iconNormalColor;\n\t\treturn (\n\t\t\t<div className={`${iconBaseClasses} ${iconLeftPosition} ${colorClasses}`}>\n\t\t\t\t<div className={iconWrapperClasses}>{processedLeftSlot}</div>\n\t\t\t</div>\n\t\t);\n\t};\n\n\tconst renderRightSlot = () => {\n\t\tif (!hasRightIcon) return null;\n\n\t\tconst colorClasses = props.disabled\n\t\t\t? iconDisabledColor\n\t\t\t: invalid\n\t\t\t\t? iconInvalidColor\n\t\t\t\t: iconNormalColor;\n\n\t\treturn (\n\t\t\t<div className={`${iconRightContainer} ${iconBaseClasses}`}>\n\t\t\t\t{hasRightIcon && (\n\t\t\t\t\t<div className={`${iconRightItemClasses} ${colorClasses}`}>\n\t\t\t\t\t\t<div className={iconWrapperClasses}>{processedRightSlot}</div>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t};\n\n\t// Input tag\n\tconst inputElement = (\n\t\t<input\n\t\t\ttype={type}\n\t\t\tdata-slot=\"input\"\n\t\t\tclassName={cn(\n\t\t\t\tinputVariants({\n\t\t\t\t\tinvalid,\n\t\t\t\t\thasLeftSlot: !!leftSlot,\n\t\t\t\t\thasRightSlot: !!rightSlot,\n\t\t\t\t\thasPrefix: !!prefixValue,\n\t\t\t\t\thasSuffix: !!suffix,\n\t\t\t\t\tclassName,\n\t\t\t\t}),\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n\n\treturn (\n\t\t<div className=\"flex w-full min-w-0\">\n\t\t\t{prefixValue && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tprops.disabled\n\t\t\t\t\t\t\t? prefixDisabledClasses\n\t\t\t\t\t\t\t: invalid\n\t\t\t\t\t\t\t\t? prefixInvalidClasses\n\t\t\t\t\t\t\t\t: prefixClasses\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{prefixValue}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div className=\"flex-1 relative\">\n\t\t\t\t{renderLeftSlot()}\n\t\t\t\t{inputElement}\n\t\t\t\t{renderRightSlot()}\n\t\t\t</div>\n\t\t\t{suffix && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tprops.disabled\n\t\t\t\t\t\t\t? suffixDisabledClasses\n\t\t\t\t\t\t\t: invalid\n\t\t\t\t\t\t\t\t? suffixInvalidClasses\n\t\t\t\t\t\t\t\t: suffixClasses\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{suffix}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport { Input, inputVariants };\n"],"names":["cva","cn","iconBaseClasses","iconLeftPosition","iconRightContainer","iconNormalColor","iconInvalidColor","iconDisabledColor","iconWrapperClasses","iconRightItemClasses","prefixClasses","suffixClasses","prefixDisabledClasses","suffixDisabledClasses","prefixInvalidClasses","suffixInvalidClasses","inputVariants","variants","hasLeftSlot","true","hasRightSlot","hasPrefix","hasSuffix","invalid","defaultVariants","Input","className","type","prefixValue","suffix","leftSlot","rightSlot","props","processedLeftSlot","undefined","processedRightSlot","hasLeftIcon","hasRightIcon","renderLeftSlot","colorClasses","disabled","div","renderRightSlot","inputElement","input","data-slot"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/shadcn/components/ui/input.tsx"],"sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"#shadcn/lib/utils\";\n\n// Base icon styles\nconst iconBaseClasses = cn(\n\t// Positioning\n\t\"absolute\",\n\t\"top-1/2\",\n\t\"-translate-y-1/2\",\n\t\"z-10\",\n\n\t// Layout & Flexbox\n\t\"flex\",\n\t\"items-center\",\n\t\"justify-center\",\n\n\t// Cursor & Interactions\n\t\"cursor-default\",\n\t\"[&_svg]:pointer-events-none\",\n\n\t// Sizing\n\t\"[&_svg:not([class*='size-'])]:size-4\",\n\t\"shrink-0\",\n\t\"[&_svg]:shrink-0\",\n);\n\n// Left icon positioning\nconst iconLeftPosition = cn(\n\t// Positioning\n\t\"left-3\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\n// Right icon container\nconst iconRightContainer = cn(\n\t// Positioning\n\t\"absolute\",\n\t\"right-2\",\n\t\"top-1/2\",\n\t\"-translate-y-1/2\",\n\n\t// Layout & Flexbox\n\t\"flex\",\n\t\"gap-2\",\n\n\t// Z-index\n\t\"z-10\",\n);\n\n// Icon color states\nconst iconNormalColor = cn(\n\t// Colors\n\t\"text-text-tertiary\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\nconst iconInvalidColor = cn(\n\t// Colors\n\t\"text-text-tertiary\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\nconst iconDisabledColor = cn(\n\t// Colors\n\t\"text-text-disabled\",\n\n\t// Cursor & Interactions\n\t\"hover:cursor-not-allowed\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\n// Icon wrapper styles\nconst iconWrapperClasses = cn(\n\t// Sizing\n\t\"flex\",\n\t\"items-center\",\n\t\"[&>svg]:w-full\",\n\t\"[&>svg]:h-full\",\n\t\"[&>svg]:stroke-[1.5]\",\n);\n\n// Right icon item styles\nconst iconRightItemClasses = cn(\n\t// Layout & Flexbox\n\t\"flex\",\n\t\"items-center\",\n\t\"justify-center\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\n// Prefix styles\nconst prefixClasses = cn(\n\t// Borders\n\t\"border-border-primary\",\n\t\"border\",\n\t\"border-r-0\",\n\n\t// Background & Colors\n\t\"bg-bg-primary\",\n\t\"text-text-secondary\",\n\n\t// Layout & Flexbox\n\t\"flex\",\n\t\"items-center\",\n\n\t// Spacing & Sizing\n\t\"rounded-l-md\",\n\t\"px-3\",\n\t\"py-1\",\n\n\t// Typography\n\t\"typo-body\",\n\n\t// Cursor & Interactions\n\t\"cursor-default\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\n// Suffix styles\nconst suffixClasses = cn(\n\t// Borders\n\t\"border-border-primary\",\n\t\"border\",\n\n\t// Background & Colors\n\t\"bg-bg-tertiary\",\n\t\"text-text-tertiary\",\n\n\t// Layout & Flexbox\n\t\"flex\",\n\t\"items-center\",\n\n\t// Spacing & Sizing\n\t\"rounded-r-md\",\n\t\"px-3\",\n\t\"py-1\",\n\n\t// Typography\n\t\"typo-body\",\n\n\t// Cursor & Interactions\n\t\"cursor-default\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\n// Disabled prefix styles\nconst prefixDisabledClasses = cn(\n\t// Borders\n\t\"border-border-primary\",\n\t\"border\",\n\n\t// Background & Colors\n\t\"bg-bg-tertiary\",\n\t\"text-text-disabled\",\n\n\t// Layout & Flexbox\n\t\"flex\",\n\t\"items-center\",\n\n\t// Spacing & Sizing\n\t\"rounded-l-md\",\n\t\"px-3\",\n\t\"py-1\",\n\n\t// Typography\n\t\"typo-body\",\n\n\t// Cursor & Interactions\n\t\"hover:cursor-not-allowed\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\n// Disabled suffix styles\nconst suffixDisabledClasses = cn(\n\t// Borders\n\t\"border-border-primary\",\n\t\"border\",\n\n\t// Background & Colors\n\t\"bg-bg-tertiary\",\n\t\"text-text-disabled\",\n\n\t// Layout & Flexbox\n\t\"flex\",\n\t\"items-center\",\n\n\t// Spacing & Sizing\n\t\"rounded-r-md\",\n\t\"px-3\",\n\t\"py-1\",\n\n\t// Typography\n\t\"typo-body\",\n\n\t// Cursor & Interactions\n\t\"hover:cursor-not-allowed\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\n// Invalid prefix styles\nconst prefixInvalidClasses = cn(\n\t// Borders\n\t\"border-border-error\",\n\t\"border\",\n\n\t// Background & Colors\n\t\"bg-bg-secondary\",\n\t\"text-text-tertiary\",\n\n\t// Layout & Flexbox\n\t\"flex\",\n\t\"items-center\",\n\n\t// Spacing & Sizing\n\t\"rounded-l-md\",\n\t\"px-3\",\n\t\"py-1\",\n\n\t// Typography\n\t\"typo-body\",\n\n\t// Cursor & Interactions\n\t\"cursor-default\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\n// Invalid suffix styles\nconst suffixInvalidClasses = cn(\n\t// Borders\n\t\"border-border-error\",\n\t\"border\",\n\n\t// Background & Colors\n\t\"bg-bg-secondary\",\n\t\"text-text-tertiary\",\n\n\t// Layout & Flexbox\n\t\"flex\",\n\t\"items-center\",\n\n\t// Spacing & Sizing\n\t\"rounded-r-md\",\n\t\"px-3\",\n\t\"py-1\",\n\n\t// Typography\n\t\"typo-body\",\n\n\t// Cursor & Interactions\n\t\"cursor-default\",\n\n\t// Transitions\n\t\"transition-colors\",\n\t\"duration-300\",\n);\n\nconst inputVariants = cva(\n\tcn(\n\t\t// Sizing & Layout\n\t\t\"h-9\",\n\t\t\"flex\",\n\t\t\"w-full\",\n\t\t\"min-w-0\",\n\n\t\t// Spacing & Padding\n\t\t\"px-3\",\n\t\t\"py-2\",\n\n\t\t// Borders\n\t\t\"border\",\n\t\t\"border-border-primary\",\n\n\t\t// Background & Colors\n\t\t\"bg-transparent\",\n\t\t\"text-base\",\n\n\t\t// Typography\n\t\t\"typo-body\",\n\t\t\"md:text-md\",\n\n\t\t// File input styles\n\t\t\"file:text-text-primary\",\n\t\t\"file:inline-flex\",\n\t\t\"file:h-7\",\n\t\t\"file:border-0\",\n\t\t\"file:bg-transparent\",\n\t\t\"file:text-md\",\n\t\t\"file:font-medium\",\n\n\t\t// Placeholder styles\n\t\t\"placeholder:text-text-quternary\",\n\n\t\t// Selection styles\n\t\t\"selection:bg-bg-primary\",\n\t\t\"selection:text-text-primary-foreground\",\n\t\t\"selection:bg-selection\",\n\n\t\t// Hover states\n\t\t\"hover:border-border-primary_hover\",\n\n\t\t// Focus states\n\n\t\t\"focus-visible:border-border-link\",\n\n\t\t// Invalid states\n\t\t\"aria-invalid:ring-destructive\",\n\t\t\"aria-invalid:text-text-error-primary\",\n\t\t\"aria-invalid:border-border-error-primary\",\n\n\t\t// Disabled states\n\t\t\"disabled:bg-bg-secondary\",\n\t\t\"disabled:cursor-not-allowed\",\n\t\t\"disabled:border-border-primary\",\n\t\t\"disabled:text-text-disabled\",\n\t\t\"disabled:placeholder:text-text-disabled\",\n\n\t\t// Transitions\n\t\t\"transition-all\",\n\t\t\"duration-300\",\n\n\t\t// Outline\n\t\t\"outline-none\",\n\n\t\t// Border radius\n\t\t\"rounded-md\",\n\t),\n\t{\n\t\tvariants: {\n\t\t\thasLeftSlot: {\n\t\t\t\ttrue: cn(\n\t\t\t\t\t// Left padding for icon\n\t\t\t\t\t\"pl-9\",\n\t\t\t\t),\n\t\t\t},\n\t\t\thasRightSlot: {\n\t\t\t\ttrue: cn(\n\t\t\t\t\t// Right padding for icon\n\t\t\t\t\t\"pr-9\",\n\t\t\t\t),\n\t\t\t},\n\t\t\thasPrefix: {\n\t\t\t\ttrue: cn(\n\t\t\t\t\t// Border adjustments for prefix\n\t\t\t\t\t\"rounded-r-md\",\n\t\t\t\t\t\"rounded-l-none\",\n\n\t\t\t\t\t// Focus adjustments\n\t\t\t\t\t\"focus-visible:ring-offset-0\",\n\t\t\t\t\t\"focus-visible:border-l-1\",\n\t\t\t\t),\n\t\t\t},\n\t\t\thasSuffix: {\n\t\t\t\ttrue: cn(\n\t\t\t\t\t// Border adjustments for suffix\n\t\t\t\t\t\"border-r-0\",\n\t\t\t\t\t\"rounded-l-md\",\n\t\t\t\t\t\"rounded-r-none\",\n\n\t\t\t\t\t// Focus adjustments\n\t\t\t\t\t\"focus-visible:ring-offset-0\",\n\t\t\t\t\t\"focus-visible:border-r-1\",\n\t\t\t\t),\n\t\t\t},\n\t\t\tinvalid: {\n\t\t\t\ttrue: cn(\n\t\t\t\t\t// Invalid border colors\n\t\t\t\t\t\"border-border-error\",\n\t\t\t\t\t\"hover:border-border-error_inverse\",\n\n\t\t\t\t\t// Invalid focus states\n\t\t\t\t\t\"focus-visible:ring-4\",\n\t\t\t\t\t\"focus-visible:ring-ring-red\",\n\t\t\t\t\t\"focus-visible:border-border-error\",\n\n\t\t\t\t\t// Transitions\n\t\t\t\t\t\"transition-all\",\n\t\t\t\t\t\"duration-300\",\n\t\t\t\t),\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\thasPrefix: false,\n\t\t\thasSuffix: false,\n\t\t\tinvalid: false,\n\t\t},\n\t},\n);\n\ninterface InputProps\n\textends React.ComponentProps<\"input\">,\n\t\tVariantProps<typeof inputVariants> {\n\ttype?: \"text\" | \"password\";\n\tprefixValue?: React.ReactNode;\n\tsuffix?: string;\n\tinvalid?: boolean;\n\tleftSlot?: React.ReactNode;\n\trightSlot?: React.ReactNode;\n}\n\nfunction Input({\n\tclassName,\n\ttype,\n\tinvalid,\n\tprefixValue,\n\tsuffix,\n\tleftSlot,\n\trightSlot,\n\t...props\n}: InputProps) {\n\tconst processedLeftSlot = leftSlot === \"None\" ? undefined : leftSlot;\n\tconst processedRightSlot = rightSlot === \"None\" ? undefined : rightSlot;\n\n\tconst hasLeftIcon =\n\t\tprocessedLeftSlot &&\n\t\tprocessedLeftSlot !== null &&\n\t\tprocessedLeftSlot !== undefined;\n\tconst hasRightIcon =\n\t\tprocessedRightSlot &&\n\t\tprocessedRightSlot !== null &&\n\t\tprocessedRightSlot !== undefined;\n\n\tconst renderLeftSlot = () => {\n\t\tif (!hasLeftIcon) return null;\n\t\tconst colorClasses = props.disabled\n\t\t\t? iconDisabledColor\n\t\t\t: invalid\n\t\t\t\t? iconInvalidColor\n\t\t\t\t: iconNormalColor;\n\t\treturn (\n\t\t\t<div className={`${iconBaseClasses} ${iconLeftPosition} ${colorClasses}`}>\n\t\t\t\t<div className={iconWrapperClasses}>{processedLeftSlot}</div>\n\t\t\t</div>\n\t\t);\n\t};\n\n\tconst renderRightSlot = () => {\n\t\tif (!hasRightIcon) return null;\n\n\t\tconst colorClasses = props.disabled\n\t\t\t? iconDisabledColor\n\t\t\t: invalid\n\t\t\t\t? iconInvalidColor\n\t\t\t\t: iconNormalColor;\n\n\t\treturn (\n\t\t\t<div className={`${iconRightContainer} ${iconBaseClasses}`}>\n\t\t\t\t{hasRightIcon && (\n\t\t\t\t\t<div className={`${iconRightItemClasses} ${colorClasses}`}>\n\t\t\t\t\t\t<div className={iconWrapperClasses}>{processedRightSlot}</div>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t};\n\n\t// Input tag\n\tconst inputElement = (\n\t\t<input\n\t\t\ttype={type}\n\t\t\tdata-slot=\"input\"\n\t\t\tclassName={cn(\n\t\t\t\tinputVariants({\n\t\t\t\t\tinvalid,\n\t\t\t\t\thasLeftSlot: !!leftSlot,\n\t\t\t\t\thasRightSlot: !!rightSlot,\n\t\t\t\t\thasPrefix: !!prefixValue,\n\t\t\t\t\thasSuffix: !!suffix,\n\t\t\t\t\tclassName,\n\t\t\t\t}),\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n\n\treturn (\n\t\t<div className=\"flex w-full min-w-0\">\n\t\t\t{prefixValue && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tprops.disabled\n\t\t\t\t\t\t\t? prefixDisabledClasses\n\t\t\t\t\t\t\t: invalid\n\t\t\t\t\t\t\t\t? prefixInvalidClasses\n\t\t\t\t\t\t\t\t: prefixClasses\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{prefixValue}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t<div className=\"flex-1 relative\">\n\t\t\t\t{renderLeftSlot()}\n\t\t\t\t{inputElement}\n\t\t\t\t{renderRightSlot()}\n\t\t\t</div>\n\t\t\t{suffix && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={\n\t\t\t\t\t\tprops.disabled\n\t\t\t\t\t\t\t? suffixDisabledClasses\n\t\t\t\t\t\t\t: invalid\n\t\t\t\t\t\t\t\t? suffixInvalidClasses\n\t\t\t\t\t\t\t\t: suffixClasses\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{suffix}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport { Input, inputVariants };\n"],"names":["cva","cn","iconBaseClasses","iconLeftPosition","iconRightContainer","iconNormalColor","iconInvalidColor","iconDisabledColor","iconWrapperClasses","iconRightItemClasses","prefixClasses","suffixClasses","prefixDisabledClasses","suffixDisabledClasses","prefixInvalidClasses","suffixInvalidClasses","inputVariants","variants","hasLeftSlot","true","hasRightSlot","hasPrefix","hasSuffix","invalid","defaultVariants","Input","className","type","prefixValue","suffix","leftSlot","rightSlot","props","processedLeftSlot","undefined","processedRightSlot","hasLeftIcon","hasRightIcon","renderLeftSlot","colorClasses","disabled","div","renderRightSlot","inputElement","input","data-slot"],"mappings":"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"}
@@ -317,11 +317,11 @@ const baseSidebarMenuButtonStyles = cn(// Layout
317
317
  "flex", "items-center", "gap-2", "w-full", "overflow-hidden", // Shape
318
318
  "rounded-lg", // Spacing
319
319
  "py-2", "px-[0.44rem]", // Typography
320
- "typo-body", "text-text-primary", // Interaction
320
+ "typo-body", "text-fg-secondary", // Interaction
321
321
  "outline-hidden", "transition-all", "cursor-pointer", // Focus
322
322
  "focus-visible:ring-2", "focus-visible:ring-utility-blue/70", // Hover
323
323
  "hover:bg-bg-secondary", "hover:text-text-primary", // Active
324
- "active:bg-bg-quaternary", "data-[active=true]:bg-bg-brand-secondary", "data-[active=true]:text-text-primary", "data-[active=true]:[&>svg]:text-text-brand-primary", // Open state
324
+ "active:bg-bg-quaternary", "data-[active=true]:bg-bg-brand-primary", "data-[active=true]:text-text-primary", "data-[active=true]:[&>svg]:text-fg-brand-primary", // Open state
325
325
  "data-[state=open]:hover:bg-bg-secondary", "data-[state=open]:hover:text-text-primary", // Disabled
326
326
  "disabled:pointer-events-none", "disabled:opacity-50", "aria-disabled:pointer-events-none", "aria-disabled:opacity-50", // Group styles
327
327
  "group-has-data-[sidebar=menu-action]/menu-item:pr-8", "group-data-[collapsible=icon]:py-2!", "group-data-[collapsible=icon]:px-[0.44rem]!", // Content styles
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shadcn/components/ui/sidebar.tsx"],"sourcesContent":["\"use client\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { PanelLeftIcon } from \"lucide-react\";\nimport * as React from \"react\";\nimport { Button } from \"#shadcn/components/ui/button\";\nimport { Input } from \"#shadcn/components/ui/input\";\nimport { Separator } from \"#shadcn/components/ui/separator\";\nimport {\n\tSheet,\n\tSheetContent,\n\tSheetDescription,\n\tSheetHeader,\n\tSheetTitle,\n} from \"#shadcn/components/ui/sheet\";\nimport { Skeleton } from \"#shadcn/components/ui/skeleton\";\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipProvider,\n\tTooltipTrigger,\n} from \"#shadcn/components/ui/tooltip\";\nimport { useIsMobile } from \"#shadcn/hooks/use-mobile\";\nimport { cn } from \"#shadcn/lib/utils\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"13.75rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3.125rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ntype SidebarContextProps = {\n\tstate: \"expanded\" | \"collapsed\";\n\topen: boolean;\n\tsetOpen: (open: boolean) => void;\n\topenMobile: boolean;\n\tsetOpenMobile: (open: boolean) => void;\n\tisMobile: boolean;\n\ttoggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n\tconst context = React.useContext(SidebarContext);\n\tif (!context) {\n\t\tthrow new Error(\"useSidebar must be used within a SidebarProvider.\");\n\t}\n\n\treturn context;\n}\n\nfunction SidebarProvider({\n\tdefaultOpen = true,\n\topen: openProp,\n\tonOpenChange: setOpenProp,\n\tclassName,\n\tstyle,\n\tchildren,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tdefaultOpen?: boolean;\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n}) {\n\tconst isMobile = useIsMobile();\n\tconst [openMobile, setOpenMobile] = React.useState(false);\n\n\t// This is the internal state of the sidebar.\n\t// We use openProp and setOpenProp for control from outside the component.\n\tconst [_open, _setOpen] = React.useState(defaultOpen);\n\tconst open = openProp ?? _open;\n\tconst setOpen = React.useCallback(\n\t\t(value: boolean | ((value: boolean) => boolean)) => {\n\t\t\tconst openState = typeof value === \"function\" ? value(open) : value;\n\t\t\tif (setOpenProp) {\n\t\t\t\tsetOpenProp(openState);\n\t\t\t} else {\n\t\t\t\t_setOpen(openState);\n\t\t\t}\n\n\t\t\t// This sets the cookie to keep the sidebar state.\n\t\t\t// biome-ignore lint/suspicious/noDocumentCookie: FIXME: unchanged shadcn\n\t\t\tdocument.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n\t\t},\n\t\t[setOpenProp, open],\n\t);\n\n\t// Helper to toggle the sidebar.\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: FIXME: unchanged shadcn\n\tconst toggleSidebar = React.useCallback(() => {\n\t\treturn isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n\t}, [isMobile, setOpen, setOpenMobile]);\n\n\t// Adds a keyboard shortcut to toggle the sidebar.\n\tReact.useEffect(() => {\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\n\t\t\tif (\n\t\t\t\tevent.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n\t\t\t\t(event.metaKey || event.ctrlKey)\n\t\t\t) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttoggleSidebar();\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener(\"keydown\", handleKeyDown);\n\t\treturn () => window.removeEventListener(\"keydown\", handleKeyDown);\n\t}, [toggleSidebar]);\n\n\t// We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n\t// This makes it easier to style the sidebar with Tailwind classes.\n\tconst state = open ? \"expanded\" : \"collapsed\";\n\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: FIXME: unchanged shadcn\n\tconst contextValue = React.useMemo<SidebarContextProps>(\n\t\t() => ({\n\t\t\tstate,\n\t\t\topen,\n\t\t\tsetOpen,\n\t\t\tisMobile,\n\t\t\topenMobile,\n\t\t\tsetOpenMobile,\n\t\t\ttoggleSidebar,\n\t\t}),\n\t\t[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n\t);\n\n\treturn (\n\t\t<SidebarContext.Provider value={contextValue}>\n\t\t\t<TooltipProvider delayDuration={0}>\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"sidebar-wrapper\"\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH,\n\t\t\t\t\t\t\t\"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n\t\t\t\t\t\t\t...style,\n\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full box-content\",\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</TooltipProvider>\n\t\t</SidebarContext.Provider>\n\t);\n}\n\nfunction Sidebar({\n\tside = \"left\",\n\tvariant = \"sidebar\",\n\tcollapsible = \"offcanvas\",\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tside?: \"left\" | \"right\";\n\tvariant?: \"sidebar\" | \"floating\" | \"inset\";\n\tcollapsible?: \"offcanvas\" | \"icon\" | \"none\";\n}) {\n\tconst { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n\tif (collapsible === \"none\") {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (isMobile) {\n\t\treturn (\n\t\t\t<Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n\t\t\t\t<SheetContent\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\t\tdata-mobile=\"true\"\n\t\t\t\t\tclassName=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t}\n\t\t\t\t\tside={side}\n\t\t\t\t>\n\t\t\t\t\t<SheetHeader className=\"sr-only\">\n\t\t\t\t\t\t<SheetTitle>Sidebar</SheetTitle>\n\t\t\t\t\t\t<SheetDescription>Displays the mobile sidebar.</SheetDescription>\n\t\t\t\t\t</SheetHeader>\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">{children}</div>\n\t\t\t\t</SheetContent>\n\t\t\t</Sheet>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"group peer text-sidebar-foreground hidden md:block\"\n\t\t\tdata-state={state}\n\t\t\tdata-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n\t\t\tdata-variant={variant}\n\t\t\tdata-side={side}\n\t\t\tdata-slot=\"sidebar\"\n\t\t>\n\t\t\t{/* This is what handles the sidebar gap on desktop */}\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar-gap\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"relative w-(--sidebar-width) bg-transparent transition-[width] duration-120 ease-linear\",\n\t\t\t\t\t\"group-data-[collapsible=offcanvas]:w-0\",\n\t\t\t\t\t\"group-data-[side=right]:rotate-180\",\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar-container\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-120 ease-linear md:flex box-content\",\n\t\t\t\t\tside === \"left\"\n\t\t\t\t\t\t? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n\t\t\t\t\t\t: \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n\t\t\t\t\t// Adjust the padding for floating and inset variants.\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar-inner\"\n\t\t\t\t\tclassName=\"bg-bg-primary group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction SidebarTrigger({\n\tclassName,\n\tonClick,\n\t...props\n}: React.ComponentProps<typeof Button>) {\n\tconst { toggleSidebar } = useSidebar();\n\n\treturn (\n\t\t<Button\n\t\t\tdata-sidebar=\"trigger\"\n\t\t\tdata-slot=\"sidebar-trigger\"\n\t\t\tvariant=\"ghost\"\n\t\t\tsize=\"small\"\n\t\t\tclassName={cn(\"size-7\", className)}\n\t\t\tonClick={(event) => {\n\t\t\t\tonClick?.(event);\n\t\t\t\ttoggleSidebar();\n\t\t\t}}\n\t\t\t{...props}\n\t\t>\n\t\t\t<PanelLeftIcon />\n\t\t\t<span className=\"sr-only\">Toggle Sidebar</span>\n\t\t</Button>\n\t);\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n\tconst { toggleSidebar } = useSidebar();\n\n\treturn (\n\t\t<button\n\t\t\tdata-sidebar=\"rail\"\n\t\t\tdata-slot=\"sidebar-rail\"\n\t\t\taria-label=\"Toggle Sidebar\"\n\t\t\ttabIndex={-1}\n\t\t\tonClick={toggleSidebar}\n\t\t\ttitle=\"Toggle Sidebar\"\n\t\t\tclassName={cn(\n\t\t\t\t\"hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex\",\n\t\t\t\t\"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n\t\t\t\t\"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n\t\t\t\t\"hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full\",\n\t\t\t\t\"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n\t\t\t\t\"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n\treturn (\n\t\t<main\n\t\t\tdata-slot=\"sidebar-inset\"\n\t\t\tclassName={cn(\n\t\t\t\t\"bg-background relative flex w-full flex-1 flex-col\",\n\t\t\t\t\"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl\",\n\t\t\t\t\"md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n\t\t\t\t\"peer-has-data-[sidebar-mode=hover]:fixed peer-has-data-[sidebar-mode=hover]:h-full peer-has-data-[sidebar-mode=hover]:grow\",\n\t\t\t\t\"peer-has-data-[sidebar-mode=hover]:left-(--sidebar-width-icon)\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarInput({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof Input>) {\n\treturn (\n\t\t<Input\n\t\t\tdata-slot=\"sidebar-input\"\n\t\t\tdata-sidebar=\"input\"\n\t\t\tclassName={cn(\"bg-background h-8 w-full shadow-none\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-header\"\n\t\t\tdata-sidebar=\"header\"\n\t\t\tclassName={cn(\"flex flex-col gap-2 p-2\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-footer\"\n\t\t\tdata-sidebar=\"footer\"\n\t\t\tclassName={cn(\"flex flex-col gap-2 p-2 pb-3\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof Separator>) {\n\treturn (\n\t\t<Separator\n\t\t\tdata-slot=\"sidebar-separator\"\n\t\t\tdata-sidebar=\"separator\"\n\t\t\tclassName={cn(\"border-border-secondary w-auto\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-content\"\n\t\t\tdata-sidebar=\"content\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex min-h-0 flex-1 flex-col gap-1 p-2 pt-3 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-group\"\n\t\t\tdata-sidebar=\"group\"\n\t\t\tclassName={cn(\"relative flex w-full min-w-0 flex-col\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupLabel({\n\tclassName,\n\tasChild = false,\n\t...props\n}: React.ComponentProps<\"div\"> & { asChild?: boolean }) {\n\tconst Comp = asChild ? Slot : \"div\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-group-label\"\n\t\t\tdata-sidebar=\"group-label\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\t\t\"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupAction({\n\tclassName,\n\tasChild = false,\n\t...props\n}: React.ComponentProps<\"button\"> & { asChild?: boolean }) {\n\tconst Comp = asChild ? Slot : \"button\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-group-action\"\n\t\t\tdata-sidebar=\"group-action\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\t\t// Increases the hit area of the button on mobile.\n\t\t\t\t\"after:absolute after:-inset-2 md:after:hidden\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupContent({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-group-content\"\n\t\t\tdata-sidebar=\"group-content\"\n\t\t\tclassName={cn(\"w-full text-sm\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n\treturn (\n\t\t<ul\n\t\t\tdata-slot=\"sidebar-menu\"\n\t\t\tdata-sidebar=\"menu\"\n\t\t\tclassName={cn(\"flex w-full min-w-0 flex-col gap-0.5\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n\treturn (\n\t\t<li\n\t\t\tdata-slot=\"sidebar-menu-item\"\n\t\t\tdata-sidebar=\"menu-item\"\n\t\t\tclassName={cn(\"group/menu-item relative\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Base sidebar menu button styles\nconst baseSidebarMenuButtonStyles = cn(\n\t// Layout\n\t\"flex\",\n\t\"items-center\",\n\t\"gap-2\",\n\t\"w-full\",\n\t\"overflow-hidden\",\n\t// Shape\n\t\"rounded-lg\",\n\t// Spacing\n\t\"py-2\",\n\t\"px-[0.44rem]\",\n\t// Typography\n\t\"typo-body\",\n\t\"text-text-primary\",\n\t// Interaction\n\t\"outline-hidden\",\n\t\"transition-all\",\n\t\"cursor-pointer\",\n\t// Focus\n\t\"focus-visible:ring-2\",\n\t\"focus-visible:ring-utility-blue/70\",\n\t// Hover\n\t\"hover:bg-bg-secondary\",\n\t\"hover:text-text-primary\",\n\t// Active\n\t\"active:bg-bg-quaternary\",\n\t\"data-[active=true]:bg-bg-brand-secondary\",\n\t\"data-[active=true]:text-text-primary\",\n\t\"data-[active=true]:[&>svg]:text-text-brand-primary\",\n\t// Open state\n\t\"data-[state=open]:hover:bg-bg-secondary\",\n\t\"data-[state=open]:hover:text-text-primary\",\n\t// Disabled\n\t\"disabled:pointer-events-none\",\n\t\"disabled:opacity-50\",\n\t\"aria-disabled:pointer-events-none\",\n\t\"aria-disabled:opacity-50\",\n\t// Group styles\n\t\"group-has-data-[sidebar=menu-action]/menu-item:pr-8\",\n\t\"group-data-[collapsible=icon]:py-2!\",\n\t\"group-data-[collapsible=icon]:px-[0.44rem]!\",\n\t// Content styles\n\t\"[&>span:last-child]:truncate\",\n\t\"[&>svg]:size-5\",\n\t\"[&>svg]:shrink-0\",\n);\n\nconst sidebarMenuButtonVariants = cva(baseSidebarMenuButtonStyles, {\n\tvariants: {\n\t\tvariant: {\n\t\t\tdefault: cn(\"\"),\n\t\t\toutline: cn(\n\t\t\t\t\"shadow-[0_0_0_1px_hsl(var(--sidebar-border))]\",\n\t\t\t\t\"hover:bg-bg-secondary\",\n\t\t\t\t\"hover:text-text-primary\",\n\t\t\t\t\"hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n\t\t\t),\n\t\t},\n\t\tsize: {\n\t\t\tdefault: cn(\"\"),\n\t\t\tsm: cn(\"\"),\n\t\t\tlg: cn(\"h-12\", \"text-sm\", \"group-data-[collapsible=icon]:p-0!\"),\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tvariant: \"default\",\n\t\tsize: \"default\",\n\t},\n});\n\nfunction SidebarMenuButton({\n\tasChild = false,\n\tisActive = false,\n\tvariant = \"default\",\n\tsize = \"default\",\n\ttooltip,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"button\"> & {\n\tasChild?: boolean;\n\tisActive?: boolean;\n\ttooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n\tconst Comp = asChild ? Slot : \"button\";\n\tconst { isMobile, state } = useSidebar();\n\n\tconst button = (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-button\"\n\t\t\tdata-sidebar=\"menu-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n\n\tif (!tooltip) {\n\t\treturn button;\n\t}\n\n\tif (typeof tooltip === \"string\") {\n\t\ttooltip = {\n\t\t\tchildren: tooltip,\n\t\t};\n\t}\n\n\treturn (\n\t\t<Tooltip>\n\t\t\t<TooltipTrigger asChild>{button}</TooltipTrigger>\n\t\t\t<TooltipContent\n\t\t\t\tside=\"right\"\n\t\t\t\talign=\"center\"\n\t\t\t\thidden={state !== \"collapsed\" || isMobile}\n\t\t\t\t{...tooltip}\n\t\t\t/>\n\t\t</Tooltip>\n\t);\n}\n\nfunction SidebarMenuAction({\n\tclassName,\n\tasChild = false,\n\tshowOnHover = false,\n\t...props\n}: React.ComponentProps<\"button\"> & {\n\tasChild?: boolean;\n\tshowOnHover?: boolean;\n}) {\n\tconst Comp = asChild ? Slot : \"button\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-action\"\n\t\t\tdata-sidebar=\"menu-action\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\t\t// Increases the hit area of the button on mobile.\n\t\t\t\t\"after:absolute after:-inset-2 md:after:hidden\",\n\t\t\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tshowOnHover &&\n\t\t\t\t\t\"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuBadge({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-menu-badge\"\n\t\t\tdata-sidebar=\"menu-badge\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none\",\n\t\t\t\t\"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n\t\t\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSkeleton({\n\tclassName,\n\tshowIcon = false,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tshowIcon?: boolean;\n}) {\n\t// Random width between 50 to 90%.\n\tconst width = React.useMemo(() => {\n\t\treturn `${Math.floor(Math.random() * 40) + 50}%`;\n\t}, []);\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-menu-skeleton\"\n\t\t\tdata-sidebar=\"menu-skeleton\"\n\t\t\tclassName={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{showIcon && (\n\t\t\t\t<Skeleton\n\t\t\t\t\tclassName=\"size-4 rounded-md\"\n\t\t\t\t\tdata-sidebar=\"menu-skeleton-icon\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<Skeleton\n\t\t\t\tclassName=\"h-4 max-w-(--skeleton-width) flex-1\"\n\t\t\t\tdata-sidebar=\"menu-skeleton-text\"\n\t\t\t\tstyle={\n\t\t\t\t\t{\n\t\t\t\t\t\t\"--skeleton-width\": width,\n\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n\treturn (\n\t\t<ul\n\t\t\tdata-slot=\"sidebar-menu-sub\"\n\t\t\tdata-sidebar=\"menu-sub\"\n\t\t\tclassName={cn(\n\t\t\t\t\"border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSubItem({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"li\">) {\n\treturn (\n\t\t<li\n\t\t\tdata-slot=\"sidebar-menu-sub-item\"\n\t\t\tdata-sidebar=\"menu-sub-item\"\n\t\t\tclassName={cn(\"group/menu-sub-item relative\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSubButton({\n\tasChild = false,\n\tsize = \"md\",\n\tisActive = false,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"a\"> & {\n\tasChild?: boolean;\n\tsize?: \"sm\" | \"md\";\n\tisActive?: boolean;\n}) {\n\tconst Comp = asChild ? Slot : \"a\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-sub-button\"\n\t\t\tdata-sidebar=\"menu-sub-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\t\t\"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n\t\t\t\tsize === \"sm\" && \"text-xs\",\n\t\t\t\tsize === \"md\" && \"text-sm\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tSidebar,\n\tSidebarContent,\n\tSidebarFooter,\n\tSidebarGroup,\n\tSidebarGroupAction,\n\tSidebarGroupContent,\n\tSidebarGroupLabel,\n\tSidebarHeader,\n\tSidebarInput,\n\tSidebarInset,\n\tSidebarMenu,\n\tSidebarMenuAction,\n\tSidebarMenuBadge,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n\tSidebarMenuSkeleton,\n\tSidebarMenuSub,\n\tSidebarMenuSubButton,\n\tSidebarMenuSubItem,\n\tSidebarProvider,\n\tSidebarRail,\n\tSidebarSeparator,\n\tSidebarTrigger,\n\tuseSidebar,\n};\n"],"names":["Slot","cva","PanelLeftIcon","React","Button","Input","Separator","Sheet","SheetContent","SheetDescription","SheetHeader","SheetTitle","Skeleton","Tooltip","TooltipContent","TooltipProvider","TooltipTrigger","useIsMobile","cn","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","createContext","useSidebar","context","useContext","Error","SidebarProvider","defaultOpen","open","openProp","onOpenChange","setOpenProp","className","style","children","props","isMobile","openMobile","setOpenMobile","useState","_open","_setOpen","setOpen","useCallback","value","openState","document","cookie","toggleSidebar","useEffect","handleKeyDown","event","key","metaKey","ctrlKey","preventDefault","window","addEventListener","removeEventListener","state","contextValue","useMemo","Provider","delayDuration","div","data-slot","Sidebar","side","variant","collapsible","data-sidebar","data-mobile","data-state","data-collapsible","data-variant","data-side","SidebarTrigger","onClick","size","span","SidebarRail","button","aria-label","tabIndex","title","SidebarInset","main","SidebarInput","SidebarHeader","SidebarFooter","SidebarSeparator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Comp","SidebarGroupAction","SidebarGroupContent","SidebarMenu","ul","SidebarMenuItem","li","baseSidebarMenuButtonStyles","sidebarMenuButtonVariants","variants","default","outline","sm","lg","defaultVariants","SidebarMenuButton","isActive","tooltip","data-size","data-active","align","hidden","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Math","floor","random","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/shadcn/components/ui/sidebar.tsx"],"sourcesContent":["\"use client\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { PanelLeftIcon } from \"lucide-react\";\nimport * as React from \"react\";\nimport { Button } from \"#shadcn/components/ui/button\";\nimport { Input } from \"#shadcn/components/ui/input\";\nimport { Separator } from \"#shadcn/components/ui/separator\";\nimport {\n\tSheet,\n\tSheetContent,\n\tSheetDescription,\n\tSheetHeader,\n\tSheetTitle,\n} from \"#shadcn/components/ui/sheet\";\nimport { Skeleton } from \"#shadcn/components/ui/skeleton\";\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipProvider,\n\tTooltipTrigger,\n} from \"#shadcn/components/ui/tooltip\";\nimport { useIsMobile } from \"#shadcn/hooks/use-mobile\";\nimport { cn } from \"#shadcn/lib/utils\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"13.75rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3.125rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ntype SidebarContextProps = {\n\tstate: \"expanded\" | \"collapsed\";\n\topen: boolean;\n\tsetOpen: (open: boolean) => void;\n\topenMobile: boolean;\n\tsetOpenMobile: (open: boolean) => void;\n\tisMobile: boolean;\n\ttoggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n\tconst context = React.useContext(SidebarContext);\n\tif (!context) {\n\t\tthrow new Error(\"useSidebar must be used within a SidebarProvider.\");\n\t}\n\n\treturn context;\n}\n\nfunction SidebarProvider({\n\tdefaultOpen = true,\n\topen: openProp,\n\tonOpenChange: setOpenProp,\n\tclassName,\n\tstyle,\n\tchildren,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tdefaultOpen?: boolean;\n\topen?: boolean;\n\tonOpenChange?: (open: boolean) => void;\n}) {\n\tconst isMobile = useIsMobile();\n\tconst [openMobile, setOpenMobile] = React.useState(false);\n\n\t// This is the internal state of the sidebar.\n\t// We use openProp and setOpenProp for control from outside the component.\n\tconst [_open, _setOpen] = React.useState(defaultOpen);\n\tconst open = openProp ?? _open;\n\tconst setOpen = React.useCallback(\n\t\t(value: boolean | ((value: boolean) => boolean)) => {\n\t\t\tconst openState = typeof value === \"function\" ? value(open) : value;\n\t\t\tif (setOpenProp) {\n\t\t\t\tsetOpenProp(openState);\n\t\t\t} else {\n\t\t\t\t_setOpen(openState);\n\t\t\t}\n\n\t\t\t// This sets the cookie to keep the sidebar state.\n\t\t\t// biome-ignore lint/suspicious/noDocumentCookie: FIXME: unchanged shadcn\n\t\t\tdocument.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n\t\t},\n\t\t[setOpenProp, open],\n\t);\n\n\t// Helper to toggle the sidebar.\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: FIXME: unchanged shadcn\n\tconst toggleSidebar = React.useCallback(() => {\n\t\treturn isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n\t}, [isMobile, setOpen, setOpenMobile]);\n\n\t// Adds a keyboard shortcut to toggle the sidebar.\n\tReact.useEffect(() => {\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\n\t\t\tif (\n\t\t\t\tevent.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n\t\t\t\t(event.metaKey || event.ctrlKey)\n\t\t\t) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\ttoggleSidebar();\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener(\"keydown\", handleKeyDown);\n\t\treturn () => window.removeEventListener(\"keydown\", handleKeyDown);\n\t}, [toggleSidebar]);\n\n\t// We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n\t// This makes it easier to style the sidebar with Tailwind classes.\n\tconst state = open ? \"expanded\" : \"collapsed\";\n\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: FIXME: unchanged shadcn\n\tconst contextValue = React.useMemo<SidebarContextProps>(\n\t\t() => ({\n\t\t\tstate,\n\t\t\topen,\n\t\t\tsetOpen,\n\t\t\tisMobile,\n\t\t\topenMobile,\n\t\t\tsetOpenMobile,\n\t\t\ttoggleSidebar,\n\t\t}),\n\t\t[state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n\t);\n\n\treturn (\n\t\t<SidebarContext.Provider value={contextValue}>\n\t\t\t<TooltipProvider delayDuration={0}>\n\t\t\t\t<div\n\t\t\t\t\tdata-slot=\"sidebar-wrapper\"\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH,\n\t\t\t\t\t\t\t\"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n\t\t\t\t\t\t\t...style,\n\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full box-content\",\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</TooltipProvider>\n\t\t</SidebarContext.Provider>\n\t);\n}\n\nfunction Sidebar({\n\tside = \"left\",\n\tvariant = \"sidebar\",\n\tcollapsible = \"offcanvas\",\n\tclassName,\n\tchildren,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tside?: \"left\" | \"right\";\n\tvariant?: \"sidebar\" | \"floating\" | \"inset\";\n\tcollapsible?: \"offcanvas\" | \"icon\" | \"none\";\n}) {\n\tconst { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n\tif (collapsible === \"none\") {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif (isMobile) {\n\t\treturn (\n\t\t\t<Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n\t\t\t\t<SheetContent\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar\"\n\t\t\t\t\tdata-mobile=\"true\"\n\t\t\t\t\tclassName=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n\t\t\t\t\tstyle={\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t}\n\t\t\t\t\tside={side}\n\t\t\t\t>\n\t\t\t\t\t<SheetHeader className=\"sr-only\">\n\t\t\t\t\t\t<SheetTitle>Sidebar</SheetTitle>\n\t\t\t\t\t\t<SheetDescription>Displays the mobile sidebar.</SheetDescription>\n\t\t\t\t\t</SheetHeader>\n\t\t\t\t\t<div className=\"flex h-full w-full flex-col\">{children}</div>\n\t\t\t\t</SheetContent>\n\t\t\t</Sheet>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"group peer text-sidebar-foreground hidden md:block\"\n\t\t\tdata-state={state}\n\t\t\tdata-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n\t\t\tdata-variant={variant}\n\t\t\tdata-side={side}\n\t\t\tdata-slot=\"sidebar\"\n\t\t>\n\t\t\t{/* This is what handles the sidebar gap on desktop */}\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar-gap\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"relative w-(--sidebar-width) bg-transparent transition-[width] duration-120 ease-linear\",\n\t\t\t\t\t\"group-data-[collapsible=offcanvas]:w-0\",\n\t\t\t\t\t\"group-data-[side=right]:rotate-180\",\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\n\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tdata-slot=\"sidebar-container\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-120 ease-linear md:flex box-content\",\n\t\t\t\t\tside === \"left\"\n\t\t\t\t\t\t? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n\t\t\t\t\t\t: \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n\t\t\t\t\t// Adjust the padding for floating and inset variants.\n\t\t\t\t\tvariant === \"floating\" || variant === \"inset\"\n\t\t\t\t\t\t? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\n\t\t\t\t\t\t: \"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tdata-sidebar=\"sidebar\"\n\t\t\t\t\tdata-slot=\"sidebar-inner\"\n\t\t\t\t\tclassName=\"bg-bg-primary group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nfunction SidebarTrigger({\n\tclassName,\n\tonClick,\n\t...props\n}: React.ComponentProps<typeof Button>) {\n\tconst { toggleSidebar } = useSidebar();\n\n\treturn (\n\t\t<Button\n\t\t\tdata-sidebar=\"trigger\"\n\t\t\tdata-slot=\"sidebar-trigger\"\n\t\t\tvariant=\"ghost\"\n\t\t\tsize=\"small\"\n\t\t\tclassName={cn(\"size-7\", className)}\n\t\t\tonClick={(event) => {\n\t\t\t\tonClick?.(event);\n\t\t\t\ttoggleSidebar();\n\t\t\t}}\n\t\t\t{...props}\n\t\t>\n\t\t\t<PanelLeftIcon />\n\t\t\t<span className=\"sr-only\">Toggle Sidebar</span>\n\t\t</Button>\n\t);\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<\"button\">) {\n\tconst { toggleSidebar } = useSidebar();\n\n\treturn (\n\t\t<button\n\t\t\tdata-sidebar=\"rail\"\n\t\t\tdata-slot=\"sidebar-rail\"\n\t\t\taria-label=\"Toggle Sidebar\"\n\t\t\ttabIndex={-1}\n\t\t\tonClick={toggleSidebar}\n\t\t\ttitle=\"Toggle Sidebar\"\n\t\t\tclassName={cn(\n\t\t\t\t\"hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex\",\n\t\t\t\t\"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\n\t\t\t\t\"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n\t\t\t\t\"hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full\",\n\t\t\t\t\"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n\t\t\t\t\"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<\"main\">) {\n\treturn (\n\t\t<main\n\t\t\tdata-slot=\"sidebar-inset\"\n\t\t\tclassName={cn(\n\t\t\t\t\"bg-background relative flex w-full flex-1 flex-col\",\n\t\t\t\t\"md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl\",\n\t\t\t\t\"md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2\",\n\t\t\t\t\"peer-has-data-[sidebar-mode=hover]:fixed peer-has-data-[sidebar-mode=hover]:h-full peer-has-data-[sidebar-mode=hover]:grow\",\n\t\t\t\t\"peer-has-data-[sidebar-mode=hover]:left-(--sidebar-width-icon)\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarInput({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof Input>) {\n\treturn (\n\t\t<Input\n\t\t\tdata-slot=\"sidebar-input\"\n\t\t\tdata-sidebar=\"input\"\n\t\t\tclassName={cn(\"bg-background h-8 w-full shadow-none\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-header\"\n\t\t\tdata-sidebar=\"header\"\n\t\t\tclassName={cn(\"flex flex-col gap-2 p-2\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-footer\"\n\t\t\tdata-sidebar=\"footer\"\n\t\t\tclassName={cn(\"flex flex-col gap-2 p-2 pb-3\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarSeparator({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof Separator>) {\n\treturn (\n\t\t<Separator\n\t\t\tdata-slot=\"sidebar-separator\"\n\t\t\tdata-sidebar=\"separator\"\n\t\t\tclassName={cn(\"border-border-secondary w-auto\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-content\"\n\t\t\tdata-sidebar=\"content\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex min-h-0 flex-1 flex-col gap-1 p-2 pt-3 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-group\"\n\t\t\tdata-sidebar=\"group\"\n\t\t\tclassName={cn(\"relative flex w-full min-w-0 flex-col\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupLabel({\n\tclassName,\n\tasChild = false,\n\t...props\n}: React.ComponentProps<\"div\"> & { asChild?: boolean }) {\n\tconst Comp = asChild ? Slot : \"div\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-group-label\"\n\t\t\tdata-sidebar=\"group-label\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\t\t\"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupAction({\n\tclassName,\n\tasChild = false,\n\t...props\n}: React.ComponentProps<\"button\"> & { asChild?: boolean }) {\n\tconst Comp = asChild ? Slot : \"button\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-group-action\"\n\t\t\tdata-sidebar=\"group-action\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\t\t// Increases the hit area of the button on mobile.\n\t\t\t\t\"after:absolute after:-inset-2 md:after:hidden\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarGroupContent({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-group-content\"\n\t\t\tdata-sidebar=\"group-content\"\n\t\t\tclassName={cn(\"w-full text-sm\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<\"ul\">) {\n\treturn (\n\t\t<ul\n\t\t\tdata-slot=\"sidebar-menu\"\n\t\t\tdata-sidebar=\"menu\"\n\t\t\tclassName={cn(\"flex w-full min-w-0 flex-col gap-0.5\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<\"li\">) {\n\treturn (\n\t\t<li\n\t\t\tdata-slot=\"sidebar-menu-item\"\n\t\t\tdata-sidebar=\"menu-item\"\n\t\t\tclassName={cn(\"group/menu-item relative\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\n// Base sidebar menu button styles\nconst baseSidebarMenuButtonStyles = cn(\n\t// Layout\n\t\"flex\",\n\t\"items-center\",\n\t\"gap-2\",\n\t\"w-full\",\n\t\"overflow-hidden\",\n\t// Shape\n\t\"rounded-lg\",\n\t// Spacing\n\t\"py-2\",\n\t\"px-[0.44rem]\",\n\t// Typography\n\t\"typo-body\",\n\t\"text-fg-secondary\",\n\t// Interaction\n\t\"outline-hidden\",\n\t\"transition-all\",\n\t\"cursor-pointer\",\n\t// Focus\n\t\"focus-visible:ring-2\",\n\t\"focus-visible:ring-utility-blue/70\",\n\t// Hover\n\t\"hover:bg-bg-secondary\",\n\t\"hover:text-text-primary\",\n\t// Active\n\t\"active:bg-bg-quaternary\",\n\t\"data-[active=true]:bg-bg-brand-primary\",\n\t\"data-[active=true]:text-text-primary\",\n\t\"data-[active=true]:[&>svg]:text-fg-brand-primary\",\n\t// Open state\n\t\"data-[state=open]:hover:bg-bg-secondary\",\n\t\"data-[state=open]:hover:text-text-primary\",\n\t// Disabled\n\t\"disabled:pointer-events-none\",\n\t\"disabled:opacity-50\",\n\t\"aria-disabled:pointer-events-none\",\n\t\"aria-disabled:opacity-50\",\n\t// Group styles\n\t\"group-has-data-[sidebar=menu-action]/menu-item:pr-8\",\n\t\"group-data-[collapsible=icon]:py-2!\",\n\t\"group-data-[collapsible=icon]:px-[0.44rem]!\",\n\t// Content styles\n\t\"[&>span:last-child]:truncate\",\n\t\"[&>svg]:size-5\",\n\t\"[&>svg]:shrink-0\",\n);\n\nconst sidebarMenuButtonVariants = cva(baseSidebarMenuButtonStyles, {\n\tvariants: {\n\t\tvariant: {\n\t\t\tdefault: cn(\"\"),\n\t\t\toutline: cn(\n\t\t\t\t\"shadow-[0_0_0_1px_hsl(var(--sidebar-border))]\",\n\t\t\t\t\"hover:bg-bg-secondary\",\n\t\t\t\t\"hover:text-text-primary\",\n\t\t\t\t\"hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n\t\t\t),\n\t\t},\n\t\tsize: {\n\t\t\tdefault: cn(\"\"),\n\t\t\tsm: cn(\"\"),\n\t\t\tlg: cn(\"h-12\", \"text-sm\", \"group-data-[collapsible=icon]:p-0!\"),\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tvariant: \"default\",\n\t\tsize: \"default\",\n\t},\n});\n\nfunction SidebarMenuButton({\n\tasChild = false,\n\tisActive = false,\n\tvariant = \"default\",\n\tsize = \"default\",\n\ttooltip,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"button\"> & {\n\tasChild?: boolean;\n\tisActive?: boolean;\n\ttooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n\tconst Comp = asChild ? Slot : \"button\";\n\tconst { isMobile, state } = useSidebar();\n\n\tconst button = (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-button\"\n\t\t\tdata-sidebar=\"menu-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n\n\tif (!tooltip) {\n\t\treturn button;\n\t}\n\n\tif (typeof tooltip === \"string\") {\n\t\ttooltip = {\n\t\t\tchildren: tooltip,\n\t\t};\n\t}\n\n\treturn (\n\t\t<Tooltip>\n\t\t\t<TooltipTrigger asChild>{button}</TooltipTrigger>\n\t\t\t<TooltipContent\n\t\t\t\tside=\"right\"\n\t\t\t\talign=\"center\"\n\t\t\t\thidden={state !== \"collapsed\" || isMobile}\n\t\t\t\t{...tooltip}\n\t\t\t/>\n\t\t</Tooltip>\n\t);\n}\n\nfunction SidebarMenuAction({\n\tclassName,\n\tasChild = false,\n\tshowOnHover = false,\n\t...props\n}: React.ComponentProps<\"button\"> & {\n\tasChild?: boolean;\n\tshowOnHover?: boolean;\n}) {\n\tconst Comp = asChild ? Slot : \"button\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-action\"\n\t\t\tdata-sidebar=\"menu-action\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\t\t// Increases the hit area of the button on mobile.\n\t\t\t\t\"after:absolute after:-inset-2 md:after:hidden\",\n\t\t\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tshowOnHover &&\n\t\t\t\t\t\"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuBadge({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-menu-badge\"\n\t\t\tdata-sidebar=\"menu-badge\"\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none\",\n\t\t\t\t\"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n\t\t\t\t\"peer-data-[size=sm]/menu-button:top-1\",\n\t\t\t\t\"peer-data-[size=default]/menu-button:top-1.5\",\n\t\t\t\t\"peer-data-[size=lg]/menu-button:top-2.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSkeleton({\n\tclassName,\n\tshowIcon = false,\n\t...props\n}: React.ComponentProps<\"div\"> & {\n\tshowIcon?: boolean;\n}) {\n\t// Random width between 50 to 90%.\n\tconst width = React.useMemo(() => {\n\t\treturn `${Math.floor(Math.random() * 40) + 50}%`;\n\t}, []);\n\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sidebar-menu-skeleton\"\n\t\t\tdata-sidebar=\"menu-skeleton\"\n\t\t\tclassName={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{showIcon && (\n\t\t\t\t<Skeleton\n\t\t\t\t\tclassName=\"size-4 rounded-md\"\n\t\t\t\t\tdata-sidebar=\"menu-skeleton-icon\"\n\t\t\t\t/>\n\t\t\t)}\n\t\t\t<Skeleton\n\t\t\t\tclassName=\"h-4 max-w-(--skeleton-width) flex-1\"\n\t\t\t\tdata-sidebar=\"menu-skeleton-text\"\n\t\t\t\tstyle={\n\t\t\t\t\t{\n\t\t\t\t\t\t\"--skeleton-width\": width,\n\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<\"ul\">) {\n\treturn (\n\t\t<ul\n\t\t\tdata-slot=\"sidebar-menu-sub\"\n\t\t\tdata-sidebar=\"menu-sub\"\n\t\t\tclassName={cn(\n\t\t\t\t\"border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSubItem({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"li\">) {\n\treturn (\n\t\t<li\n\t\t\tdata-slot=\"sidebar-menu-sub-item\"\n\t\t\tdata-sidebar=\"menu-sub-item\"\n\t\t\tclassName={cn(\"group/menu-sub-item relative\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction SidebarMenuSubButton({\n\tasChild = false,\n\tsize = \"md\",\n\tisActive = false,\n\tclassName,\n\t...props\n}: React.ComponentProps<\"a\"> & {\n\tasChild?: boolean;\n\tsize?: \"sm\" | \"md\";\n\tisActive?: boolean;\n}) {\n\tconst Comp = asChild ? Slot : \"a\";\n\n\treturn (\n\t\t<Comp\n\t\t\tdata-slot=\"sidebar-menu-sub-button\"\n\t\t\tdata-sidebar=\"menu-sub-button\"\n\t\t\tdata-size={size}\n\t\t\tdata-active={isActive}\n\t\t\tclassName={cn(\n\t\t\t\t\"text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n\t\t\t\t\"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n\t\t\t\tsize === \"sm\" && \"text-xs\",\n\t\t\t\tsize === \"md\" && \"text-sm\",\n\t\t\t\t\"group-data-[collapsible=icon]:hidden\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tSidebar,\n\tSidebarContent,\n\tSidebarFooter,\n\tSidebarGroup,\n\tSidebarGroupAction,\n\tSidebarGroupContent,\n\tSidebarGroupLabel,\n\tSidebarHeader,\n\tSidebarInput,\n\tSidebarInset,\n\tSidebarMenu,\n\tSidebarMenuAction,\n\tSidebarMenuBadge,\n\tSidebarMenuButton,\n\tSidebarMenuItem,\n\tSidebarMenuSkeleton,\n\tSidebarMenuSub,\n\tSidebarMenuSubButton,\n\tSidebarMenuSubItem,\n\tSidebarProvider,\n\tSidebarRail,\n\tSidebarSeparator,\n\tSidebarTrigger,\n\tuseSidebar,\n};\n"],"names":["Slot","cva","PanelLeftIcon","React","Button","Input","Separator","Sheet","SheetContent","SheetDescription","SheetHeader","SheetTitle","Skeleton","Tooltip","TooltipContent","TooltipProvider","TooltipTrigger","useIsMobile","cn","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","createContext","useSidebar","context","useContext","Error","SidebarProvider","defaultOpen","open","openProp","onOpenChange","setOpenProp","className","style","children","props","isMobile","openMobile","setOpenMobile","useState","_open","_setOpen","setOpen","useCallback","value","openState","document","cookie","toggleSidebar","useEffect","handleKeyDown","event","key","metaKey","ctrlKey","preventDefault","window","addEventListener","removeEventListener","state","contextValue","useMemo","Provider","delayDuration","div","data-slot","Sidebar","side","variant","collapsible","data-sidebar","data-mobile","data-state","data-collapsible","data-variant","data-side","SidebarTrigger","onClick","size","span","SidebarRail","button","aria-label","tabIndex","title","SidebarInset","main","SidebarInput","SidebarHeader","SidebarFooter","SidebarSeparator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Comp","SidebarGroupAction","SidebarGroupContent","SidebarMenu","ul","SidebarMenuItem","li","baseSidebarMenuButtonStyles","sidebarMenuButtonVariants","variants","default","outline","sm","lg","defaultVariants","SidebarMenuButton","isActive","tooltip","data-size","data-active","align","hidden","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Math","floor","random","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"],"mappings":"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"}
@@ -17,11 +17,11 @@ const tableFooterStyles = cn("bg-bg-secondary", "border-t", "border-border-secon
17
17
  // Table row
18
18
  const tableRowStyles = cn("h-7", "transition-colors", "duration-150");
19
19
  // Table head cell
20
- const tableHeadStyles = cn("group/head", "text-text-secondary", "h-8", "px-4", "py-2", "text-left", "align-middle", "typo-label-xs", "whitespace-nowrap", "transition-colors", "duration-150", "hover:bg-bg-tertiary", "[&:has([role=checkbox])]:pr-0");
20
+ const tableHeadStyles = cn("group/head", "text-text-secondary", "h-8", "px-4", "py-2", "text-left", "align-middle", "typo-body-xs", "whitespace-nowrap", "transition-colors", "duration-150", "hover:bg-bg-tertiary", "[&:has([role=checkbox])]:pr-0");
21
21
  // Table head sort icon
22
22
  const tableSortIconStyles = cn("size-3.5", "shrink-0", "transition-opacity", "duration-150");
23
23
  // Table cell
24
- const tableCellStyles = cn("px-4", "py-1", "align-middle", "whitespace-nowrap", "text-sm", "text-text-primary", "[&:has([role=checkbox])]:pr-0");
24
+ const tableCellStyles = cn("px-4", "py-1", "align-middle", "whitespace-nowrap", "text-sm", "text-grey-700", "[&:has([role=checkbox])]:pr-0");
25
25
  // Table cell link variant
26
26
  const tableCellLinkStyles = cn("text-text-link", "cursor-pointer", "hover:underline");
27
27
  // Table caption
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/shadcn/components/ui/table.tsx"],"sourcesContent":["import { ArrowDownIcon, ArrowUpDownIcon, ArrowUpIcon } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"#shadcn/lib/utils\";\n\n// Table container\nconst tableContainerStyles = cn(\n\t\"relative\",\n\t\"h-full\",\n\t\"w-full\",\n\t\"overflow-auto\",\n);\n\n// Table base\nconst tableStyles = cn(\n\t\"w-full\",\n\t\"caption-bottom\",\n\t\"text-sm\",\n\t\"border-collapse\",\n\t\"border-spacing-0\",\n);\n\n// Table header\nconst tableHeaderStyles = cn(\n\t\"bg-bg-secondary\",\n\t\"[&_tr]:border-b\",\n\t\"[&_tr]:border-border-secondary\",\n\t\"[&_tr]:h-8\",\n);\n\n// Table header sticky variant\nconst tableHeaderStickyStyles = cn(\"sticky\", \"top-0\", \"z-10\");\n\n// Table body\nconst tableBodyStyles = cn(\n\t\"[&_tr:last-child]:border-0\",\n\t\"[&_tr]:hover:bg-bg-hover\",\n);\n\n// Table footer\nconst tableFooterStyles = cn(\n\t\"bg-bg-secondary\",\n\t\"border-t\",\n\t\"border-border-secondary\",\n\t\"font-medium\",\n\t\"[&>tr]:last:border-b-0\",\n);\n\n// Table row\nconst tableRowStyles = cn(\"h-7\", \"transition-colors\", \"duration-150\");\n\n// Table head cell\nconst tableHeadStyles = cn(\n\t\"group/head\",\n\t\"text-text-secondary\",\n\t\"h-8\",\n\t\"px-4\",\n\t\"py-2\",\n\t\"text-left\",\n\t\"align-middle\",\n\t\"typo-label-xs\",\n\t\"whitespace-nowrap\",\n\t\"transition-colors\",\n\t\"duration-150\",\n\t\"hover:bg-bg-tertiary\",\n\t\"[&:has([role=checkbox])]:pr-0\",\n);\n\n// Table head sort icon\nconst tableSortIconStyles = cn(\n\t\"size-3.5\",\n\t\"shrink-0\",\n\t\"transition-opacity\",\n\t\"duration-150\",\n);\n\n// Table cell\nconst tableCellStyles = cn(\n\t\"px-4\",\n\t\"py-1\",\n\t\"align-middle\",\n\t\"whitespace-nowrap\",\n\t\"text-sm\",\n\t\"text-text-primary\",\n\t\"[&:has([role=checkbox])]:pr-0\",\n);\n\n// Table cell link variant\nconst tableCellLinkStyles = cn(\n\t\"text-text-link\",\n\t\"cursor-pointer\",\n\t\"hover:underline\",\n);\n\n// Table caption\nconst tableCaptionStyles = cn(\n\t\"text-text-secondary\",\n\t\"mt-4\",\n\t\"text-xs\",\n\t\"text-left\",\n);\n\n// Context for sticky header\nconst TableStickyContext = React.createContext(false);\n\ntype TableProps = React.ComponentProps<\"table\"> & {\n\tzebra?: boolean | undefined;\n\tstickyHeader?: boolean | undefined;\n};\n\nfunction Table({\n\tclassName,\n\tzebra = false,\n\tstickyHeader = false,\n\t...props\n}: TableProps) {\n\treturn (\n\t\t<TableStickyContext.Provider value={stickyHeader}>\n\t\t\t<div data-slot=\"table-container\" className={tableContainerStyles}>\n\t\t\t\t<table\n\t\t\t\t\tdata-slot=\"table\"\n\t\t\t\t\tdata-zebra={zebra}\n\t\t\t\t\tclassName={cn(tableStyles, className)}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</TableStickyContext.Provider>\n\t);\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n\tconst stickyHeader = React.useContext(TableStickyContext);\n\n\treturn (\n\t\t<thead\n\t\t\tdata-slot=\"table-header\"\n\t\t\tclassName={cn(\n\t\t\t\ttableHeaderStyles,\n\t\t\t\tstickyHeader && tableHeaderStickyStyles,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n\treturn (\n\t\t<tbody\n\t\t\tdata-slot=\"table-body\"\n\t\t\tclassName={cn(tableBodyStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n\treturn (\n\t\t<tfoot\n\t\t\tdata-slot=\"table-footer\"\n\t\t\tclassName={cn(tableFooterStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\ntype TableRowProps = React.ComponentProps<\"tr\"> & {\n\tzebra?: boolean | undefined;\n\tindex?: number | undefined;\n\tselected?: boolean | undefined;\n};\n\nfunction TableRow({\n\tclassName,\n\tzebra = false,\n\tindex = 0,\n\tselected = false,\n\t...props\n}: TableRowProps) {\n\tconst isOdd = index % 2 === 1;\n\n\treturn (\n\t\t<tr\n\t\t\tdata-slot=\"table-row\"\n\t\t\tclassName={cn(\n\t\t\t\ttableRowStyles,\n\t\t\t\t!zebra && \"border-b\",\n\t\t\t\t!zebra && \"border-border-secondary\",\n\t\t\t\tzebra && isOdd && \"bg-bg-secondary\",\n\t\t\t\tselected && \"bg-bg-hover\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\ntype TableHeadProps = React.ComponentProps<\"th\"> & {\n\tsortable?: boolean | undefined;\n\tsorted?: \"asc\" | \"desc\" | false | undefined;\n};\n\nfunction TableHead({\n\tclassName,\n\tsortable = false,\n\tsorted = false,\n\tchildren,\n\t...props\n}: TableHeadProps) {\n\tconst SortIcon =\n\t\tsorted === \"asc\"\n\t\t\t? ArrowUpIcon\n\t\t\t: sorted === \"desc\"\n\t\t\t\t? ArrowDownIcon\n\t\t\t\t: ArrowUpDownIcon;\n\n\treturn (\n\t\t<th\n\t\t\tdata-slot=\"table-head\"\n\t\t\tclassName={cn(\n\t\t\t\ttableHeadStyles,\n\t\t\t\tsortable && \"cursor-pointer select-none\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{sortable ? (\n\t\t\t\t<div className=\"flex items-center gap-1\">\n\t\t\t\t\t{children}\n\t\t\t\t\t<SortIcon\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\ttableSortIconStyles,\n\t\t\t\t\t\t\tsorted ? \"opacity-100\" : \"opacity-0 group-hover/head:opacity-30\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\tchildren\n\t\t\t)}\n\t\t</th>\n\t);\n}\n\ntype CellType = \"text\" | \"link\";\n\ntype TableCellProps = React.ComponentProps<\"td\"> & {\n\ttype?: CellType | undefined;\n};\n\nfunction TableCell({ className, type = \"text\", ...props }: TableCellProps) {\n\treturn (\n\t\t<td\n\t\t\tdata-slot=\"table-cell\"\n\t\t\tdata-type={type}\n\t\t\tclassName={cn(\n\t\t\t\ttableCellStyles,\n\t\t\t\ttype === \"link\" && tableCellLinkStyles,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction TableCaption({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"caption\">) {\n\treturn (\n\t\t<caption\n\t\t\tdata-slot=\"table-caption\"\n\t\t\tclassName={cn(tableCaptionStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tTable,\n\tTableHeader,\n\tTableBody,\n\tTableFooter,\n\tTableHead,\n\tTableRow,\n\tTableCell,\n\tTableCaption,\n\ttype TableProps,\n\ttype TableRowProps,\n\ttype TableHeadProps,\n\ttype TableCellProps,\n\ttype CellType,\n};\n"],"names":["ArrowDownIcon","ArrowUpDownIcon","ArrowUpIcon","React","cn","tableContainerStyles","tableStyles","tableHeaderStyles","tableHeaderStickyStyles","tableBodyStyles","tableFooterStyles","tableRowStyles","tableHeadStyles","tableSortIconStyles","tableCellStyles","tableCellLinkStyles","tableCaptionStyles","TableStickyContext","createContext","Table","className","zebra","stickyHeader","props","Provider","value","div","data-slot","table","data-zebra","TableHeader","useContext","thead","TableBody","tbody","TableFooter","tfoot","TableRow","index","selected","isOdd","tr","TableHead","sortable","sorted","children","SortIcon","th","TableCell","type","td","data-type","TableCaption","caption"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../src/shadcn/components/ui/table.tsx"],"sourcesContent":["import { ArrowDownIcon, ArrowUpDownIcon, ArrowUpIcon } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from \"#shadcn/lib/utils\";\n\n// Table container\nconst tableContainerStyles = cn(\n\t\"relative\",\n\t\"h-full\",\n\t\"w-full\",\n\t\"overflow-auto\",\n);\n\n// Table base\nconst tableStyles = cn(\n\t\"w-full\",\n\t\"caption-bottom\",\n\t\"text-sm\",\n\t\"border-collapse\",\n\t\"border-spacing-0\",\n);\n\n// Table header\nconst tableHeaderStyles = cn(\n\t\"bg-bg-secondary\",\n\t\"[&_tr]:border-b\",\n\t\"[&_tr]:border-border-secondary\",\n\t\"[&_tr]:h-8\",\n);\n\n// Table header sticky variant\nconst tableHeaderStickyStyles = cn(\"sticky\", \"top-0\", \"z-10\");\n\n// Table body\nconst tableBodyStyles = cn(\n\t\"[&_tr:last-child]:border-0\",\n\t\"[&_tr]:hover:bg-bg-hover\",\n);\n\n// Table footer\nconst tableFooterStyles = cn(\n\t\"bg-bg-secondary\",\n\t\"border-t\",\n\t\"border-border-secondary\",\n\t\"font-medium\",\n\t\"[&>tr]:last:border-b-0\",\n);\n\n// Table row\nconst tableRowStyles = cn(\"h-7\", \"transition-colors\", \"duration-150\");\n\n// Table head cell\nconst tableHeadStyles = cn(\n\t\"group/head\",\n\t\"text-text-secondary\",\n\t\"h-8\",\n\t\"px-4\",\n\t\"py-2\",\n\t\"text-left\",\n\t\"align-middle\",\n\t\"typo-body-xs\",\n\t\"whitespace-nowrap\",\n\t\"transition-colors\",\n\t\"duration-150\",\n\t\"hover:bg-bg-tertiary\",\n\t\"[&:has([role=checkbox])]:pr-0\",\n);\n\n// Table head sort icon\nconst tableSortIconStyles = cn(\n\t\"size-3.5\",\n\t\"shrink-0\",\n\t\"transition-opacity\",\n\t\"duration-150\",\n);\n\n// Table cell\nconst tableCellStyles = cn(\n\t\"px-4\",\n\t\"py-1\",\n\t\"align-middle\",\n\t\"whitespace-nowrap\",\n\t\"text-sm\",\n\t\"text-grey-700\",\n\t\"[&:has([role=checkbox])]:pr-0\",\n);\n\n// Table cell link variant\nconst tableCellLinkStyles = cn(\n\t\"text-text-link\",\n\t\"cursor-pointer\",\n\t\"hover:underline\",\n);\n\n// Table caption\nconst tableCaptionStyles = cn(\n\t\"text-text-secondary\",\n\t\"mt-4\",\n\t\"text-xs\",\n\t\"text-left\",\n);\n\n// Context for sticky header\nconst TableStickyContext = React.createContext(false);\n\ntype TableProps = React.ComponentProps<\"table\"> & {\n\tzebra?: boolean | undefined;\n\tstickyHeader?: boolean | undefined;\n};\n\nfunction Table({\n\tclassName,\n\tzebra = false,\n\tstickyHeader = false,\n\t...props\n}: TableProps) {\n\treturn (\n\t\t<TableStickyContext.Provider value={stickyHeader}>\n\t\t\t<div data-slot=\"table-container\" className={tableContainerStyles}>\n\t\t\t\t<table\n\t\t\t\t\tdata-slot=\"table\"\n\t\t\t\t\tdata-zebra={zebra}\n\t\t\t\t\tclassName={cn(tableStyles, className)}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</TableStickyContext.Provider>\n\t);\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n\tconst stickyHeader = React.useContext(TableStickyContext);\n\n\treturn (\n\t\t<thead\n\t\t\tdata-slot=\"table-header\"\n\t\t\tclassName={cn(\n\t\t\t\ttableHeaderStyles,\n\t\t\t\tstickyHeader && tableHeaderStickyStyles,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n\treturn (\n\t\t<tbody\n\t\t\tdata-slot=\"table-body\"\n\t\t\tclassName={cn(tableBodyStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n\treturn (\n\t\t<tfoot\n\t\t\tdata-slot=\"table-footer\"\n\t\t\tclassName={cn(tableFooterStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\ntype TableRowProps = React.ComponentProps<\"tr\"> & {\n\tzebra?: boolean | undefined;\n\tindex?: number | undefined;\n\tselected?: boolean | undefined;\n};\n\nfunction TableRow({\n\tclassName,\n\tzebra = false,\n\tindex = 0,\n\tselected = false,\n\t...props\n}: TableRowProps) {\n\tconst isOdd = index % 2 === 1;\n\n\treturn (\n\t\t<tr\n\t\t\tdata-slot=\"table-row\"\n\t\t\tclassName={cn(\n\t\t\t\ttableRowStyles,\n\t\t\t\t!zebra && \"border-b\",\n\t\t\t\t!zebra && \"border-border-secondary\",\n\t\t\t\tzebra && isOdd && \"bg-bg-secondary\",\n\t\t\t\tselected && \"bg-bg-hover\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\ntype TableHeadProps = React.ComponentProps<\"th\"> & {\n\tsortable?: boolean | undefined;\n\tsorted?: \"asc\" | \"desc\" | false | undefined;\n};\n\nfunction TableHead({\n\tclassName,\n\tsortable = false,\n\tsorted = false,\n\tchildren,\n\t...props\n}: TableHeadProps) {\n\tconst SortIcon =\n\t\tsorted === \"asc\"\n\t\t\t? ArrowUpIcon\n\t\t\t: sorted === \"desc\"\n\t\t\t\t? ArrowDownIcon\n\t\t\t\t: ArrowUpDownIcon;\n\n\treturn (\n\t\t<th\n\t\t\tdata-slot=\"table-head\"\n\t\t\tclassName={cn(\n\t\t\t\ttableHeadStyles,\n\t\t\t\tsortable && \"cursor-pointer select-none\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{sortable ? (\n\t\t\t\t<div className=\"flex items-center gap-1\">\n\t\t\t\t\t{children}\n\t\t\t\t\t<SortIcon\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\ttableSortIconStyles,\n\t\t\t\t\t\t\tsorted ? \"opacity-100\" : \"opacity-0 group-hover/head:opacity-30\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\tchildren\n\t\t\t)}\n\t\t</th>\n\t);\n}\n\ntype CellType = \"text\" | \"link\";\n\ntype TableCellProps = React.ComponentProps<\"td\"> & {\n\ttype?: CellType | undefined;\n};\n\nfunction TableCell({ className, type = \"text\", ...props }: TableCellProps) {\n\treturn (\n\t\t<td\n\t\t\tdata-slot=\"table-cell\"\n\t\t\tdata-type={type}\n\t\t\tclassName={cn(\n\t\t\t\ttableCellStyles,\n\t\t\t\ttype === \"link\" && tableCellLinkStyles,\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction TableCaption({\n\tclassName,\n\t...props\n}: React.ComponentProps<\"caption\">) {\n\treturn (\n\t\t<caption\n\t\t\tdata-slot=\"table-caption\"\n\t\t\tclassName={cn(tableCaptionStyles, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport {\n\tTable,\n\tTableHeader,\n\tTableBody,\n\tTableFooter,\n\tTableHead,\n\tTableRow,\n\tTableCell,\n\tTableCaption,\n\ttype TableProps,\n\ttype TableRowProps,\n\ttype TableHeadProps,\n\ttype TableCellProps,\n\ttype CellType,\n};\n"],"names":["ArrowDownIcon","ArrowUpDownIcon","ArrowUpIcon","React","cn","tableContainerStyles","tableStyles","tableHeaderStyles","tableHeaderStickyStyles","tableBodyStyles","tableFooterStyles","tableRowStyles","tableHeadStyles","tableSortIconStyles","tableCellStyles","tableCellLinkStyles","tableCaptionStyles","TableStickyContext","createContext","Table","className","zebra","stickyHeader","props","Provider","value","div","data-slot","table","data-zebra","TableHeader","useContext","thead","TableBody","tbody","TableFooter","tfoot","TableRow","index","selected","isOdd","tr","TableHead","sortable","sorted","children","SortIcon","th","TableCell","type","td","data-type","TableCaption","caption"],"mappings":";AAAA,SAASA,aAAa,EAAEC,eAAe,EAAEC,WAAW,QAAQ,eAAe;AAC3E,YAAYC,WAAW,QAAQ;AAE/B,SAASC,EAAE,QAAQ,qBAAoB;AAEvC,kBAAkB;AAClB,MAAMC,uBAAuBD,GAC5B,YACA,UACA,UACA;AAGD,aAAa;AACb,MAAME,cAAcF,GACnB,UACA,kBACA,WACA,mBACA;AAGD,eAAe;AACf,MAAMG,oBAAoBH,GACzB,mBACA,mBACA,kCACA;AAGD,8BAA8B;AAC9B,MAAMI,0BAA0BJ,GAAG,UAAU,SAAS;AAEtD,aAAa;AACb,MAAMK,kBAAkBL,GACvB,8BACA;AAGD,eAAe;AACf,MAAMM,oBAAoBN,GACzB,mBACA,YACA,2BACA,eACA;AAGD,YAAY;AACZ,MAAMO,iBAAiBP,GAAG,OAAO,qBAAqB;AAEtD,kBAAkB;AAClB,MAAMQ,kBAAkBR,GACvB,cACA,uBACA,OACA,QACA,QACA,aACA,gBACA,gBACA,qBACA,qBACA,gBACA,wBACA;AAGD,uBAAuB;AACvB,MAAMS,sBAAsBT,GAC3B,YACA,YACA,sBACA;AAGD,aAAa;AACb,MAAMU,kBAAkBV,GACvB,QACA,QACA,gBACA,qBACA,WACA,iBACA;AAGD,0BAA0B;AAC1B,MAAMW,sBAAsBX,GAC3B,kBACA,kBACA;AAGD,gBAAgB;AAChB,MAAMY,qBAAqBZ,GAC1B,uBACA,QACA,WACA;AAGD,4BAA4B;AAC5B,MAAMa,mCAAqBd,MAAMe,aAAa,CAAC;AAO/C,SAASC,MAAM,EACdC,SAAS,EACTC,QAAQ,KAAK,EACbC,eAAe,KAAK,EACpB,GAAGC,OACS;IACZ,qBACC,KAACN,mBAAmBO,QAAQ;QAACC,OAAOH;kBACnC,cAAA,KAACI;YAAIC,aAAU;YAAkBP,WAAWf;sBAC3C,cAAA,KAACuB;gBACAD,aAAU;gBACVE,cAAYR;gBACZD,WAAWhB,GAAGE,aAAac;gBAC1B,GAAGG,KAAK;;;;AAKd;AAEA,SAASO,YAAY,EAAEV,SAAS,EAAE,GAAGG,OAAsC;IAC1E,MAAMD,eAAenB,MAAM4B,UAAU,CAACd;IAEtC,qBACC,KAACe;QACAL,aAAU;QACVP,WAAWhB,GACVG,mBACAe,gBAAgBd,yBAChBY;QAEA,GAAGG,KAAK;;AAGZ;AAEA,SAASU,UAAU,EAAEb,SAAS,EAAE,GAAGG,OAAsC;IACxE,qBACC,KAACW;QACAP,aAAU;QACVP,WAAWhB,GAAGK,iBAAiBW;QAC9B,GAAGG,KAAK;;AAGZ;AAEA,SAASY,YAAY,EAAEf,SAAS,EAAE,GAAGG,OAAsC;IAC1E,qBACC,KAACa;QACAT,aAAU;QACVP,WAAWhB,GAAGM,mBAAmBU;QAChC,GAAGG,KAAK;;AAGZ;AAQA,SAASc,SAAS,EACjBjB,SAAS,EACTC,QAAQ,KAAK,EACbiB,QAAQ,CAAC,EACTC,WAAW,KAAK,EAChB,GAAGhB,OACY;IACf,MAAMiB,QAAQF,QAAQ,MAAM;IAE5B,qBACC,KAACG;QACAd,aAAU;QACVP,WAAWhB,GACVO,gBACA,CAACU,SAAS,YACV,CAACA,SAAS,2BACVA,SAASmB,SAAS,mBAClBD,YAAY,eACZnB;QAEA,GAAGG,KAAK;;AAGZ;AAOA,SAASmB,UAAU,EAClBtB,SAAS,EACTuB,WAAW,KAAK,EAChBC,SAAS,KAAK,EACdC,QAAQ,EACR,GAAGtB,OACa;IAChB,MAAMuB,WACLF,WAAW,QACR1C,cACA0C,WAAW,SACV5C,gBACAC;IAEL,qBACC,KAAC8C;QACApB,aAAU;QACVP,WAAWhB,GACVQ,iBACA+B,YAAY,8BACZvB;QAEA,GAAGG,KAAK;kBAERoB,yBACA,MAACjB;YAAIN,WAAU;;gBACbyB;8BACD,KAACC;oBACA1B,WAAWhB,GACVS,qBACA+B,SAAS,gBAAgB;;;aAK5BC;;AAIJ;AAQA,SAASG,UAAU,EAAE5B,SAAS,EAAE6B,OAAO,MAAM,EAAE,GAAG1B,OAAuB;IACxE,qBACC,KAAC2B;QACAvB,aAAU;QACVwB,aAAWF;QACX7B,WAAWhB,GACVU,iBACAmC,SAAS,UAAUlC,qBACnBK;QAEA,GAAGG,KAAK;;AAGZ;AAEA,SAAS6B,aAAa,EACrBhC,SAAS,EACT,GAAGG,OAC8B;IACjC,qBACC,KAAC8B;QACA1B,aAAU;QACVP,WAAWhB,GAAGY,oBAAoBI;QACjC,GAAGG,KAAK;;AAGZ;AAEA,SACCJ,KAAK,EACLW,WAAW,EACXG,SAAS,EACTE,WAAW,EACXO,SAAS,EACTL,QAAQ,EACRW,SAAS,EACTI,YAAY,GAMX"}
@@ -40,8 +40,8 @@
40
40
  --color-red-50: #fef9f9;
41
41
  --color-red-100: #fff6f5;
42
42
  --color-red-200: #fdedea;
43
- --color-red-300: #f4a499;
44
- --color-red-400: #ea4a35;
43
+ --color-red-300: #f18b7e;
44
+ --color-red-400: #db2e17;
45
45
  --color-red-500: #d7270f;
46
46
  --color-red-600: #d7270f;
47
47
  --color-red-700: #c31b03;
@@ -54,7 +54,7 @@
54
54
  --color-blue-200: #e9f2fc;
55
55
  --color-blue-300: #d0e2f8;
56
56
  --color-blue-400: #a7c9f3;
57
- --color-blue-500: #2378e1;
57
+ --color-blue-500: #1e71d9;
58
58
  --color-blue-600: #045ac3;
59
59
  --color-blue-700: #014391;
60
60
  --color-blue-800: #053775;
@@ -66,25 +66,38 @@
66
66
  --color-green-200: #f1f8e6;
67
67
  --color-green-300: #e3efcb;
68
68
  --color-green-400: #c9e19b;
69
- --color-green-500: #78b506;
69
+ --color-green-500: #547f04;
70
70
  --color-green-600: #558300;
71
71
  --color-green-700: #334e02;
72
72
  --color-green-800: #1d2b03;
73
73
  --color-green-900: #090d04;
74
74
  --color-green-950: #090d04;
75
+ --color-green-550: #6aa300;
75
76
 
76
77
  --color-yellow-50: #fffdf2;
77
78
  --color-yellow-100: #fffbe5;
78
79
  --color-yellow-200: #fff9d9;
79
80
  --color-yellow-300: #fff4bf;
80
81
  --color-yellow-400: #ffea80;
81
- --color-yellow-500: #ffd400;
82
- --color-yellow-600: #dfa400;
82
+ --color-yellow-500: #f4cb00;
83
+ --color-yellow-600: #946c01;
83
84
  --color-yellow-700: #855600;
84
85
  --color-yellow-800: #562a00;
85
86
  --color-yellow-900: #341900;
86
87
  --color-yellow-950: #200900;
87
88
 
89
+ --color-violet-50: #fdf9fd;
90
+ --color-violet-100: #fcf2fb;
91
+ --color-violet-200: #faeaf8;
92
+ --color-violet-300: #f5d4f0;
93
+ --color-violet-400: #eba9e2;
94
+ --color-violet-500: #cc29b6;
95
+ --color-violet-600: #931e83;
96
+ --color-violet-700: #58124e;
97
+ --color-violet-800: #310a2c;
98
+ --color-violet-900: #10030f;
99
+ --color-violet-950: #080207;
100
+
88
101
  --font-size-xxs: 10px;
89
102
  --font-size-xs: 12px;
90
103
  --font-size-sm: 14px;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@health-samurai/react-components",
3
- "version": "0.0.0-alpha.20",
3
+ "version": "0.0.0-alpha.21",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist",
@@ -105,8 +105,8 @@
105
105
  "typescript": "~5.9.3",
106
106
  "vite": "^7.3.1",
107
107
  "vitest": "^4.0.18",
108
- "@health-samurai/aidbox-client": "0.0.0-alpha.5",
109
- "@health-samurai/aidbox-fhirpath-lsp": "0.0.0-alpha.7"
108
+ "@health-samurai/aidbox-client": "0.0.0-alpha.6",
109
+ "@health-samurai/aidbox-fhirpath-lsp": "0.0.0-alpha.8"
110
110
  },
111
111
  "publishConfig": {
112
112
  "access": "public"
@@ -1068,6 +1068,7 @@ async function fhirComplete(
1068
1068
  // boundary detection — the inner RT will be picked up via getScope later.
1069
1069
  if (!resourceType) {
1070
1070
  resourceType = resourceTypeHint;
1071
+ rtScope = ctx.getScope(ctx.fullPath.length);
1071
1072
  } else if (resourceTypeHint && ctx.fullPath.length > 0) {
1072
1073
  // Check if the found RT is actually from an inner scope, not the root.
1073
1074
  // If the root scope has no RT but hint is available, use hint as the
@@ -2128,13 +2129,13 @@ function buildFhirValidationPlugin(
2128
2129
  if (destroyed) return;
2129
2130
  if (view.state.doc.toString() !== currentDoc) return;
2130
2131
 
2131
- for (const es of emptyStrings) {
2132
- rawDiags.push({
2133
- from: es.from,
2134
- to: es.to,
2135
- message: "Value must not be empty",
2136
- });
2137
- }
2132
+ // for (const es of emptyStrings) {
2133
+ // rawDiags.push({
2134
+ // from: es.from,
2135
+ // to: es.to,
2136
+ // message: "Value must not be empty",
2137
+ // });
2138
+ // }
2138
2139
 
2139
2140
  const diags: FhirDiagnosticWithLine[] = rawDiags.map((d) => ({
2140
2141
  ...d,