@sveltia/ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/LICENSE.txt +21 -0
  2. package/package/components/composite/calendar.svelte +240 -0
  3. package/package/components/composite/calendar.svelte.d.ts +27 -0
  4. package/package/components/composite/checkbox-group.svelte +43 -0
  5. package/package/components/composite/checkbox-group.svelte.d.ts +34 -0
  6. package/package/components/composite/combobox.svelte +179 -0
  7. package/package/components/composite/combobox.svelte.d.ts +47 -0
  8. package/package/components/composite/disclosure.svelte +60 -0
  9. package/package/components/composite/disclosure.svelte.d.ts +35 -0
  10. package/package/components/composite/grid.svelte +24 -0
  11. package/package/components/composite/grid.svelte.d.ts +31 -0
  12. package/package/components/composite/listbox.svelte +63 -0
  13. package/package/components/composite/listbox.svelte.d.ts +52 -0
  14. package/package/components/composite/menu-item-group.svelte +31 -0
  15. package/package/components/composite/menu-item-group.svelte.d.ts +33 -0
  16. package/package/components/composite/menu.svelte +44 -0
  17. package/package/components/composite/menu.svelte.d.ts +41 -0
  18. package/package/components/composite/radio-button-group.svelte +44 -0
  19. package/package/components/composite/radio-button-group.svelte.d.ts +36 -0
  20. package/package/components/composite/select-button-group.svelte +69 -0
  21. package/package/components/composite/select-button-group.svelte.d.ts +44 -0
  22. package/package/components/composite/select.svelte +34 -0
  23. package/package/components/composite/select.svelte.d.ts +38 -0
  24. package/package/components/composite/tab-list.svelte +76 -0
  25. package/package/components/composite/tab-list.svelte.d.ts +55 -0
  26. package/package/components/core/button.svelte +209 -0
  27. package/package/components/core/button.svelte.d.ts +113 -0
  28. package/package/components/core/checkbox.svelte +105 -0
  29. package/package/components/core/checkbox.svelte.d.ts +43 -0
  30. package/package/components/core/dialog.svelte +258 -0
  31. package/package/components/core/dialog.svelte.d.ts +73 -0
  32. package/package/components/core/grid-cell.svelte +14 -0
  33. package/package/components/core/grid-cell.svelte.d.ts +29 -0
  34. package/package/components/core/group.svelte +31 -0
  35. package/package/components/core/group.svelte.d.ts +33 -0
  36. package/package/components/core/icon.svelte +21 -0
  37. package/package/components/core/icon.svelte.d.ts +27 -0
  38. package/package/components/core/menu-button.svelte +65 -0
  39. package/package/components/core/menu-button.svelte.d.ts +36 -0
  40. package/package/components/core/menu-item-checkbox.svelte +24 -0
  41. package/package/components/core/menu-item-checkbox.svelte.d.ts +34 -0
  42. package/package/components/core/menu-item-radio.svelte +19 -0
  43. package/package/components/core/menu-item-radio.svelte.d.ts +34 -0
  44. package/package/components/core/menu-item.svelte +113 -0
  45. package/package/components/core/menu-item.svelte.d.ts +44 -0
  46. package/package/components/core/number-input.svelte +109 -0
  47. package/package/components/core/number-input.svelte.d.ts +40 -0
  48. package/package/components/core/option.svelte +57 -0
  49. package/package/components/core/option.svelte.d.ts +44 -0
  50. package/package/components/core/password-input.svelte +76 -0
  51. package/package/components/core/password-input.svelte.d.ts +36 -0
  52. package/package/components/core/radio-button.svelte +91 -0
  53. package/package/components/core/radio-button.svelte.d.ts +37 -0
  54. package/package/components/core/row-group.svelte +14 -0
  55. package/package/components/core/row-group.svelte.d.ts +29 -0
  56. package/package/components/core/row.svelte +14 -0
  57. package/package/components/core/row.svelte.d.ts +33 -0
  58. package/package/components/core/search-bar.svelte +90 -0
  59. package/package/components/core/search-bar.svelte.d.ts +49 -0
  60. package/package/components/core/select-button.svelte +29 -0
  61. package/package/components/core/select-button.svelte.d.ts +40 -0
  62. package/package/components/core/separator.svelte +28 -0
  63. package/package/components/core/separator.svelte.d.ts +26 -0
  64. package/package/components/core/spacer.svelte +22 -0
  65. package/package/components/core/spacer.svelte.d.ts +25 -0
  66. package/package/components/core/switch.svelte +80 -0
  67. package/package/components/core/switch.svelte.d.ts +37 -0
  68. package/package/components/core/tab-panel.svelte +23 -0
  69. package/package/components/core/tab-panel.svelte.d.ts +33 -0
  70. package/package/components/core/tab.svelte +20 -0
  71. package/package/components/core/tab.svelte.d.ts +33 -0
  72. package/package/components/core/text-area.svelte +90 -0
  73. package/package/components/core/text-area.svelte.d.ts +57 -0
  74. package/package/components/core/text-input.svelte +145 -0
  75. package/package/components/core/text-input.svelte.d.ts +71 -0
  76. package/package/components/core/toolbar.svelte +74 -0
  77. package/package/components/core/toolbar.svelte.d.ts +35 -0
  78. package/package/components/editor/markdown.svelte +75 -0
  79. package/package/components/editor/markdown.svelte.d.ts +25 -0
  80. package/package/components/helpers/group.d.ts +37 -0
  81. package/package/components/helpers/group.js +246 -0
  82. package/package/components/helpers/popup.d.ts +31 -0
  83. package/package/components/helpers/popup.js +134 -0
  84. package/package/components/helpers/util.d.ts +1 -0
  85. package/package/components/helpers/util.js +8 -0
  86. package/package/components/util/app-shell.svelte +282 -0
  87. package/package/components/util/app-shell.svelte.d.ts +38 -0
  88. package/package/components/util/misc.d.ts +2 -0
  89. package/package/components/util/misc.js +22 -0
  90. package/package/components/util/popup.svelte +110 -0
  91. package/package/components/util/popup.svelte.d.ts +46 -0
  92. package/package/components/util/portal.svelte +34 -0
  93. package/package/components/util/portal.svelte.d.ts +28 -0
  94. package/package/index.d.ts +40 -0
  95. package/package/index.js +65 -0
  96. package/package/locales/en.d.ts +42 -0
  97. package/package/locales/en.js +41 -0
  98. package/package/locales/ja.d.ts +42 -0
  99. package/package/locales/ja.js +41 -0
  100. package/package/styles/core.scss +134 -0
  101. package/package/styles/variables.scss +113 -0
  102. package/package/typedef.d.ts +0 -0
  103. package/package/typedef.js +0 -0
  104. package/package.json +461 -0
