@iyulab/components 0.1.3 → 0.1.4

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 (73) hide show
  1. package/CHANGELOG.md +18 -15
  2. package/LICENSE +20 -20
  3. package/README.md +33 -33
  4. package/dist/assets/icons/arrow-clockwise.svg.js +1 -1
  5. package/dist/assets/icons/arrow-down.svg.js +1 -1
  6. package/dist/assets/icons/arrow-up.svg.js +1 -1
  7. package/dist/assets/icons/ban.svg.js +1 -1
  8. package/dist/assets/icons/check-circle-fill.svg.js +1 -1
  9. package/dist/assets/icons/check-lg.svg.js +1 -1
  10. package/dist/assets/icons/chevron-down.svg.js +1 -1
  11. package/dist/assets/icons/chevron-left.svg.js +1 -1
  12. package/dist/assets/icons/chevron-right.svg.js +1 -1
  13. package/dist/assets/icons/chevron-up.svg.js +1 -1
  14. package/dist/assets/icons/copy.svg.js +1 -1
  15. package/dist/assets/icons/dash-lg.svg.js +1 -1
  16. package/dist/assets/icons/exclamation-circle-fill.svg.js +1 -1
  17. package/dist/assets/icons/exclamation-triangle-fill.svg.js +1 -1
  18. package/dist/assets/icons/info-circle-fill.svg.js +1 -1
  19. package/dist/assets/icons/layout-sidebar.svg.js +1 -1
  20. package/dist/assets/icons/lightbulb-fill.svg.js +1 -1
  21. package/dist/assets/icons/lightbulb-off.svg.js +1 -1
  22. package/dist/assets/icons/lightbulb.svg.js +1 -1
  23. package/dist/assets/icons/mic-fill.svg.js +1 -1
  24. package/dist/assets/icons/mic-mute-fill.svg.js +1 -1
  25. package/dist/assets/icons/paperclip.svg.js +1 -1
  26. package/dist/assets/icons/pencil-square.svg.js +1 -1
  27. package/dist/assets/icons/plus-lg.svg.js +1 -1
  28. package/dist/assets/icons/search.svg.js +1 -1
  29. package/dist/assets/icons/speedometer.svg.js +1 -1
  30. package/dist/assets/icons/x-lg.svg.js +1 -1
  31. package/dist/assets/styles/dark.css +125 -125
  32. package/dist/assets/styles/dark.css.js +1 -1
  33. package/dist/assets/styles/light.css +126 -126
  34. package/dist/assets/styles/light.css.js +1 -1
  35. package/dist/components/BaseElement.styles.js +0 -1
  36. package/dist/components/divider/Divider.d.ts +25 -0
  37. package/dist/components/divider/Divider.js +89 -0
  38. package/dist/components/{split-panel/Splitter.styles.js → divider/Divider.styles.js} +20 -10
  39. package/dist/components/divider/index.d.ts +7 -0
  40. package/dist/components/icon/Icon.d.ts +3 -7
  41. package/dist/components/icon/Icon.js +8 -15
  42. package/dist/components/index.d.ts +1 -0
  43. package/dist/components/panel/Panel.d.ts +0 -1
  44. package/dist/components/panel/Panel.js +0 -4
  45. package/dist/components/progress-bar/ProgressBar.d.ts +1 -1
  46. package/dist/components/progress-ring/ProgressRing.js +3 -1
  47. package/dist/components/split-panel/SplitPanel.d.ts +8 -12
  48. package/dist/components/split-panel/SplitPanel.js +63 -88
  49. package/dist/components/split-panel/SplitPanel.styles.js +16 -1
  50. package/dist/components/tooltip/Tooltip.d.ts +8 -12
  51. package/dist/components/tooltip/Tooltip.js +39 -38
  52. package/dist/components/tooltip/Tooltip.styles.js +4 -4
  53. package/dist/components/tree/Tree.d.ts +2 -14
  54. package/dist/components/tree/Tree.js +9 -49
  55. package/dist/components/tree/Tree.styles.js +5 -5
  56. package/dist/components/tree-item/TreeItem.d.ts +10 -29
  57. package/dist/components/tree-item/TreeItem.js +63 -95
  58. package/dist/components/tree-item/TreeItem.styles.js +10 -41
  59. package/dist/index.js +1 -0
  60. package/dist/integrations/react/UDivider.d.ts +8 -0
  61. package/dist/integrations/react/UDivider.js +10 -0
  62. package/dist/integrations/react/index.d.ts +1 -0
  63. package/dist/integrations/react/index.js +1 -0
  64. package/dist/internals/icon-helpers.d.ts +32 -0
  65. package/dist/internals/{icons.js → icon-helpers.js} +10 -4
  66. package/dist/internals/index.d.ts +1 -1
  67. package/dist/utilities/theme.js +16 -13
  68. package/package.json +57 -57
  69. package/dist/components/split-panel/SplitPanel.types.d.ts +0 -2
  70. package/dist/components/split-panel/Splitter.d.ts +0 -17
  71. package/dist/components/split-panel/Splitter.js +0 -45
  72. package/dist/internals/icons.d.ts +0 -6
  73. /package/dist/components/{split-panel/Splitter.styles.d.ts → divider/Divider.styles.d.ts} +0 -0
