@path58/ui 2.0.0-rc.1

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 (98) hide show
  1. package/LICENSE +21 -0
  2. package/dist/atoms/Badge/Badge.d.ts +17 -0
  3. package/dist/atoms/Badge/Badge.d.ts.map +1 -0
  4. package/dist/atoms/Badge/index.d.ts +3 -0
  5. package/dist/atoms/Badge/index.d.ts.map +1 -0
  6. package/dist/atoms/Button/Button.d.ts +18 -0
  7. package/dist/atoms/Button/Button.d.ts.map +1 -0
  8. package/dist/atoms/Button/index.d.ts +3 -0
  9. package/dist/atoms/Button/index.d.ts.map +1 -0
  10. package/dist/atoms/Container/Container.d.ts +15 -0
  11. package/dist/atoms/Container/Container.d.ts.map +1 -0
  12. package/dist/atoms/Container/index.d.ts +3 -0
  13. package/dist/atoms/Container/index.d.ts.map +1 -0
  14. package/dist/atoms/Icon/Icon.d.ts +17 -0
  15. package/dist/atoms/Icon/Icon.d.ts.map +1 -0
  16. package/dist/atoms/Icon/index.d.ts +3 -0
  17. package/dist/atoms/Icon/index.d.ts.map +1 -0
  18. package/dist/atoms/IconContainer/IconContainer.d.ts +17 -0
  19. package/dist/atoms/IconContainer/IconContainer.d.ts.map +1 -0
  20. package/dist/atoms/IconContainer/index.d.ts +3 -0
  21. package/dist/atoms/IconContainer/index.d.ts.map +1 -0
  22. package/dist/atoms/Input/Input.d.ts +15 -0
  23. package/dist/atoms/Input/Input.d.ts.map +1 -0
  24. package/dist/atoms/Input/index.d.ts +3 -0
  25. package/dist/atoms/Input/index.d.ts.map +1 -0
  26. package/dist/atoms/Label/Label.d.ts +17 -0
  27. package/dist/atoms/Label/Label.d.ts.map +1 -0
  28. package/dist/atoms/Label/index.d.ts +3 -0
  29. package/dist/atoms/Label/index.d.ts.map +1 -0
  30. package/dist/atoms/List/List.d.ts +15 -0
  31. package/dist/atoms/List/List.d.ts.map +1 -0
  32. package/dist/atoms/List/index.d.ts +3 -0
  33. package/dist/atoms/List/index.d.ts.map +1 -0
  34. package/dist/atoms/ListItem/ListItem.d.ts +20 -0
  35. package/dist/atoms/ListItem/ListItem.d.ts.map +1 -0
  36. package/dist/atoms/ListItem/index.d.ts +3 -0
  37. package/dist/atoms/ListItem/index.d.ts.map +1 -0
  38. package/dist/atoms/index.d.ts +15 -0
  39. package/dist/atoms/index.d.ts.map +1 -0
  40. package/dist/index.d.ts +60 -0
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.js +829 -0
  43. package/dist/molecules/CategoryHeader/CategoryHeader.d.ts +18 -0
  44. package/dist/molecules/CategoryHeader/CategoryHeader.d.ts.map +1 -0
  45. package/dist/molecules/CategoryHeader/index.d.ts +3 -0
  46. package/dist/molecules/CategoryHeader/index.d.ts.map +1 -0
  47. package/dist/molecules/FileItem/FileItem.d.ts +18 -0
  48. package/dist/molecules/FileItem/FileItem.d.ts.map +1 -0
  49. package/dist/molecules/FileItem/index.d.ts +3 -0
  50. package/dist/molecules/FileItem/index.d.ts.map +1 -0
  51. package/dist/molecules/InfoCard/InfoCard.d.ts +20 -0
  52. package/dist/molecules/InfoCard/InfoCard.d.ts.map +1 -0
  53. package/dist/molecules/InfoCard/index.d.ts +3 -0
  54. package/dist/molecules/InfoCard/index.d.ts.map +1 -0
  55. package/dist/molecules/SearchInput/SearchInput.d.ts +17 -0
  56. package/dist/molecules/SearchInput/SearchInput.d.ts.map +1 -0
  57. package/dist/molecules/SearchInput/index.d.ts +3 -0
  58. package/dist/molecules/SearchInput/index.d.ts.map +1 -0
  59. package/dist/molecules/TagBadge/TagBadge.d.ts +18 -0
  60. package/dist/molecules/TagBadge/TagBadge.d.ts.map +1 -0
  61. package/dist/molecules/TagBadge/index.d.ts +3 -0
  62. package/dist/molecules/TagBadge/index.d.ts.map +1 -0
  63. package/dist/molecules/index.d.ts +11 -0
  64. package/dist/molecules/index.d.ts.map +1 -0
  65. package/dist/organisms/ArtifactList/ArtifactList.d.ts +19 -0
  66. package/dist/organisms/ArtifactList/ArtifactList.d.ts.map +1 -0
  67. package/dist/organisms/ArtifactList/index.d.ts +3 -0
  68. package/dist/organisms/ArtifactList/index.d.ts.map +1 -0
  69. package/dist/organisms/CategoryGroup/CategoryGroup.d.ts +21 -0
  70. package/dist/organisms/CategoryGroup/CategoryGroup.d.ts.map +1 -0
  71. package/dist/organisms/CategoryGroup/index.d.ts +3 -0
  72. package/dist/organisms/CategoryGroup/index.d.ts.map +1 -0
  73. package/dist/organisms/SearchSection/SearchSection.d.ts +18 -0
  74. package/dist/organisms/SearchSection/SearchSection.d.ts.map +1 -0
  75. package/dist/organisms/SearchSection/index.d.ts +3 -0
  76. package/dist/organisms/SearchSection/index.d.ts.map +1 -0
  77. package/dist/organisms/TagFilterList/TagFilterList.d.ts +17 -0
  78. package/dist/organisms/TagFilterList/TagFilterList.d.ts.map +1 -0
  79. package/dist/organisms/TagFilterList/index.d.ts +3 -0
  80. package/dist/organisms/TagFilterList/index.d.ts.map +1 -0
  81. package/dist/organisms/index.d.ts +10 -0
  82. package/dist/organisms/index.d.ts.map +1 -0
  83. package/dist/primitives/P58Button.d.ts +23 -0
  84. package/dist/primitives/P58Button.d.ts.map +1 -0
  85. package/dist/primitives/P58Card.d.ts +18 -0
  86. package/dist/primitives/P58Card.d.ts.map +1 -0
  87. package/dist/primitives/P58Eyebrow.d.ts +15 -0
  88. package/dist/primitives/P58Eyebrow.d.ts.map +1 -0
  89. package/dist/primitives/P58Icon.d.ts +34 -0
  90. package/dist/primitives/P58Icon.d.ts.map +1 -0
  91. package/dist/primitives/P58Metric.d.ts +25 -0
  92. package/dist/primitives/P58Metric.d.ts.map +1 -0
  93. package/dist/primitives/index.d.ts +22 -0
  94. package/dist/primitives/index.d.ts.map +1 -0
  95. package/dist/styles.css +1 -0
  96. package/dist/types.d.ts +17 -0
  97. package/dist/types.d.ts.map +1 -0
  98. package/package.json +67 -0
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import './CategoryHeader.css';
3
+ export interface CategoryHeaderProps {
4
+ name: string;
5
+ count: number;
6
+ expanded: boolean;
7
+ onClick: () => void;
8
+ className?: string;
9
+ }
10
+ /**
11
+ * CategoryHeader Molecule
12
+ *
13
+ * Expandable category header with chevron, folder icon, name, and count.
14
+ * Preserves exact styling from current category header implementation.
15
+ */
16
+ export declare const CategoryHeader: React.FC<CategoryHeaderProps>;
17
+ export default CategoryHeader;
18
+ //# sourceMappingURL=CategoryHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CategoryHeader.d.ts","sourceRoot":"","sources":["../../../src/molecules/CategoryHeader/CategoryHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,sBAAsB,CAAC;AAE9B,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAqBxD,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { CategoryHeader, type CategoryHeaderProps } from './CategoryHeader';
2
+ export { default } from './CategoryHeader';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecules/CategoryHeader/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import './FileItem.css';
3
+ export interface FileItemProps {
4
+ name: string;
5
+ type: 'html' | 'tsx';
6
+ selected?: boolean;
7
+ onClick: () => void;
8
+ className?: string;
9
+ }
10
+ /**
11
+ * FileItem Molecule
12
+ *
13
+ * File list item with type icon and name.
14
+ * Preserves exact styling from current file item implementation.
15
+ */
16
+ export declare const FileItem: React.FC<FileItemProps>;
17
+ export default FileItem;
18
+ //# sourceMappingURL=FileItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileItem.d.ts","sourceRoot":"","sources":["../../../src/molecules/FileItem/FileItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,gBAAgB,CAAC;AAExB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAsB5C,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { FileItem, type FileItemProps } from './FileItem';
2
+ export { default } from './FileItem';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecules/FileItem/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import './InfoCard.css';
3
+ export interface InfoCardProps {
4
+ icon: React.ReactNode;
5
+ iconVariant?: 'default' | 'html' | 'tsx' | 'primary';
6
+ label: string;
7
+ value: string | number | React.ReactNode;
8
+ onClick?: () => void;
9
+ variant?: 'default' | 'category' | 'filters' | 'selected';
10
+ className?: string;
11
+ }
12
+ /**
13
+ * InfoCard Molecule
14
+ *
15
+ * Card with icon, label, and value.
16
+ * Preserves exact styling from current info card implementation.
17
+ */
18
+ export declare const InfoCard: React.FC<InfoCardProps>;
19
+ export default InfoCard;
20
+ //# sourceMappingURL=InfoCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InfoCard.d.ts","sourceRoot":"","sources":["../../../src/molecules/InfoCard/InfoCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,gBAAgB,CAAC;AAExB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,WAAW,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA4B5C,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { InfoCard, type InfoCardProps } from './InfoCard';
2
+ export { default } from './InfoCard';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecules/InfoCard/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import './SearchInput.css';
3
+ export interface SearchInputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'> {
4
+ value: string;
5
+ onChange: (value: string) => void;
6
+ placeholder?: string;
7
+ showClear?: boolean;
8
+ }
9
+ /**
10
+ * SearchInput Molecule
11
+ *
12
+ * Input field with search icon and clear button.
13
+ * Preserves exact styling from current search input implementation.
14
+ */
15
+ export declare const SearchInput: React.FC<SearchInputProps>;
16
+ export default SearchInput;
17
+ //# sourceMappingURL=SearchInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchInput.d.ts","sourceRoot":"","sources":["../../../src/molecules/SearchInput/SearchInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,mBAAmB,CAAC;AAE3B,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC/G,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA8BlD,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { SearchInput, type SearchInputProps } from './SearchInput';
2
+ export { default } from './SearchInput';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecules/SearchInput/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import './TagBadge.css';
3
+ export interface TagBadgeProps {
4
+ tag: string;
5
+ selected?: boolean;
6
+ categoryColor?: string;
7
+ onClick?: () => void;
8
+ className?: string;
9
+ }
10
+ /**
11
+ * TagBadge Molecule
12
+ *
13
+ * Badge with category color coding and selection state.
14
+ * Preserves exact styling from current tag badge implementation.
15
+ */
16
+ export declare const TagBadge: React.FC<TagBadgeProps>;
17
+ export default TagBadge;
18
+ //# sourceMappingURL=TagBadge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagBadge.d.ts","sourceRoot":"","sources":["../../../src/molecules/TagBadge/TagBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,gBAAgB,CAAC;AAExB,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAiD5C,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { TagBadge, type TagBadgeProps } from './TagBadge';
2
+ export { default } from './TagBadge';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecules/TagBadge/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Path58 Design System - Molecules
3
+ *
4
+ * Composed components built from atoms.
5
+ */
6
+ export * from './SearchInput';
7
+ export * from './TagBadge';
8
+ export * from './InfoCard';
9
+ export * from './CategoryHeader';
10
+ export * from './FileItem';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/molecules/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import type { Artifact } from '../../types';
3
+ import './ArtifactList.css';
4
+ export interface ArtifactListProps {
5
+ artifacts: Record<string, Artifact[]>;
6
+ selectedFile: string | null;
7
+ onSelectFile: (path: string) => void;
8
+ categoryToExpand?: string | null;
9
+ className?: string;
10
+ }
11
+ /**
12
+ * ArtifactList Organism
13
+ *
14
+ * Complete artifact list with multiple category groups.
15
+ * Preserves exact styling from current artifact list implementation.
16
+ */
17
+ export declare const ArtifactList: React.FC<ArtifactListProps>;
18
+ export default ArtifactList;
19
+ //# sourceMappingURL=ArtifactList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArtifactList.d.ts","sourceRoot":"","sources":["../../../src/organisms/ArtifactList/ArtifactList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,oBAAoB,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA2CpD,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { ArtifactList, type ArtifactListProps } from './ArtifactList';
2
+ export { default } from './ArtifactList';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organisms/ArtifactList/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import type { Artifact } from '../../types';
3
+ import './CategoryGroup.css';
4
+ export interface CategoryGroupProps {
5
+ category: string;
6
+ artifacts: Artifact[];
7
+ selectedFile: string | null;
8
+ onSelectFile: (path: string) => void;
9
+ expanded: boolean;
10
+ onToggle: () => void;
11
+ className?: string;
12
+ }
13
+ /**
14
+ * CategoryGroup Organism
15
+ *
16
+ * Expandable category with header and file list.
17
+ * Preserves exact styling from current category group implementation.
18
+ */
19
+ export declare const CategoryGroup: React.FC<CategoryGroupProps>;
20
+ export default CategoryGroup;
21
+ //# sourceMappingURL=CategoryGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CategoryGroup.d.ts","sourceRoot":"","sources":["../../../src/organisms/CategoryGroup/CategoryGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,qBAAqB,CAAC;AAE7B,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAgCtD,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { CategoryGroup, type CategoryGroupProps } from './CategoryGroup';
2
+ export { default } from './CategoryGroup';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organisms/CategoryGroup/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import './SearchSection.css';
3
+ export interface SearchSectionProps {
4
+ value: string;
5
+ onChange: (value: string) => void;
6
+ placeholder?: string;
7
+ label?: string;
8
+ className?: string;
9
+ }
10
+ /**
11
+ * SearchSection Organism
12
+ *
13
+ * Complete search section with label and input.
14
+ * Preserves exact styling from current search section implementation.
15
+ */
16
+ export declare const SearchSection: React.FC<SearchSectionProps>;
17
+ export default SearchSection;
18
+ //# sourceMappingURL=SearchSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchSection.d.ts","sourceRoot":"","sources":["../../../src/organisms/SearchSection/SearchSection.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,qBAAqB,CAAC;AAE7B,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAqBtD,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { SearchSection, type SearchSectionProps } from './SearchSection';
2
+ export { default } from './SearchSection';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organisms/SearchSection/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import './TagFilterList.css';
3
+ export interface TagFilterListProps {
4
+ allTags: string[];
5
+ selectedTags: Set<string>;
6
+ onToggleTag: (tag: string) => void;
7
+ className?: string;
8
+ }
9
+ /**
10
+ * TagFilterList Organism
11
+ *
12
+ * Complete tag filter with header, tag list, and clear button.
13
+ * Preserves exact styling from current tag filter implementation.
14
+ */
15
+ export declare const TagFilterList: React.FC<TagFilterListProps>;
16
+ export default TagFilterList;
17
+ //# sourceMappingURL=TagFilterList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagFilterList.d.ts","sourceRoot":"","sources":["../../../src/organisms/TagFilterList/TagFilterList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAOnD,OAAO,qBAAqB,CAAC;AAE7B,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAsItD,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { TagFilterList, type TagFilterListProps } from './TagFilterList';
2
+ export { default } from './TagFilterList';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/organisms/TagFilterList/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Path58 Design System - Organisms
3
+ *
4
+ * Complex components built from molecules and atoms.
5
+ */
6
+ export * from './SearchSection';
7
+ export * from './TagFilterList';
8
+ export * from './CategoryGroup';
9
+ export * from './ArtifactList';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/organisms/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ export type P58ButtonVariant = 'primary' | 'secondary' | 'ghost' | 'danger';
3
+ export type P58ButtonSize = 'sm' | 'md' | 'lg';
4
+ export interface P58ButtonProps {
5
+ variant?: P58ButtonVariant;
6
+ size?: P58ButtonSize;
7
+ /** Optional Lucide icon name rendered before the label. */
8
+ icon?: string;
9
+ children?: React.ReactNode;
10
+ onClick?: () => void;
11
+ disabled?: boolean;
12
+ style?: React.CSSProperties;
13
+ }
14
+ /**
15
+ * P58Button Primitive
16
+ *
17
+ * Token-driven button with primary/secondary/ghost/danger variants.
18
+ * Migrated from `_path58-brand/primitives/P58Primitives.jsx` (DSGN-1.1.4) —
19
+ * the inline `p58Colors` hex const was replaced with `var(--p58-*)` tokens.
20
+ */
21
+ export declare const P58Button: React.FC<P58ButtonProps>;
22
+ export default P58Button;
23
+ //# sourceMappingURL=P58Button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"P58Button.d.ts","sourceRoot":"","sources":["../../src/primitives/P58Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAGxC,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC5E,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AA+CD;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA2C9C,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ export interface P58CardProps {
3
+ children?: React.ReactNode;
4
+ /** Lift the card with a drop shadow on hover. */
5
+ hover?: boolean;
6
+ onClick?: () => void;
7
+ style?: React.CSSProperties;
8
+ }
9
+ /**
10
+ * P58Card Primitive
11
+ *
12
+ * Token-driven surface container with an optional hover lift.
13
+ * Migrated from `_path58-brand/primitives/P58Primitives.jsx` (DSGN-1.1.4) —
14
+ * inline hex/`rgba` values replaced with `var(--p58-*)` tokens + `color-mix`.
15
+ */
16
+ export declare const P58Card: React.FC<P58CardProps>;
17
+ export default P58Card;
18
+ //# sourceMappingURL=P58Card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"P58Card.d.ts","sourceRoot":"","sources":["../../src/primitives/P58Card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAExC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,iDAAiD;IACjD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAMD;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CA0B1C,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ export interface P58EyebrowProps {
3
+ children?: React.ReactNode;
4
+ style?: React.CSSProperties;
5
+ }
6
+ /**
7
+ * P58Eyebrow Primitive
8
+ *
9
+ * Uppercase mono label ("eyebrow") used above headings and metrics.
10
+ * Migrated from `_path58-brand/primitives/P58Primitives.jsx` (DSGN-1.1.4) —
11
+ * inline hex replaced with `var(--p58-*)` tokens.
12
+ */
13
+ export declare const P58Eyebrow: React.FC<P58EyebrowProps>;
14
+ export default P58Eyebrow;
15
+ //# sourceMappingURL=P58Eyebrow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"P58Eyebrow.d.ts","sourceRoot":"","sources":["../../src/primitives/P58Eyebrow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAahD,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ /**
3
+ * Minimal shape of the global `lucide` UMD object that this primitive depends on.
4
+ * The host page is expected to load Lucide (e.g. via CDN) so `window.lucide` exists.
5
+ */
6
+ interface LucideGlobal {
7
+ createIcons: (config?: {
8
+ attrs?: Record<string, string | number>;
9
+ }) => void;
10
+ }
11
+ declare global {
12
+ interface Window {
13
+ lucide?: LucideGlobal;
14
+ }
15
+ }
16
+ export interface P58IconProps {
17
+ /** Lucide icon name (e.g. "search", "tag"). */
18
+ name: string;
19
+ /** Pixel size of the rendered icon. */
20
+ size?: number;
21
+ /** Stroke width passed to Lucide. */
22
+ stroke?: number;
23
+ className?: string;
24
+ style?: React.CSSProperties;
25
+ }
26
+ /**
27
+ * P58Icon Primitive
28
+ *
29
+ * Renders a Lucide icon by name via the global `window.lucide` UMD build.
30
+ * Migrated from `_path58-brand/primitives/P58Primitives.jsx` (DSGN-1.1.4).
31
+ */
32
+ export declare const P58Icon: React.FC<P58IconProps>;
33
+ export default P58Icon;
34
+ //# sourceMappingURL=P58Icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"P58Icon.d.ts","sourceRoot":"","sources":["../../src/primitives/P58Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD;;;GAGG;AACH,UAAU,YAAY;IACpB,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;CAC7E;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,MAAM,CAAC,EAAE,YAAY,CAAC;KACvB;CACF;AAED,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED;;;;;GAKG;AACH,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CA4B1C,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ export type P58MetricDeltaTone = 'up' | 'down';
3
+ export interface P58MetricProps {
4
+ /** Eyebrow label above the value. */
5
+ label: string;
6
+ /** The primary metric value (string or number). */
7
+ value: React.ReactNode;
8
+ /** Optional unit suffix rendered smaller, after the value. */
9
+ unit?: string;
10
+ /** Optional delta string (e.g. "12%"). */
11
+ delta?: string;
12
+ /** Direction of the delta — drives its color. */
13
+ deltaTone?: P58MetricDeltaTone;
14
+ }
15
+ /**
16
+ * P58Metric Primitive
17
+ *
18
+ * Big mono display number with an eyebrow label and optional delta.
19
+ * Migrated from `_path58-brand/primitives/P58Primitives.jsx` (DSGN-1.1.4) —
20
+ * inline hex replaced with `var(--p58-*)` tokens. Delta tone maps to the
21
+ * semantic trend tokens (`--p58-success` for up, `--p58-danger` for down).
22
+ */
23
+ export declare const P58Metric: React.FC<P58MetricProps>;
24
+ export default P58Metric;
25
+ //# sourceMappingURL=P58Metric.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"P58Metric.d.ts","sourceRoot":"","sources":["../../src/primitives/P58Metric.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,MAAM,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,SAAS,CAAC,EAAE,kBAAkB,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA6C9C,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Path58 UI Primitives
3
+ *
4
+ * Low-level, token-driven building blocks migrated from the single-file
5
+ * `_path58-brand/primitives/P58Primitives.jsx` source (DSGN-1.1.4), split
6
+ * into one TypeScript module per primitive. All inline `p58Colors` hex were
7
+ * replaced with `var(--p58-*)` token consumption so primitives are theme-aware.
8
+ *
9
+ * Note: `P58Badge` and `P58Input` from the source are intentionally NOT
10
+ * migrated here — they are covered by the `Badge` and `Input` atoms.
11
+ */
12
+ export { P58Icon } from './P58Icon';
13
+ export { P58Button } from './P58Button';
14
+ export { P58Card } from './P58Card';
15
+ export { P58Eyebrow } from './P58Eyebrow';
16
+ export { P58Metric } from './P58Metric';
17
+ export type { P58IconProps } from './P58Icon';
18
+ export type { P58ButtonProps, P58ButtonVariant, P58ButtonSize } from './P58Button';
19
+ export type { P58CardProps } from './P58Card';
20
+ export type { P58EyebrowProps } from './P58Eyebrow';
21
+ export type { P58MetricProps, P58MetricDeltaTone } from './P58Metric';
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/primitives/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACnF,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1 @@
1
+ :root{--p58-bg: #0a0a1a;--p58-surface: #0e0e24;--p58-surface-2: #14142e;--p58-surface-3: #1b1b3a;--p58-fg-1: #f5f6fb;--p58-fg-2: #b8bad0;--p58-fg-3: #7b7e9c;--p58-fg-4: #4a4d6b;--p58-border: rgba(255, 255, 255, .08);--p58-border-strong: rgba(255, 255, 255, .14);--p58-border-subtle: rgba(255, 255, 255, .04);--p58-teal: #00d4aa;--p58-teal-hover: #1ee5bd;--p58-teal-press: #00b892;--p58-teal-dim: #00d4aa22;--p58-teal-glow: #00d4aa44;--p58-teal-text-on-light: #007a63;--p58-on-accent: #0d1d4d;--p58-accent-fg: var(--p58-teal);--p58-accent: var(--p58-teal);--p58-accent-hover: var(--p58-teal-hover);--p58-accent-press: var(--p58-teal-press);--p58-accent-dim: var(--p58-teal-dim);--p58-accent-glow: var(--p58-teal-glow);--p58-icon-accent-soft: color-mix(in srgb, var(--p58-teal) 70%, transparent);--p58-blue-50: #f8f8fa;--p58-blue-100: #eeeff3;--p58-blue-200: #e0e2e8;--p58-blue-300: #c7cbd6;--p58-blue-400: #adb2c2;--p58-blue-500: #9097ad;--p58-blue-600: #6e7794;--p58-blue-700: #4c587b;--p58-blue-800: #2c3a64;--p58-blue-900: #0d1d4d;--p58-lime: #9ab64a;--p58-lime-text-on-light: #5e8a23;--p58-lime-wash: rgba(154, 182, 74, .32);--p58-lime-300: #c7d79b;--p58-lime-700: #6c7f34;--p58-success: #00d4aa;--p58-success-dim: #00d4aa1a;--p58-warning: #f5a623;--p58-warning-dim: #f5a6231a;--p58-danger: #ff4757;--p58-danger-dim: #ff47571a;--p58-info: #5aa9ff;--p58-info-dim: #5aa9ff1a;--p58-trend-neutral: var(--p58-fg-2);--p58-trend-muted: var(--p58-fg-3);--p58-trend-negative: #ff4757;--p58-trend-positive: var(--p58-accent);--p58-viz-1: #00d4aa;--p58-viz-2: #5aa9ff;--p58-viz-3: #c084fc;--p58-viz-4: #f5a623;--p58-viz-5: #ff4757;--p58-viz-6: #7b7e9c;--p58-font-display: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;--p58-font-ui: "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--p58-font-mono: "JetBrains Mono", ui-monospace, "Menlo", "Monaco", monospace;--p58-text-2xs: 10px;--p58-text-xs: 11px;--p58-text-sm: 12px;--p58-text-md: 13px;--p58-text-base:14px;--p58-text-lg: 16px;--p58-text-xl: 20px;--p58-text-2xl: 24px;--p58-text-3xl: 32px;--p58-text-4xl: 40px;--p58-text-5xl: 56px;--p58-text-6xl: 72px;--p58-weight-light: 300;--p58-weight-regular: 400;--p58-weight-medium: 500;--p58-weight-semibold:600;--p58-weight-bold: 700;--p58-leading-tight: 1.15;--p58-leading-snug: 1.3;--p58-leading-normal: 1.5;--p58-leading-loose: 1.7;--p58-tracking-tight: -.02em;--p58-tracking-normal: 0;--p58-tracking-wide: .04em;--p58-tracking-caps: .12em;--p58-space-0: 0;--p58-space-1: 4px;--p58-space-2: 8px;--p58-space-3: 12px;--p58-space-4: 16px;--p58-space-5: 20px;--p58-space-6: 24px;--p58-space-8: 32px;--p58-space-10: 40px;--p58-space-12: 48px;--p58-space-16: 64px;--p58-space-20: 80px;--p58-space-24: 96px;--p58-radius-none: 0;--p58-radius-sm: 2px;--p58-radius-md: 4px;--p58-radius-lg: 6px;--p58-radius-xl: 10px;--p58-radius-full: 999px;--p58-elev-1-bg: #0e0e24;--p58-elev-1-border: rgba(255, 255, 255, .08);--p58-elev-2-bg: #13132f;--p58-elev-2-border: rgba(255, 255, 255, .15);--p58-elev-3-bg: #16163a;--p58-elev-3-border: rgba(255, 255, 255, .22);--p58-shadow-inset: inset 0 1px 0 rgba(255, 255, 255, .03);--p58-glow-accent: 0 0 0 1px var(--p58-accent), 0 0 16px var(--p58-accent-glow);--p58-ring-focus: 0 0 0 2px var(--p58-bg), 0 0 0 4px var(--p58-accent);--p58-ease: cubic-bezier(.2, .6, .2, 1);--p58-ease-in: cubic-bezier(.4, 0, 1, 1);--p58-duration-fast: .12s;--p58-duration-base: .18s;--p58-duration-slow: .26s;--p58-z-base: 1;--p58-z-sticky: 10;--p58-z-dropdown:100;--p58-z-modal: 1000;--p58-z-toast: 2000;--p58-brand-3p-react: #61DAFB;--p58-brand-3p-react-hover: #4DD0E1;--p58-brand-3p-html5: #E34F26;--p58-brand-3p-html5-hover: #F06529}html,body{background:var(--p58-bg);color:var(--p58-fg-1);font-family:var(--p58-font-ui);font-size:var(--p58-text-md);line-height:var(--p58-leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.p58-h1,h1.p58{font-family:var(--p58-font-display);font-size:var(--p58-text-5xl);font-weight:var(--p58-weight-semibold);line-height:var(--p58-leading-tight);letter-spacing:var(--p58-tracking-tight);color:var(--p58-fg-1)}.p58-h2,h2.p58{font-family:var(--p58-font-display);font-size:var(--p58-text-3xl);font-weight:var(--p58-weight-semibold);line-height:var(--p58-leading-tight);letter-spacing:var(--p58-tracking-tight);color:var(--p58-fg-1)}.p58-h3,h3.p58{font-family:var(--p58-font-display);font-size:var(--p58-text-2xl);font-weight:var(--p58-weight-medium);line-height:var(--p58-leading-snug);color:var(--p58-fg-1)}.p58-h4,h4.p58{font-family:var(--p58-font-display);font-size:var(--p58-text-xl);font-weight:var(--p58-weight-medium);line-height:var(--p58-leading-snug);color:var(--p58-fg-1)}.p58-body{font-family:var(--p58-font-ui);font-size:var(--p58-text-md);font-weight:var(--p58-weight-regular);line-height:var(--p58-leading-normal);color:var(--p58-fg-2)}.p58-body-lg{font-family:var(--p58-font-ui);font-size:var(--p58-text-lg);line-height:var(--p58-leading-normal);color:var(--p58-fg-2)}.p58-small{font-size:var(--p58-text-sm);color:var(--p58-fg-3)}.p58-eyebrow{font-family:var(--p58-font-mono);font-size:var(--p58-text-xs);font-weight:var(--p58-weight-medium);text-transform:uppercase;letter-spacing:var(--p58-tracking-caps);color:var(--p58-fg-3)}.p58-code,code.p58,kbd.p58{font-family:var(--p58-font-mono);font-size:.92em;color:var(--p58-fg-1);background:var(--p58-surface-2);border:1px solid var(--p58-border);border-radius:var(--p58-radius-sm);padding:1px 5px}.p58-metric{font-family:var(--p58-font-mono);font-size:var(--p58-text-4xl);font-weight:var(--p58-weight-medium);line-height:1;letter-spacing:-.01em;color:var(--p58-fg-1);font-variant-numeric:tabular-nums}.p58-metric-sm{font-family:var(--p58-font-mono);font-size:var(--p58-text-xl);font-weight:var(--p58-weight-medium);line-height:1;color:var(--p58-fg-1);font-variant-numeric:tabular-nums}.p58-scroll::-webkit-scrollbar{width:10px;height:10px}.p58-scroll::-webkit-scrollbar-track{background:transparent}.p58-scroll::-webkit-scrollbar-thumb{background:var(--p58-border-strong);border-radius:var(--p58-radius-full);border:2px solid var(--p58-bg)}.p58-scroll::-webkit-scrollbar-thumb:hover{background:var(--p58-fg-4)}::selection{background:var(--p58-accent-dim);color:var(--p58-fg-1)}.p58-trend,.p58-trend-neutral,.p58-trend-negative,.p58-trend-positive{font-family:var(--p58-font-mono);font-size:var(--p58-text-xs);font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;gap:4px;line-height:1}.p58-trend,.p58-trend-neutral{color:var(--p58-trend-neutral)}.p58-trend-negative{color:var(--p58-trend-negative)}.p58-trend-positive{color:var(--p58-trend-positive)}.p58-trend-muted{color:var(--p58-trend-muted);font-family:var(--p58-font-mono);font-size:var(--p58-text-xs)}.p58-trend-baseline{color:var(--p58-trend-muted);font-family:var(--p58-font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;margin-left:2px}.path58-scrollbar{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--p58-teal) 60%,transparent) color-mix(in srgb,var(--p58-bg) 40%,transparent);scrollbar-gutter:stable;padding-right:8px}.path58-scrollbar::-webkit-scrollbar{width:8px!important;height:8px!important;-webkit-appearance:none!important;display:block!important}.path58-scrollbar::-webkit-scrollbar-track{background:color-mix(in srgb,var(--p58-bg) 40%,transparent)!important;border-radius:4px;border:1px solid color-mix(in srgb,var(--p58-teal) 20%,transparent)!important;margin:2px 0;-webkit-appearance:none!important}.path58-scrollbar::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--p58-teal) 60%,transparent)!important;border-radius:4px;min-height:30px;border:1px solid color-mix(in srgb,var(--p58-teal) 30%,transparent)!important;-webkit-appearance:none!important}.path58-scrollbar::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--p58-teal) 80%,transparent)!important;border-color:color-mix(in srgb,var(--p58-teal) 50%,transparent)!important}.path58-scrollbar::-webkit-scrollbar:horizontal{height:8px!important}.path58-scrollbar::-webkit-scrollbar-track:horizontal{margin:0 2px}.path58-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s;outline:none;font-family:inherit}.path58-button:focus-visible{outline:2px solid color-mix(in srgb,var(--p58-teal) 50%,transparent);outline-offset:2px}.path58-button:disabled{opacity:.5;cursor:not-allowed}.path58-button--sm{padding:.375rem .75rem;font-size:.75rem;min-height:28px}.path58-button--md{padding:.5rem 1rem;font-size:.875rem;min-height:36px}.path58-button--lg{padding:.75rem 1.5rem;font-size:1rem;min-height:44px}.path58-button--primary{background:color-mix(in srgb,var(--p58-teal) 15%,transparent);border:1px solid color-mix(in srgb,var(--p58-teal) 30%,transparent);color:var(--p58-accent-fg)}.path58-button--primary:hover:not(:disabled){background:color-mix(in srgb,var(--p58-teal) 25%,transparent);border-color:color-mix(in srgb,var(--p58-teal) 50%,transparent)}.path58-button--secondary{background:color-mix(in srgb,var(--p58-bg) 30%,transparent);border:1px solid color-mix(in srgb,var(--p58-teal) 20%,transparent);color:var(--p58-fg-2)}.path58-button--secondary:hover:not(:disabled){background:color-mix(in srgb,var(--p58-bg) 40%,transparent);border-color:color-mix(in srgb,var(--p58-teal) 30%,transparent);color:var(--p58-fg-1)}.path58-button--ghost{background:transparent;border:1px solid transparent;color:var(--p58-fg-3)}.path58-button--ghost:hover:not(:disabled){background:color-mix(in srgb,var(--p58-teal) 5%,transparent);border-color:color-mix(in srgb,var(--p58-teal) 10%,transparent);color:var(--p58-fg-2)}.path58-button--danger{background:color-mix(in srgb,var(--p58-danger) 15%,transparent);border:1px solid color-mix(in srgb,var(--p58-danger) 30%,transparent);color:var(--p58-danger)}.path58-button--danger:hover:not(:disabled){background:color-mix(in srgb,var(--p58-danger) 25%,transparent);border-color:color-mix(in srgb,var(--p58-danger) 50%,transparent)}.path58-button--with-icon{gap:.5rem}.path58-button-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.path58-button-text{flex:1;text-align:center}.path58-input{width:100%;padding:.625rem .75rem;background:color-mix(in srgb,var(--p58-bg) 30%,transparent);border:1px solid color-mix(in srgb,var(--p58-teal) 30%,transparent);border-radius:6px;color:var(--p58-fg-1);font-size:.875rem;outline:none;transition:all .2s;font-family:inherit}.path58-input::placeholder{color:var(--p58-fg-4)}.path58-input:focus{border-color:var(--p58-accent-fg);box-shadow:0 0 0 2px color-mix(in srgb,var(--p58-teal) 10%,transparent);background:color-mix(in srgb,var(--p58-bg) 50%,transparent)}.path58-input:disabled{opacity:.5;cursor:not-allowed}.path58-input--search{padding:.625rem 2.5rem .625rem .75rem}.path58-input--error{border-color:color-mix(in srgb,var(--p58-danger) 50%,transparent)}.path58-input--error:focus{border-color:var(--p58-danger);box-shadow:0 0 0 2px color-mix(in srgb,var(--p58-danger) 10%,transparent)}.path58-badge{display:inline-flex;align-items:center;justify-content:center;padding:.375rem .75rem;border-radius:6px;font-size:.75rem;font-weight:400;transition:all .2s;cursor:default}.path58-badge--tag{background:transparent;border:1px solid;color:inherit;cursor:pointer}.path58-badge--tag:hover{opacity:.8;transform:translateY(-1px);box-shadow:0 2px 4px color-mix(in srgb,var(--p58-bg) 20%,transparent)}.path58-badge--tag.path58-badge--active{font-weight:600;box-shadow:0 2px 8px color-mix(in srgb,var(--p58-bg) 30%,transparent)}.path58-badge--filter{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .5rem;background:color-mix(in srgb,var(--p58-teal) 15%,transparent);border:1px solid color-mix(in srgb,var(--p58-teal) 30%,transparent);border-radius:4px;font-size:.75rem;color:var(--p58-accent-fg)}.path58-badge--default{background:color-mix(in srgb,var(--p58-bg) 30%,transparent);border:1px solid color-mix(in srgb,var(--p58-teal) 20%,transparent);color:var(--p58-fg-2)}.path58-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}.path58-icon--html{color:var(--p58-brand-3p-html5)}.path58-icon--html:hover{color:var(--p58-brand-3p-html5-hover)}.path58-icon--tsx{color:var(--p58-brand-3p-react)}.path58-icon--tsx:hover{color:var(--p58-brand-3p-react-hover)}.path58-icon--primary{color:var(--p58-accent-fg)}.path58-icon--default{color:var(--p58-fg-3)}.path58-icon-container{display:flex;align-items:center;justify-content:center;border-radius:6px;flex-shrink:0}.path58-icon-container--sm{width:24px;height:24px}.path58-icon-container--md{width:32px;height:32px}.path58-icon-container--lg{width:40px;height:40px}.path58-icon-container--default{background:color-mix(in srgb,var(--p58-teal) 6%,transparent);color:var(--p58-icon-accent-soft)}.path58-icon-container--primary{background:color-mix(in srgb,var(--p58-teal) 10%,transparent);border:1px solid color-mix(in srgb,var(--p58-teal) 20%,transparent);color:var(--p58-accent-fg)}.path58-icon-container--html{background:color-mix(in srgb,var(--p58-brand-3p-html5) 15%,transparent);color:var(--p58-brand-3p-html5)}.path58-icon-container--tsx{background:color-mix(in srgb,var(--p58-brand-3p-react) 15%,transparent);color:var(--p58-brand-3p-react)}.path58-label{display:flex;align-items:center;gap:.5rem;font-weight:500}.path58-label--section{font-size:.75rem;font-weight:600;color:var(--p58-fg-3);text-transform:uppercase;letter-spacing:.05em}.path58-label--section .path58-label-icon,.path58-label--section .path58-label-text{color:var(--p58-accent-fg)}.path58-label--card{font-size:.625rem;color:var(--p58-fg-3);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.path58-label--default{font-size:.875rem;color:var(--p58-fg-2)}.path58-label-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.path58-label-text{flex:1}.path58-container{display:flex;flex-direction:column;border-radius:8px}.path58-container--section{padding:.875rem;background:color-mix(in srgb,var(--p58-bg) 40%,transparent);border:1px solid color-mix(in srgb,var(--p58-teal) 20%,transparent);gap:.75rem}.path58-container--card{padding:.875rem 1rem;background:color-mix(in srgb,var(--p58-bg) 30%,transparent);border:1px solid color-mix(in srgb,var(--p58-teal) 12%,transparent);min-width:120px;min-height:56px;transition:all .2s}.path58-container--card:hover{border-color:color-mix(in srgb,var(--p58-teal) 25%,transparent);background:color-mix(in srgb,var(--p58-bg) 40%,transparent);transform:translateY(-2px);box-shadow:0 4px 12px color-mix(in srgb,var(--p58-teal) 15%,transparent)}.path58-container--default{padding:1rem;background:transparent}.path58-list{display:flex;overflow-y:auto;overflow-x:hidden;min-height:0;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--p58-teal) 60%,transparent) color-mix(in srgb,var(--p58-bg) 40%,transparent);scrollbar-gutter:stable}.path58-list::-webkit-scrollbar{width:8px!important;-webkit-appearance:none!important;display:block!important}.path58-list::-webkit-scrollbar-track{background:color-mix(in srgb,var(--p58-bg) 40%,transparent)!important;border-radius:4px;margin:2px 0;border:1px solid color-mix(in srgb,var(--p58-teal) 20%,transparent)!important;-webkit-appearance:none!important}.path58-list::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--p58-teal) 60%,transparent)!important;border-radius:4px;min-height:30px;border:1px solid color-mix(in srgb,var(--p58-teal) 30%,transparent)!important;-webkit-appearance:none!important}.path58-list::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--p58-teal) 80%,transparent)!important;border-color:color-mix(in srgb,var(--p58-teal) 50%,transparent)!important}.path58-list--vertical{flex-direction:column;padding:.5rem}.path58-list--horizontal{flex-direction:row;overflow-x:auto;overflow-y:hidden;padding:.5rem}.path58-list--wrap{flex-wrap:wrap;gap:.375rem;padding:0}.path58-list-item{width:100%;display:flex;align-items:center;gap:.5rem;padding:.625rem .75rem;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--p58-fg-2);cursor:pointer;font-size:.8125rem;font-weight:400;text-align:left;transition:all .2s;text-transform:none;letter-spacing:normal}.path58-list-item:hover{background:color-mix(in srgb,var(--p58-teal) 5%,transparent);border-color:color-mix(in srgb,var(--p58-teal) 20%,transparent);color:var(--p58-fg-1)}.path58-list-item--selected{background:color-mix(in srgb,var(--p58-teal) 10%,transparent);border-color:var(--p58-accent-fg);color:var(--p58-accent-fg);font-weight:500}.path58-search-input{position:relative;display:flex;align-items:center;width:100%}.path58-search-input .path58-input{width:100%;padding-right:2.5rem}.path58-search-input-clear{position:absolute;right:.5rem;background:transparent;border:none;color:var(--p58-fg-3);padding:.25rem;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s}.path58-search-input-clear:hover{color:var(--p58-fg-1);background:color-mix(in srgb,var(--p58-fg-1) 10%,transparent)}.path58-info-card{display:flex;align-items:center;gap:.75rem;position:relative;margin-top:.25rem}.path58-info-card-content{display:flex;flex-direction:column;gap:.125rem;min-width:0;flex:1}.path58-info-card-value{font-size:.9375rem;color:var(--p58-fg-2);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.path58-info-card-value{display:flex;flex-wrap:wrap;gap:.25rem}.path58-info-card--filters{border-color:color-mix(in srgb,var(--p58-teal) 20%,transparent)}.path58-info-card--selected{border-color:color-mix(in srgb,var(--p58-teal) 25%,transparent);background:color-mix(in srgb,var(--p58-teal) 3%,transparent)}.path58-info-card--category{transition:all .2s}.path58-info-card--clickable{cursor:pointer}.path58-category-header{width:100%;display:flex;align-items:center;gap:.5rem;padding:.75rem;background:color-mix(in srgb,var(--p58-teal) 8%,transparent);border:1px solid color-mix(in srgb,var(--p58-teal) 15%,transparent);color:var(--p58-accent-fg);cursor:pointer;border-radius:6px;font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;transition:all .2s;margin-bottom:.25rem}.path58-category-header svg{color:var(--p58-accent-fg)}.path58-category-header:hover{background:color-mix(in srgb,var(--p58-teal) 12%,transparent);border-color:color-mix(in srgb,var(--p58-teal) 25%,transparent);color:var(--p58-accent-fg)}.path58-category-name{flex:1;text-align:left}.path58-category-count{color:var(--p58-fg-3);font-weight:400}.path58-category-chevron{transition:transform .2s}.path58-category-chevron--expanded{transform:rotate(90deg)}.path58-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.path58-search-input-wrapper{position:relative;display:flex;align-items:center;width:100%}.path58-tag-filter{display:flex;flex-direction:column;gap:.5rem;min-width:200px;height:110px;max-height:110px;overflow-y:scroll;overflow-x:hidden;position:relative;padding-right:0}.path58-tag-filter-header{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--p58-accent-fg);flex-shrink:0}.path58-tag-filter-clear{margin-left:auto}.path58-tag-filter-list{flex:1;min-height:0}.path58-tag-filter-scroll-hint{padding:.25rem .5rem;font-size:.625rem;color:var(--p58-fg-3);text-align:center;font-style:italic;border-top:1px solid color-mix(in srgb,var(--p58-teal) 10%,transparent);margin-top:.25rem;flex-shrink:0}.path58-category-group{margin-bottom:.5rem}.path58-category-file-list{display:flex;flex-direction:column;gap:.25rem;padding-left:.5rem}.path58-artifact-list.path58-list{flex:1 1 0!important;min-height:0!important;overflow-y:scroll!important;overflow-x:hidden!important;scrollbar-width:thin!important;scrollbar-color:color-mix(in srgb,var(--p58-teal) 60%,transparent) color-mix(in srgb,var(--p58-bg) 40%,transparent)!important;scrollbar-gutter:stable!important;-webkit-overflow-scrolling:touch;padding:.5rem!important;display:flex!important;flex-direction:column!important;height:100%!important}.path58-artifact-list::-webkit-scrollbar{width:8px!important;-webkit-appearance:none!important;display:block!important}.path58-artifact-list::-webkit-scrollbar-track{background:color-mix(in srgb,var(--p58-bg) 40%,transparent)!important;border-radius:4px;margin:2px 0;border:1px solid color-mix(in srgb,var(--p58-teal) 20%,transparent)!important;-webkit-appearance:none!important}.path58-artifact-list::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--p58-teal) 60%,transparent)!important;border-radius:4px;min-height:30px;border:1px solid color-mix(in srgb,var(--p58-teal) 30%,transparent)!important;-webkit-appearance:none!important}.path58-artifact-list::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--p58-teal) 80%,transparent)!important;border-color:color-mix(in srgb,var(--p58-teal) 50%,transparent)!important}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Path58 Design System - Types
3
+ *
4
+ * Shared types for design system components.
5
+ */
6
+ /**
7
+ * Artifact type for file/item management
8
+ */
9
+ export interface Artifact {
10
+ path: string;
11
+ name: string;
12
+ displayName: string;
13
+ type: 'html' | 'tsx' | string;
14
+ category: string;
15
+ tags: string[];
16
+ }
17
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB"}