@@ -0,0 +1,134 @@
1
+ @use "variables.scss";
2
+
3
+ // https://fonts.google.com/share?selection.family=Merriweather%20Sans:ital,wght@0,300;0,600;1,300%7CNoto%20Sans%20Mono
4
+ @import url("https://fonts.googleapis.com/css2?family=Merriweather+Sans:ital,wght@0,300;0,600;1,300&family=Noto+Sans+Mono&display=swap");
5
+ // https://fonts.google.com/icons?icon.set=Material+Symbols
6
+ // Use `font-display: block;` @see https://stackoverflow.com/q/41710834
7
+ @import url("https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=block");
8
+
9
+ .material-symbols-outlined {
10
+ font-variation-settings: "FILL" 0, "wght" 300, "GRAD" 0, "opsz" 24;
11
+ }
12
+
13
+ * {
14
+ scroll-behavior: smooth;
15
+ box-sizing: border-box;
16
+ border-width: 0;
17
+ border-style: solid;
18
+ }
19
+
20
+ :focus {
21
+ z-index: 1;
22
+ outline-width: 0;
23
+ }
24
+
25
+ :focus-visible {
26
+ outline-offset: -2px;
27
+ outline-width: 2px !important;
28
+ outline-style: solid;
29
+ outline-color: hsl(var(--hue) 100% 50% / 25%);
30
+ }
31
+
32
+ h1,
33
+ h2,
34
+ h3,
35
+ h4,
36
+ h5,
37
+ h6 {
38
+ margin: 0;
39
+ font-weight: var(--default-font-weight-bold);
40
+ }
41
+
42
+ strong {
43
+ font-weight: var(--default-font-weight-bold);
44
+ }
45
+
46
+ a {
47
+ color: var(--primary-accent-color-lighter);
48
+ text-decoration: none;
49
+ }
50
+
51
+ img,
52
+ svg,
53
+ iframe {
54
+ vertical-align: top;
55
+ }
56
+
57
+ button,
58
+ input,
59
+ textarea,
60
+ select,
61
+ option {
62
+ font-family: inherit;
63
+ font-size: inherit;
64
+ color: inherit;
65
+ }
66
+
67
+ p,
68
+ li {
69
+ line-height: 1.75;
70
+ }
71
+
72
+ [role="grid"] {
73
+ display: table;
74
+ width: 100%;
75
+
76
+ .colgroup {
77
+ display: table-column-group;
78
+
79
+ .col {
80
+ display: table-column;
81
+ }
82
+ }
83
+ }
84
+
85
+ code,
86
+ pre {
87
+ font-family: var(--monospace-font-family);
88
+ }
89
+
90
+ pre {
91
+ line-height: 1.5;
92
+ -webkit-user-select: text;
93
+ user-select: text;
94
+ }
95
+
96
+ dialog {
97
+ position: fixed;
98
+ inset: 0;
99
+ outline: 0;
100
+ margin: 0;
101
+ border: 0;
102
+ padding: 0;
103
+ width: 100%;
104
+ max-width: 100%;
105
+ height: 100%;
106
+ max-height: 100%;
107
+ color: inherit;
108
+ background: transparent;
109
+ -webkit-user-select: none;
110
+ user-select: none;
111
+ touch-action: none;
112
+ cursor: default;
113
+
114
+ &::backdrop {
115
+ background: transparent;
116
+ }
117
+ }
118
+
119
+ .thead[role="rowgroup"] {
120
+ display: table-header-group;
121
+ }
122
+
123
+ .tbody[role="rowgroup"] {
124
+ display: table-row-group;
125
+ }
126
+
127
+ [role="row"] {
128
+ display: table-row;
129
+ }
130
+
131
+ [role="columnheader"],
132
+ [role="gridcell"] {
133
+ display: table-cell;
134
+ }
@@ -0,0 +1,113 @@
1
+ :root {
2
+ // Base HSL
3
+ --hue: 210;
4
+ // Foreground
5
+ --highlight-foreground-color: hsl(var(--foreground-color-1-hsl));
6
+ --primary-foreground-color: hsl(var(--foreground-color-2-hsl));
7
+ --secondary-foreground-color: hsl(var(--foreground-color-3-hsl));
8
+ --ternary-foreground-color: hsl(var(--foreground-color-3-hsl));
9
+ --disabled-foreground-color: hsl(var(--foreground-color-4-hsl));
10
+ --danger-foreground-color: hsl(var(--danger-color));
11
+ // Background
12
+ --highlight-background-color: hsl(var(--background-color-5-hsl));
13
+ --content-background-color: hsl(var(--background-color-1-hsl));
14
+ --primary-background-color: hsl(var(--background-color-2-hsl));
15
+ --secondary-background-color: hsl(var(--background-color-3-hsl));
16
+ --ternary-background-color: hsl(var(--background-color-4-hsl));
17
+ --control-background-color: hsl(var(--background-color-1-hsl));
18
+ --disabled-background-color: hsl(var(--background-color-4-hsl));
19
+ --danger-background-color: hsl(var(--danger-color));
20
+ // Borders
21
+ --primary-border-color: hsl(var(--border-color-1-hsl));
22
+ --secondary-border-color: hsl(var(--border-color-2-hsl));
23
+ --control-border-color: hsl(var(--border-color-2-hsl));
24
+ // Shadows
25
+ --popup-shadow-color: hsl(var(--shadow-color) / 20%);
26
+ --popup-backdrop-color: hsl(var(--shadow-color) / 10%);
27
+ // Fonts
28
+ --default-font-family: "Merriweather Sans", sans-serif;
29
+ --default-font-size: 13px;
30
+ --default-font-weight-regular: 300;
31
+ --default-font-weight-bold: 600;
32
+ --monospace-font-family: "Noto Sans Mono", monospace;
33
+ --monospace-font-size: 13px;
34
+ // Controls
35
+ --control--small--border-width: 1px;
36
+ --control--small--border-radius: 2px;
37
+ --control--small--height: 24px;
38
+ --control--medium--border-width: 1px;
39
+ --control--medium--border-radius: 4px;
40
+ --control--medium--height: 32px;
41
+ --control--large--border-width: 1px;
42
+ --control--large--border-radius: 8px;
43
+ --control--large--height: 40px;
44
+ // Buttons
45
+ --button--small--border-radius: var(--control--small--border-radius);
46
+ --button--small--height: var(--control--small--height);
47
+ --button--medium--border-radius: var(--control--medium--border-radius);
48
+ --button--medium--height: var(--control--medium--height);
49
+ --button--large--border-radius: var(--control--large--border-radius);
50
+ --button--large--height: var(--control--large--height);
51
+ // Options & menu items
52
+ --option--small--border-radius: var(--control--small--border-radius);
53
+ --option--small--height: var(--control--small--height);
54
+ --option--medium--border-radius: var(--control--medium--border-radius);
55
+ --option--medium--height: var(--control--medium--height);
56
+ --option--large--border-radius: var(--control--large--border-radius);
57
+ --option--large--height: var(--control--large--height);
58
+ // Input
59
+ --input--small--border-radius: var(--control--small--border-radius);
60
+ --input--small--height: var(--control--small--height);
61
+ --input--medium--border-radius: var(--control--medium--border-radius);
62
+ --input--medium--height: var(--control--medium--height);
63
+ --input--large--border-radius: var(--control--large--border-radius);
64
+ --input--large--height: var(--control--large--height);
65
+ // Tab
66
+ --tab--small--height: var(--control--small--height);
67
+ --tab--medium--height: var(--control--medium--height);
68
+ --tab--large--height: var(--control--large--height);
69
+ }
70
+
71
+ :root[data-theme="light"] {
72
+ --foreground-color-1-hsl: var(--hue) 5% 0%; // highlight
73
+ --foreground-color-2-hsl: var(--hue) 5% 20%; // primary
74
+ --foreground-color-3-hsl: var(--hue) 5% 40%; // secondary
75
+ --foreground-color-4-hsl: var(--hue) 5% 60%; // ternary
76
+ --border-color-1-hsl: var(--hue) 5% 75%; // primary
77
+ --border-color-2-hsl: var(--hue) 5% 80%; // secondary/input
78
+ --background-color-1-hsl: var(--hue) 5% 100%; // content
79
+ --background-color-2-hsl: var(--hue) 5% 98%; // primary
80
+ --background-color-3-hsl: var(--hue) 5% 96%; // secondary/ternary
81
+ --background-color-4-hsl: var(--hue) 5% 94%; // disabled
82
+ --background-color-5-hsl: var(--hue) 5% 90%; // highlight
83
+ --shadow-color: var(--hue) 10% 0%;
84
+ // Accents
85
+ --primary-accent-color: hsl(var(--hue) 80% 45%);
86
+ --primary-accent-color-lighter: hsl(var(--hue) 80% 40%);
87
+ --primary-accent-color-darker: hsl(var(--hue) 80% 50%);
88
+ --primary-accent-color-foreground: hsl(var(--hue) 10% 100%); // white/inverted
89
+ // States
90
+ --danger-color: 0 68% 42%; // firebrick
91
+ }
92
+
93
+ :root[data-theme="dark"] {
94
+ --foreground-color-1-hsl: var(--hue) 10% 100%; // highlight
95
+ --foreground-color-2-hsl: var(--hue) 10% 80%; // primary
96
+ --foreground-color-3-hsl: var(--hue) 10% 60%; // secondary
97
+ --foreground-color-4-hsl: var(--hue) 10% 40%; // ternary
98
+ --border-color-1-hsl: var(--hue) 10% 25%; // primary
99
+ --border-color-2-hsl: var(--hue) 10% 20%; // secondary/input
100
+ --background-color-1-hsl: var(--hue) 10% 8%; // content
101
+ --background-color-2-hsl: var(--hue) 10% 10%; // primary
102
+ --background-color-3-hsl: var(--hue) 10% 12%; // secondary/ternary
103
+ --background-color-4-hsl: var(--hue) 10% 14%; // disabled
104
+ --background-color-5-hsl: var(--hue) 10% 18%; // highlight
105
+ --shadow-color: var(--hue) 10% 0%;
106
+ // Accents
107
+ --primary-accent-color: hsl(var(--hue) 100% 45%); // 4.57 AA w/ #FFF foreground color
108
+ --primary-accent-color-lighter: hsl(var(--hue) 100% 50%);
109
+ --primary-accent-color-darker: hsl(var(--hue) 100% 40%);
110
+ --primary-accent-color-foreground: hsl(var(--hue) 10% 100%); // white
111
+ // States
112
+ --danger-color: 0 68% 42%; // firebrick
113
+ }
File without changes
File without changes