@@ -1,3 +1,3 @@
1
- const dark = ":root[theme=\"dark\"] {\r\n color-scheme: dark;\r\n\r\n /* Neutral Colors */\r\n --u-neutral-0: #000000;\r\n --u-neutral-50: #0A0A0A;\r\n --u-neutral-100: #121212;\r\n --u-neutral-200: #1E1E1E;\r\n --u-neutral-300: #2A2A2A;\r\n --u-neutral-400: #3D3D3D;\r\n --u-neutral-500: #525252;\r\n --u-neutral-600: #6E6E6E;\r\n --u-neutral-700: #8A8A8A;\r\n --u-neutral-800: #B0B0B0;\r\n --u-neutral-900: #D4D4D4;\r\n --u-neutral-1000: #FFFFFF;\r\n\r\n /* Blue Colors */\r\n --u-blue-0: #0A1E3D;\r\n --u-blue-100: #1E3A5F;\r\n --u-blue-200: #2B4F7E;\r\n --u-blue-300: #3D6B9E;\r\n --u-blue-400: #5284BE;\r\n --u-blue-500: #6BA3E3;\r\n --u-blue-600: #87B8F5;\r\n --u-blue-700: #A5CDFF;\r\n --u-blue-800: #C2DEFF;\r\n --u-blue-900: #DDEEFF;\r\n --u-blue-1000: #F0F7FF;\r\n\r\n /* Green Colors */\r\n --u-green-0: #0D2818;\r\n --u-green-100: #1A3F2A;\r\n --u-green-200: #285639;\r\n --u-green-300: #3A7450;\r\n --u-green-400: #4E9268;\r\n --u-green-500: #66B584;\r\n --u-green-600: #81D19D;\r\n --u-green-700: #9FE5B5;\r\n --u-green-800: #BEF2CD;\r\n --u-green-900: #DDF9E5;\r\n --u-green-1000: #F0FDF5;\r\n\r\n /* Yellow Colors */\r\n --u-yellow-0: #2E2200;\r\n --u-yellow-100: #4D3A00;\r\n --u-yellow-200: #6B5200;\r\n --u-yellow-300: #8A6B00;\r\n --u-yellow-400: #B08900;\r\n --u-yellow-500: #D4A712;\r\n --u-yellow-600: #F5C842;\r\n --u-yellow-700: #FFE066;\r\n --u-yellow-800: #FFED99;\r\n --u-yellow-900: #FFF5CC;\r\n --u-yellow-1000: #FFFBE6;\r\n\r\n /* Red Colors */\r\n --u-red-0: #2E0A0A;\r\n --u-red-100: #4D1717;\r\n --u-red-200: #6B2424;\r\n --u-red-300: #8F3535;\r\n --u-red-400: #B24848;\r\n --u-red-500: #D66060;\r\n --u-red-600: #F57878;\r\n --u-red-700: #FF9494;\r\n --u-red-800: #FFB3B3;\r\n --u-red-900: #FFD2D2;\r\n --u-red-1000: #FFF0F0;\r\n\r\n /* Shadow Colors */\r\n --u-shadow-weak: rgba(0, 0, 0, 0.15);\r\n --u-shadow-normal: rgba(0, 0, 0, 0.25);\r\n --u-shadow-medium: rgba(0, 0, 0, 0.35);\r\n --u-shadow-strong: rgba(0, 0, 0, 0.45);\r\n --u-shadow-heavy: rgba(0, 0, 0, 0.60);\r\n\r\n /* background Colors */\r\n --u-bg-color: var(--u-neutral-100);\r\n --u-bg-color-inverse: var(--u-neutral-0);\r\n --u-bg-color-hover: var(--u-neutral-300);\r\n --u-bg-color-active: var(--u-neutral-400);\r\n --u-bg-color-disabled: var(--u-neutral-200);\r\n \r\n --u-panel-bg-color: var(--u-neutral-200);\r\n --u-overlay-bg-color: rgba(0, 0, 0, 0.7);\r\n --u-tooltip-bg-color: rgba(255, 255, 255, 0.85);\r\n\r\n /* border Colors */\r\n --u-border-color: var(--u-neutral-400);\r\n --u-border-color-weak: var(--u-neutral-300);\r\n --u-border-color-strong: var(--u-neutral-500);\r\n\r\n --u-input-border-color: var(--u-neutral-400);\r\n --u-input-border-hover: var(--u-neutral-500);\r\n --u-input-border-focus: var(--u-blue-600);\r\n\r\n /* text Colors */\r\n --u-text-color: var(--u-neutral-900);\r\n --u-text-color-inverse: var(--u-neutral-100);\r\n --u-text-color-hover: var(--u-blue-600);\r\n --u-text-color-disabled: var(--u-neutral-500);\r\n\r\n --u-soft-text-color: var(--u-neutral-700);\r\n --u-strong-text-color: var(--u-neutral-1000);\r\n --u-link-text-color: var(--u-blue-700);\r\n --u-tooltip-text-color: var(--u-neutral-100);\r\n\r\n /* Icon Colors */\r\n --u-icon-color: var(--u-neutral-800);\r\n --u-icon-color-inverse: var(--u-neutral-100);\r\n --u-icon-color-hover: var(--u-blue-600);\r\n --u-icon-color-disabled: var(--u-neutral-500);\r\n\r\n /* Scrollbar Colors */\r\n --u-scrollbar-color: var(--u-neutral-500);\r\n --u-scrollbar-color-hover: var(--u-neutral-600);\r\n --u-scrollbar-track-color: transparent;\r\n\r\n /* Font Styles */\r\n --u-font-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';\r\n --u-font-mono: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Monaco, 'Courier New', monospace;\r\n --u-font-serif: 'Georgia', 'Times New Roman', Times, serif;\r\n --u-font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;\r\n --u-font-modern: 'Inter', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\r\n --u-font-rounded: 'Nunito', 'Quicksand', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\r\n}";
1
+ const dark = ":root[theme=\"dark\"] {\n color-scheme: dark;\n\n /* Neutral Colors */\n --u-neutral-0: #000000;\n --u-neutral-50: #0A0A0A;\n --u-neutral-100: #121212;\n --u-neutral-200: #1E1E1E;\n --u-neutral-300: #2A2A2A;\n --u-neutral-400: #3D3D3D;\n --u-neutral-500: #525252;\n --u-neutral-600: #6E6E6E;\n --u-neutral-700: #8A8A8A;\n --u-neutral-800: #B0B0B0;\n --u-neutral-900: #D4D4D4;\n --u-neutral-1000: #FFFFFF;\n\n /* Blue Colors */\n --u-blue-0: #0A1E3D;\n --u-blue-100: #1E3A5F;\n --u-blue-200: #2B4F7E;\n --u-blue-300: #3D6B9E;\n --u-blue-400: #5284BE;\n --u-blue-500: #6BA3E3;\n --u-blue-600: #87B8F5;\n --u-blue-700: #A5CDFF;\n --u-blue-800: #C2DEFF;\n --u-blue-900: #DDEEFF;\n --u-blue-1000: #F0F7FF;\n\n /* Green Colors */\n --u-green-0: #0D2818;\n --u-green-100: #1A3F2A;\n --u-green-200: #285639;\n --u-green-300: #3A7450;\n --u-green-400: #4E9268;\n --u-green-500: #66B584;\n --u-green-600: #81D19D;\n --u-green-700: #9FE5B5;\n --u-green-800: #BEF2CD;\n --u-green-900: #DDF9E5;\n --u-green-1000: #F0FDF5;\n\n /* Yellow Colors */\n --u-yellow-0: #2E2200;\n --u-yellow-100: #4D3A00;\n --u-yellow-200: #6B5200;\n --u-yellow-300: #8A6B00;\n --u-yellow-400: #B08900;\n --u-yellow-500: #D4A712;\n --u-yellow-600: #F5C842;\n --u-yellow-700: #FFE066;\n --u-yellow-800: #FFED99;\n --u-yellow-900: #FFF5CC;\n --u-yellow-1000: #FFFBE6;\n\n /* Red Colors */\n --u-red-0: #2E0A0A;\n --u-red-100: #4D1717;\n --u-red-200: #6B2424;\n --u-red-300: #8F3535;\n --u-red-400: #B24848;\n --u-red-500: #D66060;\n --u-red-600: #F57878;\n --u-red-700: #FF9494;\n --u-red-800: #FFB3B3;\n --u-red-900: #FFD2D2;\n --u-red-1000: #FFF0F0;\n\n /* Shadow Colors */\n --u-shadow-weak: rgba(0, 0, 0, 0.15);\n --u-shadow-normal: rgba(0, 0, 0, 0.25);\n --u-shadow-medium: rgba(0, 0, 0, 0.35);\n --u-shadow-strong: rgba(0, 0, 0, 0.45);\n --u-shadow-heavy: rgba(0, 0, 0, 0.60);\n\n /* background Colors */\n --u-bg-color: var(--u-neutral-100);\n --u-bg-color-inverse: var(--u-neutral-0);\n --u-bg-color-hover: var(--u-neutral-300);\n --u-bg-color-active: var(--u-neutral-400);\n --u-bg-color-disabled: var(--u-neutral-200);\n \n --u-panel-bg-color: var(--u-neutral-200);\n --u-overlay-bg-color: rgba(0, 0, 0, 0.7);\n --u-tooltip-bg-color: rgba(255, 255, 255, 0.85);\n\n /* border Colors */\n --u-border-color: var(--u-neutral-400);\n --u-border-color-weak: var(--u-neutral-300);\n --u-border-color-strong: var(--u-neutral-500);\n\n --u-input-border-color: var(--u-neutral-400);\n --u-input-border-hover: var(--u-neutral-500);\n --u-input-border-focus: var(--u-blue-600);\n\n /* text Colors */\n --u-text-color: var(--u-neutral-900);\n --u-text-color-inverse: var(--u-neutral-100);\n --u-text-color-hover: var(--u-blue-600);\n --u-text-color-disabled: var(--u-neutral-500);\n\n --u-soft-text-color: var(--u-neutral-700);\n --u-strong-text-color: var(--u-neutral-1000);\n --u-link-text-color: var(--u-blue-700);\n --u-tooltip-text-color: var(--u-neutral-100);\n\n /* Icon Colors */\n --u-icon-color: var(--u-neutral-800);\n --u-icon-color-inverse: var(--u-neutral-100);\n --u-icon-color-hover: var(--u-blue-600);\n --u-icon-color-disabled: var(--u-neutral-500);\n\n /* Scrollbar Colors */\n --u-scrollbar-color: var(--u-neutral-500);\n --u-scrollbar-color-hover: var(--u-neutral-600);\n --u-scrollbar-track-color: transparent;\n\n /* Font Styles */\n --u-font-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';\n --u-font-mono: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Monaco, 'Courier New', monospace;\n --u-font-serif: 'Georgia', 'Times New Roman', Times, serif;\n --u-font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;\n --u-font-modern: 'Inter', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n --u-font-rounded: 'Nunito', 'Quicksand', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n}";
2
2
 
3
3
  export { dark as default };
@@ -1,127 +1,127 @@
1
- :root {
2
- color-scheme: light;
3
-
4
- /* Neutral Colors */
5
- --u-neutral-0: #FFFFFF;
6
- --u-neutral-50: #FAFAFA;
7
- --u-neutral-100: #F5F5F5;
8
- --u-neutral-200: #EEEEEE;
9
- --u-neutral-300: #E0E0E0;
10
- --u-neutral-400: #BDBDBD;
11
- --u-neutral-500: #9E9E9E;
12
- --u-neutral-600: #757575;
13
- --u-neutral-700: #616161;
14
- --u-neutral-800: #424242;
15
- --u-neutral-900: #212121;
16
- --u-neutral-1000: #000000;
17
-
18
- /* Blue Colors */
19
- --u-blue-0: #E3F2FD;
20
- --u-blue-100: #BBDEFB;
21
- --u-blue-200: #90CAF9;
22
- --u-blue-300: #64B5F6;
23
- --u-blue-400: #42A5F5;
24
- --u-blue-500: #2196F3;
25
- --u-blue-600: #1E88E5;
26
- --u-blue-700: #1976D2;
27
- --u-blue-800: #1565C0;
28
- --u-blue-900: #0D47A1;
29
- --u-blue-1000: #062A5E;
30
-
31
- /* Green Colors */
32
- --u-green-0: #E8F5E9;
33
- --u-green-100: #C8E6C9;
34
- --u-green-200: #A5D6A7;
35
- --u-green-300: #81C784;
36
- --u-green-400: #66BB6A;
37
- --u-green-500: #4CAF50;
38
- --u-green-600: #43A047;
39
- --u-green-700: #388E3C;
40
- --u-green-800: #2E7D32;
41
- --u-green-900: #1B5E20;
42
- --u-green-1000: #0F3A12;
43
-
44
- /* Yellow Colors */
45
- --u-yellow-0: #FFFDE7;
46
- --u-yellow-100: #FFF9C4;
47
- --u-yellow-200: #FFF59D;
48
- --u-yellow-300: #FFF176;
49
- --u-yellow-400: #FFEE58;
50
- --u-yellow-500: #FFEB3B;
51
- --u-yellow-600: #FDD835;
52
- --u-yellow-700: #FBC02D;
53
- --u-yellow-800: #F9A825;
54
- --u-yellow-900: #F57F17;
55
- --u-yellow-1000: #8A4A00;
56
-
57
- /* Red Colors */
58
- --u-red-0: #FFEBEE;
59
- --u-red-100: #FFCDD2;
60
- --u-red-200: #EF9A9A;
61
- --u-red-300: #E57373;
62
- --u-red-400: #EF5350;
63
- --u-red-500: #F44336;
64
- --u-red-600: #E53935;
65
- --u-red-700: #D32F2F;
66
- --u-red-800: #C62828;
67
- --u-red-900: #B71C1C;
68
- --u-red-1000: #6B0F0F;
69
-
70
- /* Shadow Colors */
71
- --u-shadow-weak: rgba(0, 0, 0, 0.04);
72
- --u-shadow-normal: rgba(0, 0, 0, 0.08);
73
- --u-shadow-medium: rgba(0, 0, 0, 0.12);
74
- --u-shadow-strong: rgba(0, 0, 0, 0.16);
75
- --u-shadow-heavy: rgba(0, 0, 0, 0.24);
76
-
77
- /* background Colors */
78
- --u-bg-color: var(--u-neutral-0);
79
- --u-bg-color-inverse: var(--u-neutral-900);
80
- --u-bg-color-hover: var(--u-neutral-100);
81
- --u-bg-color-active: var(--u-neutral-200);
82
- --u-bg-color-disabled: var(--u-neutral-50);
83
-
84
- --u-panel-bg-color: var(--u-neutral-0);
85
- --u-overlay-bg-color: rgba(0, 0, 0, 0.5);
86
- --u-tooltip-bg-color: rgba(0, 0, 0, 0.75);
87
-
88
- /* border Colors */
89
- --u-border-color: var(--u-neutral-300);
90
- --u-border-color-weak: var(--u-neutral-200);
91
- --u-border-color-strong: var(--u-neutral-400);
92
-
93
- --u-input-border-color: var(--u-neutral-300);
94
- --u-input-border-hover: var(--u-neutral-400);
95
- --u-input-border-focus: var(--u-blue-600);
96
-
97
- /* text Colors */
98
- --u-text-color: var(--u-neutral-900);
99
- --u-text-color-inverse: var(--u-neutral-0);
100
- --u-text-color-hover: var(--u-blue-600);
101
- --u-text-color-active: var(--u-blue-600);
102
- --u-text-color-disabled: var(--u-neutral-400);
103
-
104
- --u-soft-text-color: var(--u-neutral-700);
105
- --u-link-text-color: var(--u-blue-700);
106
- --u-tooltip-text-color: var(--u-neutral-0);
107
-
108
- /* Icon Colors */
109
- --u-icon-color: var(--u-neutral-700);
110
- --u-icon-color-inverse: var(--u-neutral-0);
111
- --u-icon-color-hover: var(--u-blue-600);
112
- --u-icon-color-active: var(--u-blue-600);
113
- --u-icon-color-disabled: var(--u-neutral-400);
114
-
115
- /* Scrollbar Colors */
116
- --u-scrollbar-color: var(--u-neutral-400);
117
- --u-scrollbar-color-hover: var(--u-neutral-500);
118
- --u-scrollbar-track-color: transparent;
119
-
120
- /* Font Styles */
121
- --u-font-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
122
- --u-font-mono: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Monaco, 'Courier New', monospace;
123
- --u-font-serif: 'Georgia', 'Times New Roman', Times, serif;
124
- --u-font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;
125
- --u-font-modern: 'Inter', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
126
- --u-font-rounded: 'Nunito', 'Quicksand', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
1
+ :root {
2
+ color-scheme: light;
3
+
4
+ /* Neutral Colors */
5
+ --u-neutral-0: #FFFFFF;
6
+ --u-neutral-50: #FAFAFA;
7
+ --u-neutral-100: #F5F5F5;
8
+ --u-neutral-200: #EEEEEE;
9
+ --u-neutral-300: #E0E0E0;
10
+ --u-neutral-400: #BDBDBD;
11
+ --u-neutral-500: #9E9E9E;
12
+ --u-neutral-600: #757575;
13
+ --u-neutral-700: #616161;
14
+ --u-neutral-800: #424242;
15
+ --u-neutral-900: #212121;
16
+ --u-neutral-1000: #000000;
17
+
18
+ /* Blue Colors */
19
+ --u-blue-0: #E3F2FD;
20
+ --u-blue-100: #BBDEFB;
21
+ --u-blue-200: #90CAF9;
22
+ --u-blue-300: #64B5F6;
23
+ --u-blue-400: #42A5F5;
24
+ --u-blue-500: #2196F3;
25
+ --u-blue-600: #1E88E5;
26
+ --u-blue-700: #1976D2;
27
+ --u-blue-800: #1565C0;
28
+ --u-blue-900: #0D47A1;
29
+ --u-blue-1000: #062A5E;
30
+
31
+ /* Green Colors */
32
+ --u-green-0: #E8F5E9;
33
+ --u-green-100: #C8E6C9;
34
+ --u-green-200: #A5D6A7;
35
+ --u-green-300: #81C784;
36
+ --u-green-400: #66BB6A;
37
+ --u-green-500: #4CAF50;
38
+ --u-green-600: #43A047;
39
+ --u-green-700: #388E3C;
40
+ --u-green-800: #2E7D32;
41
+ --u-green-900: #1B5E20;
42
+ --u-green-1000: #0F3A12;
43
+
44
+ /* Yellow Colors */
45
+ --u-yellow-0: #FFFDE7;
46
+ --u-yellow-100: #FFF9C4;
47
+ --u-yellow-200: #FFF59D;
48
+ --u-yellow-300: #FFF176;
49
+ --u-yellow-400: #FFEE58;
50
+ --u-yellow-500: #FFEB3B;
51
+ --u-yellow-600: #FDD835;
52
+ --u-yellow-700: #FBC02D;
53
+ --u-yellow-800: #F9A825;
54
+ --u-yellow-900: #F57F17;
55
+ --u-yellow-1000: #8A4A00;
56
+
57
+ /* Red Colors */
58
+ --u-red-0: #FFEBEE;
59
+ --u-red-100: #FFCDD2;
60
+ --u-red-200: #EF9A9A;
61
+ --u-red-300: #E57373;
62
+ --u-red-400: #EF5350;
63
+ --u-red-500: #F44336;
64
+ --u-red-600: #E53935;
65
+ --u-red-700: #D32F2F;
66
+ --u-red-800: #C62828;
67
+ --u-red-900: #B71C1C;
68
+ --u-red-1000: #6B0F0F;
69
+
70
+ /* Shadow Colors */
71
+ --u-shadow-weak: rgba(0, 0, 0, 0.04);
72
+ --u-shadow-normal: rgba(0, 0, 0, 0.08);
73
+ --u-shadow-medium: rgba(0, 0, 0, 0.12);
74
+ --u-shadow-strong: rgba(0, 0, 0, 0.16);
75
+ --u-shadow-heavy: rgba(0, 0, 0, 0.24);
76
+
77
+ /* background Colors */
78
+ --u-bg-color: var(--u-neutral-0);
79
+ --u-bg-color-inverse: var(--u-neutral-900);
80
+ --u-bg-color-hover: var(--u-neutral-100);
81
+ --u-bg-color-active: var(--u-neutral-200);
82
+ --u-bg-color-disabled: var(--u-neutral-50);
83
+
84
+ --u-panel-bg-color: var(--u-neutral-0);
85
+ --u-overlay-bg-color: rgba(0, 0, 0, 0.5);
86
+ --u-tooltip-bg-color: rgba(0, 0, 0, 0.75);
87
+
88
+ /* border Colors */
89
+ --u-border-color: var(--u-neutral-300);
90
+ --u-border-color-weak: var(--u-neutral-200);
91
+ --u-border-color-strong: var(--u-neutral-400);
92
+
93
+ --u-input-border-color: var(--u-neutral-300);
94
+ --u-input-border-hover: var(--u-neutral-400);
95
+ --u-input-border-focus: var(--u-blue-600);
96
+
97
+ /* text Colors */
98
+ --u-text-color: var(--u-neutral-900);
99
+ --u-text-color-inverse: var(--u-neutral-0);
100
+ --u-text-color-hover: var(--u-blue-600);
101
+ --u-text-color-active: var(--u-blue-600);
102
+ --u-text-color-disabled: var(--u-neutral-400);
103
+
104
+ --u-soft-text-color: var(--u-neutral-700);
105
+ --u-link-text-color: var(--u-blue-700);
106
+ --u-tooltip-text-color: var(--u-neutral-0);
107
+
108
+ /* Icon Colors */
109
+ --u-icon-color: var(--u-neutral-700);
110
+ --u-icon-color-inverse: var(--u-neutral-0);
111
+ --u-icon-color-hover: var(--u-blue-600);
112
+ --u-icon-color-active: var(--u-blue-600);
113
+ --u-icon-color-disabled: var(--u-neutral-400);
114
+
115
+ /* Scrollbar Colors */
116
+ --u-scrollbar-color: var(--u-neutral-400);
117
+ --u-scrollbar-color-hover: var(--u-neutral-500);
118
+ --u-scrollbar-track-color: transparent;
119
+
120
+ /* Font Styles */
121
+ --u-font-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
122
+ --u-font-mono: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Monaco, 'Courier New', monospace;
123
+ --u-font-serif: 'Georgia', 'Times New Roman', Times, serif;
124
+ --u-font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;
125
+ --u-font-modern: 'Inter', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
126
+ --u-font-rounded: 'Nunito', 'Quicksand', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
127
127
  }
@@ -1,3 +1,3 @@
1
- const light = ":root {\r\n color-scheme: light;\r\n\r\n /* Neutral Colors */\r\n --u-neutral-0: #FFFFFF;\r\n --u-neutral-50: #FAFAFA;\r\n --u-neutral-100: #F5F5F5;\r\n --u-neutral-200: #EEEEEE;\r\n --u-neutral-300: #E0E0E0;\r\n --u-neutral-400: #BDBDBD;\r\n --u-neutral-500: #9E9E9E;\r\n --u-neutral-600: #757575;\r\n --u-neutral-700: #616161;\r\n --u-neutral-800: #424242;\r\n --u-neutral-900: #212121;\r\n --u-neutral-1000: #000000;\r\n\r\n /* Blue Colors */\r\n --u-blue-0: #E3F2FD;\r\n --u-blue-100: #BBDEFB;\r\n --u-blue-200: #90CAF9;\r\n --u-blue-300: #64B5F6;\r\n --u-blue-400: #42A5F5;\r\n --u-blue-500: #2196F3;\r\n --u-blue-600: #1E88E5;\r\n --u-blue-700: #1976D2;\r\n --u-blue-800: #1565C0;\r\n --u-blue-900: #0D47A1;\r\n --u-blue-1000: #062A5E;\r\n\r\n /* Green Colors */\r\n --u-green-0: #E8F5E9;\r\n --u-green-100: #C8E6C9;\r\n --u-green-200: #A5D6A7;\r\n --u-green-300: #81C784;\r\n --u-green-400: #66BB6A;\r\n --u-green-500: #4CAF50;\r\n --u-green-600: #43A047;\r\n --u-green-700: #388E3C;\r\n --u-green-800: #2E7D32;\r\n --u-green-900: #1B5E20;\r\n --u-green-1000: #0F3A12;\r\n\r\n /* Yellow Colors */\r\n --u-yellow-0: #FFFDE7;\r\n --u-yellow-100: #FFF9C4;\r\n --u-yellow-200: #FFF59D;\r\n --u-yellow-300: #FFF176;\r\n --u-yellow-400: #FFEE58;\r\n --u-yellow-500: #FFEB3B;\r\n --u-yellow-600: #FDD835;\r\n --u-yellow-700: #FBC02D;\r\n --u-yellow-800: #F9A825;\r\n --u-yellow-900: #F57F17;\r\n --u-yellow-1000: #8A4A00;\r\n\r\n /* Red Colors */\r\n --u-red-0: #FFEBEE;\r\n --u-red-100: #FFCDD2;\r\n --u-red-200: #EF9A9A;\r\n --u-red-300: #E57373;\r\n --u-red-400: #EF5350;\r\n --u-red-500: #F44336;\r\n --u-red-600: #E53935;\r\n --u-red-700: #D32F2F;\r\n --u-red-800: #C62828;\r\n --u-red-900: #B71C1C;\r\n --u-red-1000: #6B0F0F;\r\n\r\n /* Shadow Colors */\r\n --u-shadow-weak: rgba(0, 0, 0, 0.04);\r\n --u-shadow-normal: rgba(0, 0, 0, 0.08);\r\n --u-shadow-medium: rgba(0, 0, 0, 0.12);\r\n --u-shadow-strong: rgba(0, 0, 0, 0.16);\r\n --u-shadow-heavy: rgba(0, 0, 0, 0.24);\r\n\r\n /* background Colors */\r\n --u-bg-color: var(--u-neutral-0);\r\n --u-bg-color-inverse: var(--u-neutral-900);\r\n --u-bg-color-hover: var(--u-neutral-100);\r\n --u-bg-color-active: var(--u-neutral-200);\r\n --u-bg-color-disabled: var(--u-neutral-50);\r\n \r\n --u-panel-bg-color: var(--u-neutral-0);\r\n --u-overlay-bg-color: rgba(0, 0, 0, 0.5);\r\n --u-tooltip-bg-color: rgba(0, 0, 0, 0.75);\r\n\r\n /* border Colors */\r\n --u-border-color: var(--u-neutral-300);\r\n --u-border-color-weak: var(--u-neutral-200);\r\n --u-border-color-strong: var(--u-neutral-400);\r\n\r\n --u-input-border-color: var(--u-neutral-300);\r\n --u-input-border-hover: var(--u-neutral-400);\r\n --u-input-border-focus: var(--u-blue-600);\r\n\r\n /* text Colors */\r\n --u-text-color: var(--u-neutral-900);\r\n --u-text-color-inverse: var(--u-neutral-0);\r\n --u-text-color-hover: var(--u-blue-600);\r\n --u-text-color-active: var(--u-blue-600);\r\n --u-text-color-disabled: var(--u-neutral-400);\r\n \r\n --u-soft-text-color: var(--u-neutral-700);\r\n --u-link-text-color: var(--u-blue-700);\r\n --u-tooltip-text-color: var(--u-neutral-0);\r\n\r\n /* Icon Colors */\r\n --u-icon-color: var(--u-neutral-700);\r\n --u-icon-color-inverse: var(--u-neutral-0);\r\n --u-icon-color-hover: var(--u-blue-600);\r\n --u-icon-color-active: var(--u-blue-600);\r\n --u-icon-color-disabled: var(--u-neutral-400);\r\n\r\n /* Scrollbar Colors */\r\n --u-scrollbar-color: var(--u-neutral-400);\r\n --u-scrollbar-color-hover: var(--u-neutral-500);\r\n --u-scrollbar-track-color: transparent;\r\n\r\n /* Font Styles */\r\n --u-font-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';\r\n --u-font-mono: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Monaco, 'Courier New', monospace;\r\n --u-font-serif: 'Georgia', 'Times New Roman', Times, serif;\r\n --u-font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;\r\n --u-font-modern: 'Inter', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\r\n --u-font-rounded: 'Nunito', 'Quicksand', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\r\n}";
1
+ const light = ":root {\n color-scheme: light;\n\n /* Neutral Colors */\n --u-neutral-0: #FFFFFF;\n --u-neutral-50: #FAFAFA;\n --u-neutral-100: #F5F5F5;\n --u-neutral-200: #EEEEEE;\n --u-neutral-300: #E0E0E0;\n --u-neutral-400: #BDBDBD;\n --u-neutral-500: #9E9E9E;\n --u-neutral-600: #757575;\n --u-neutral-700: #616161;\n --u-neutral-800: #424242;\n --u-neutral-900: #212121;\n --u-neutral-1000: #000000;\n\n /* Blue Colors */\n --u-blue-0: #E3F2FD;\n --u-blue-100: #BBDEFB;\n --u-blue-200: #90CAF9;\n --u-blue-300: #64B5F6;\n --u-blue-400: #42A5F5;\n --u-blue-500: #2196F3;\n --u-blue-600: #1E88E5;\n --u-blue-700: #1976D2;\n --u-blue-800: #1565C0;\n --u-blue-900: #0D47A1;\n --u-blue-1000: #062A5E;\n\n /* Green Colors */\n --u-green-0: #E8F5E9;\n --u-green-100: #C8E6C9;\n --u-green-200: #A5D6A7;\n --u-green-300: #81C784;\n --u-green-400: #66BB6A;\n --u-green-500: #4CAF50;\n --u-green-600: #43A047;\n --u-green-700: #388E3C;\n --u-green-800: #2E7D32;\n --u-green-900: #1B5E20;\n --u-green-1000: #0F3A12;\n\n /* Yellow Colors */\n --u-yellow-0: #FFFDE7;\n --u-yellow-100: #FFF9C4;\n --u-yellow-200: #FFF59D;\n --u-yellow-300: #FFF176;\n --u-yellow-400: #FFEE58;\n --u-yellow-500: #FFEB3B;\n --u-yellow-600: #FDD835;\n --u-yellow-700: #FBC02D;\n --u-yellow-800: #F9A825;\n --u-yellow-900: #F57F17;\n --u-yellow-1000: #8A4A00;\n\n /* Red Colors */\n --u-red-0: #FFEBEE;\n --u-red-100: #FFCDD2;\n --u-red-200: #EF9A9A;\n --u-red-300: #E57373;\n --u-red-400: #EF5350;\n --u-red-500: #F44336;\n --u-red-600: #E53935;\n --u-red-700: #D32F2F;\n --u-red-800: #C62828;\n --u-red-900: #B71C1C;\n --u-red-1000: #6B0F0F;\n\n /* Shadow Colors */\n --u-shadow-weak: rgba(0, 0, 0, 0.04);\n --u-shadow-normal: rgba(0, 0, 0, 0.08);\n --u-shadow-medium: rgba(0, 0, 0, 0.12);\n --u-shadow-strong: rgba(0, 0, 0, 0.16);\n --u-shadow-heavy: rgba(0, 0, 0, 0.24);\n\n /* background Colors */\n --u-bg-color: var(--u-neutral-0);\n --u-bg-color-inverse: var(--u-neutral-900);\n --u-bg-color-hover: var(--u-neutral-100);\n --u-bg-color-active: var(--u-neutral-200);\n --u-bg-color-disabled: var(--u-neutral-50);\n \n --u-panel-bg-color: var(--u-neutral-0);\n --u-overlay-bg-color: rgba(0, 0, 0, 0.5);\n --u-tooltip-bg-color: rgba(0, 0, 0, 0.75);\n\n /* border Colors */\n --u-border-color: var(--u-neutral-300);\n --u-border-color-weak: var(--u-neutral-200);\n --u-border-color-strong: var(--u-neutral-400);\n\n --u-input-border-color: var(--u-neutral-300);\n --u-input-border-hover: var(--u-neutral-400);\n --u-input-border-focus: var(--u-blue-600);\n\n /* text Colors */\n --u-text-color: var(--u-neutral-900);\n --u-text-color-inverse: var(--u-neutral-0);\n --u-text-color-hover: var(--u-blue-600);\n --u-text-color-active: var(--u-blue-600);\n --u-text-color-disabled: var(--u-neutral-400);\n \n --u-soft-text-color: var(--u-neutral-700);\n --u-link-text-color: var(--u-blue-700);\n --u-tooltip-text-color: var(--u-neutral-0);\n\n /* Icon Colors */\n --u-icon-color: var(--u-neutral-700);\n --u-icon-color-inverse: var(--u-neutral-0);\n --u-icon-color-hover: var(--u-blue-600);\n --u-icon-color-active: var(--u-blue-600);\n --u-icon-color-disabled: var(--u-neutral-400);\n\n /* Scrollbar Colors */\n --u-scrollbar-color: var(--u-neutral-400);\n --u-scrollbar-color-hover: var(--u-neutral-500);\n --u-scrollbar-track-color: transparent;\n\n /* Font Styles */\n --u-font-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';\n --u-font-mono: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Monaco, 'Courier New', monospace;\n --u-font-serif: 'Georgia', 'Times New Roman', Times, serif;\n --u-font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif;\n --u-font-modern: 'Inter', 'SF Pro Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n --u-font-rounded: 'Nunito', 'Quicksand', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n}";
2
2
 
3
3
  export { light as default };
@@ -22,7 +22,6 @@ const styles = css`
22
22
  .scrollable {
23
23
  scrollbar-width: thin;
24
24
  scrollbar-color: var(--u-scrollbar-color) var(--u-scrollbar-track-color);
25
- scrollbar-gutter: stable;
26
25
  }
27
26
  `;
28
27
 
@@ -0,0 +1,25 @@
1
+ import { nothing } from 'lit';
2
+ import { BaseElement } from '../BaseElement.js';
3
+ /**
4
+ * Divider 컴포넌트는 엘리먼트 사이에 드래그 가능한 구분선을 표시합니다.
5
+ */
6
+ export declare class Divider extends BaseElement {
7
+ static styles: import('lit').CSSResultGroup[];
8
+ static dependencies: Record<string, typeof BaseElement>;
9
+ /** 마지막 마우스 위치를 저장합니다. */
10
+ private position;
11
+ /** 드래그 중인지 여부를 나타냅니다. */
12
+ dragging: boolean;
13
+ /** 드래그 가능 여부를 설정합니다. */
14
+ draggable: boolean;
15
+ /** 분할 방향을 설정합니다. */
16
+ orientation: 'horizontal' | 'vertical';
17
+ disconnectedCallback(): void;
18
+ render(): typeof nothing | import('lit-html').TemplateResult<1>;
19
+ /** 마우스 다운 이벤트 핸들러 */
20
+ private handleMouseDown;
21
+ /** 마우스 무브 이벤트 핸들러 */
22
+ private handleMouseMove;
23
+ /** 마우스 업 이벤트 핸들러 */
24
+ private handleMouseUp;
25
+ }
@@ -0,0 +1,89 @@
1
+ import { html, nothing } from 'lit';
2
+ import { state, property } from 'lit/decorators.js';
3
+ import { BaseElement } from '../BaseElement.js';
4
+ import { styles } from './Divider.styles.js';
5
+
6
+ var __defProp = Object.defineProperty;
7
+ var __decorateClass = (decorators, target, key, kind) => {
8
+ var result = void 0 ;
9
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
10
+ if (decorator = decorators[i])
11
+ result = (decorator(target, key, result) ) || result;
12
+ if (result) __defProp(target, key, result);
13
+ return result;
14
+ };
15
+ class Divider extends BaseElement {
16
+ constructor() {
17
+ super(...arguments);
18
+ /** 마지막 마우스 위치를 저장합니다. */
19
+ this.position = 0;
20
+ this.dragging = false;
21
+ this.draggable = false;
22
+ this.orientation = "horizontal";
23
+ /** 마우스 다운 이벤트 핸들러 */
24
+ this.handleMouseDown = (e) => {
25
+ e.preventDefault();
26
+ this.dragging = true;
27
+ this.position = this.orientation === "horizontal" ? e.clientX : e.clientY;
28
+ this.emit("u-dragstart");
29
+ document.addEventListener("mousemove", this.handleMouseMove);
30
+ document.addEventListener("mouseup", this.handleMouseUp);
31
+ document.body.style.userSelect = "none";
32
+ document.body.style.cursor = this.orientation === "horizontal" ? "col-resize" : "row-resize";
33
+ };
34
+ /** 마우스 무브 이벤트 핸들러 */
35
+ this.handleMouseMove = (e) => {
36
+ if (!this.dragging) return;
37
+ e.preventDefault();
38
+ const position = this.orientation === "horizontal" ? e.clientX : e.clientY;
39
+ const delta = position - this.position;
40
+ this.emit("u-drag", { delta });
41
+ this.position = position;
42
+ };
43
+ /** 마우스 업 이벤트 핸들러 */
44
+ this.handleMouseUp = (_) => {
45
+ if (!this.dragging) return;
46
+ this.dragging = false;
47
+ this.emit("u-dragend");
48
+ document.removeEventListener("mousemove", this.handleMouseMove);
49
+ document.removeEventListener("mouseup", this.handleMouseUp);
50
+ document.body.style.userSelect = "";
51
+ document.body.style.cursor = "";
52
+ };
53
+ }
54
+ static {
55
+ this.styles = [super.styles, styles];
56
+ }
57
+ static {
58
+ this.dependencies = {};
59
+ }
60
+ disconnectedCallback() {
61
+ super.disconnectedCallback();
62
+ document.removeEventListener("mousemove", this.handleMouseMove);
63
+ document.removeEventListener("mouseup", this.handleMouseUp);
64
+ }
65
+ render() {
66
+ if (this.draggable) {
67
+ return html`
68
+ <div class="handler"
69
+ ?dragging=${this.dragging}
70
+ orientation=${this.orientation}
71
+ @mousedown=${this.handleMouseDown}
72
+ ></div>
73
+ `;
74
+ } else {
75
+ return nothing;
76
+ }
77
+ }
78
+ }
79
+ __decorateClass([
80
+ state()
81
+ ], Divider.prototype, "dragging");
82
+ __decorateClass([
83
+ property({ type: Boolean, reflect: true })
84
+ ], Divider.prototype, "draggable");
85
+ __decorateClass([
86
+ property({ type: String, reflect: true })
87
+ ], Divider.prototype, "orientation");
88
+
89
+ export { Divider };
@@ -6,36 +6,46 @@ const styles = css`
6
6
  display: block;
7
7
  flex-shrink: 0;
8
8
  background-color: var(--u-neutral-200, #e5e7eb);
9
- transition: background-color 0.2s ease;
10
9
 
11
- --splitter-size: 2px;
12
- --handler-size: 6px;
10
+ --divider-size: 2px;
11
+ --handler-size: 4px;
13
12
  --handler-color: var(--u-blue-500, #3b82f6);
14
13
  }
15
14
  :host([orientation="horizontal"]) {
16
- width: var(--splitter-size, 2px);
15
+ width: var(--divider-size, 2px);
17
16
  height: 100%;
18
17
  cursor: col-resize;
19
18
  }
20
19
  :host([orientation="vertical"]) {
21
20
  width: 100%;
22
- height: var(--splitter-size, 2px);
21
+ height: var(--divider-size, 2px);
23
22
  cursor: row-resize;
24
23
  }
25
24
 
26
25
  .handler {
27
26
  position: absolute;
28
27
  z-index: 100;
29
- top: 50%;
30
- left: 50%;
31
- transform: translate(-50%, -50%);
32
28
  display: block;
33
- width: 300%;
34
- height: 300%;
35
29
  background-color: var(--handler-color, #3b82f6);
36
30
  opacity: 0;
37
31
  transition: opacity 0.2s ease;
38
32
  }
33
+ .handler[orientation="horizontal"] {
34
+ top: 0;
35
+ bottom: 0;
36
+ left: 50%;
37
+ transform: translateX(-50%);
38
+ width: var(--handler-size, 4px);
39
+ height: 100%;
40
+ }
41
+ .handler[orientation="vertical"] {
42
+ left: 0;
43
+ right: 0;
44
+ top: 50%;
45
+ transform: translateY(-50%);
46
+ width: 100%;
47
+ height: var(--handler-size, 4px);
48
+ }
39
49
  .handler[dragging],
40
50
  .handler:hover {
41
51
  opacity: 1;
@@ -0,0 +1,7 @@
1
+ import { Divider } from './Divider.js';
2
+ declare global {
3
+ interface HTMLElementTagNameMap {
4
+ 'u-divider': Divider;
5
+ }
6
+ }
7
+ export { Divider };
@@ -6,13 +6,9 @@ export declare class Icon extends BaseElement {
6
6
  static styles: import('lit').CSSResultGroup[];
7
7
  static dependencies: Record<string, typeof BaseElement>;
8
8
  /**
9
- * 아이콘을 외부에서 불러올 사용되는 기본 경로를 설정합니다.
10
- * @default '/assets/icons/'
11
- */
12
- static remoteBaseUrl: string;
13
- /**
14
- * 아이콘을 외부에서 로드할때 사용하는 설정입니다.
15
- * @see {@link Icon.remoteBaseUrl}에서 외부 기본 경로를 설정할 수 있습니다.
9
+ * 아이콘을 원격 경로에서 로드할지 여부입니다.
10
+ * - `false`(기본): 번들된 내부 아이콘 레지스트리(`iconBundle`)에서 아이콘을 찾습니다.
11
+ * - `true` : `getBaseUrl()`을 기준으로 원격 SVG 파일을 fetch 합니다.
16
12
  * @default false
17
13
  */
18
14
  remote: boolean;
@@ -3,7 +3,7 @@ import { property } from 'lit/decorators.js';
3
3
  import { unsafeHTML } from 'lit/directives/unsafe-html.js';
4
4
  import { until } from 'lit/directives/until.js';
5
5
  import { BaseElement } from '../BaseElement.js';
6
- import { icons } from '../../internals/icons.js';
6
+ import { getBaseUrl, iconBundle } from '../../internals/icon-helpers.js';
7
7
  import { styles } from './Icon.styles.js';
8
8
 
9
9
  var __defProp = Object.defineProperty;
@@ -15,7 +15,7 @@ var __decorateClass = (decorators, target, key, kind) => {
15
15
  if (result) __defProp(target, key, result);
16
16
  return result;
17
17
  };
18
- const _Icon = class _Icon extends BaseElement {
18
+ class Icon extends BaseElement {
19
19
  constructor() {
20
20
  super(...arguments);
21
21
  this.remote = false;
@@ -26,13 +26,6 @@ const _Icon = class _Icon extends BaseElement {
26
26
  static {
27
27
  this.dependencies = {};
28
28
  }
29
- static {
30
- /**
31
- * 아이콘을 외부에서 불러올 때 사용되는 기본 경로를 설정합니다.
32
- * @default '/assets/icons/'
33
- */
34
- this.remoteBaseUrl = "/assets/icons/";
35
- }
36
29
  render() {
37
30
  if (!this.name) return nothing;
38
31
  return until(this.load(this.name).then((html) => {
@@ -47,7 +40,8 @@ const _Icon = class _Icon extends BaseElement {
47
40
  */
48
41
  async load(name) {
49
42
  if (this.remote) {
50
- const remoteUrl = _Icon.remoteBaseUrl.endsWith("/") ? `${_Icon.remoteBaseUrl}${name}.svg` : `${_Icon.remoteBaseUrl}/${name}.svg`;
43
+ const baseUrl = getBaseUrl();
44
+ const remoteUrl = baseUrl.endsWith("/") ? `${baseUrl}${name}.svg` : `${baseUrl}/${name}.svg`;
51
45
  try {
52
46
  const response = await fetch(remoteUrl);
53
47
  if (!response.ok) return void 0;
@@ -57,7 +51,7 @@ const _Icon = class _Icon extends BaseElement {
57
51
  return void 0;
58
52
  }
59
53
  } else {
60
- return icons.get(name)?.trim();
54
+ return iconBundle.get(name)?.trim();
61
55
  }
62
56
  }
63
57
  /**
@@ -68,13 +62,12 @@ const _Icon = class _Icon extends BaseElement {
68
62
  if (!html.endsWith("</svg>")) return false;
69
63
  return true;
70
64
  }
71
- };
65
+ }
72
66
  __decorateClass([
73
67
  property({ type: Boolean })
74
- ], _Icon.prototype, "remote");
68
+ ], Icon.prototype, "remote");
75
69
  __decorateClass([
76
70
  property({ type: String })
77
- ], _Icon.prototype, "name");
78
- let Icon = _Icon;
71
+ ], Icon.prototype, "name");
79
72
 
80
73
  export { Icon };
@@ -2,6 +2,7 @@ export * from './alert';
2
2
  export * from './button';
3
3
  export * from './context-menu';
4
4
  export * from './dialog';
5
+ export * from './divider';
5
6
  export * from './form';
6
7
  export * from './icon';
7
8
  export * from './icon-button';
@@ -5,6 +5,5 @@ import { BaseElement } from '../BaseElement.js';
5
5
  export declare class Panel extends BaseElement {
6
6
  static styles: import('lit').CSSResultGroup[];
7
7
  static dependencies: Record<string, typeof BaseElement>;
8
- connectedCallback(): void;
9
8
  render(): import('lit-html').TemplateResult<1>;
10
9
  }
@@ -9,10 +9,6 @@ class Panel extends BaseElement {
9
9
  static {
10
10
  this.dependencies = {};
11
11
  }
12
- connectedCallback() {
13
- super.connectedCallback();
14
- this.classList.add("scrollable");
15
- }
16
12
  render() {
17
13
  return html`<slot></slot>`;
18
14
  }
@@ -1,5 +1,5 @@
1
1
  import { PropertyValues } from 'lit';
2
- import { BaseElement } from '@iyulab/components/dist/components/BaseElement.js';
2
+ import { BaseElement } from '../BaseElement.js';
3
3
  /**
4
4
  * ProgressBar 컴포넌트는 진행 상태를 시각적으로 표시합니다.
5
5
  * 로딩 상태나 작업 진행률을 표시하는데 사용됩니다.
@@ -64,7 +64,9 @@ class ProgressRing extends BaseElement {
64
64
  mask="url(#progress-mask)"
65
65
  ></circle>
66
66
  </svg>
67
- <div class="label" part="label">${Math.round(this.progress * 100)}%</div>
67
+ <div class="label" part="label">
68
+ ${Math.round(this.progress * 100)}%
69
+ </div>
68
70
  `;
69
71
  }
70
72
  /**