@rolemodel/optics 2.1.0 → 2.1.2

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 (45) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/dist/LICENSE +21 -0
  3. package/dist/README.md +78 -0
  4. package/dist/css/optics.css +4963 -9
  5. package/dist/css/optics.min.css +1 -4970
  6. package/dist/package.json +87 -0
  7. package/package.json +6 -4
  8. package/postcss.config.js +6 -3
  9. package/dist/css/components/accordion.css +0 -66
  10. package/dist/css/components/alert.css +0 -171
  11. package/dist/css/components/avatar.css +0 -95
  12. package/dist/css/components/badge.css +0 -73
  13. package/dist/css/components/breadcrumbs.css +0 -37
  14. package/dist/css/components/button.css +0 -273
  15. package/dist/css/components/button_group.css +0 -47
  16. package/dist/css/components/card.css +0 -62
  17. package/dist/css/components/confirm-dialog.css +0 -80
  18. package/dist/css/components/divider.css +0 -55
  19. package/dist/css/components/form.css +0 -360
  20. package/dist/css/components/icon.css +0 -121
  21. package/dist/css/components/index.css +0 -24
  22. package/dist/css/components/modal.css +0 -149
  23. package/dist/css/components/navbar.css +0 -60
  24. package/dist/css/components/pagination.css +0 -24
  25. package/dist/css/components/side_panel.css +0 -90
  26. package/dist/css/components/sidebar.css +0 -138
  27. package/dist/css/components/spinner.css +0 -52
  28. package/dist/css/components/switch.css +0 -107
  29. package/dist/css/components/tab.css +0 -76
  30. package/dist/css/components/table.css +0 -133
  31. package/dist/css/components/tag.css +0 -168
  32. package/dist/css/components/text_pair.css +0 -55
  33. package/dist/css/components/tooltip.css +0 -134
  34. package/dist/css/core/base.css +0 -95
  35. package/dist/css/core/fonts/icon_fonts.css +0 -8
  36. package/dist/css/core/fonts/index.css +0 -8
  37. package/dist/css/core/fonts/text_fonts.css +0 -16
  38. package/dist/css/core/layout.css +0 -43
  39. package/dist/css/core/tokens/base_tokens.css +0 -338
  40. package/dist/css/core/tokens/index.css +0 -2
  41. package/dist/css/core/tokens/scale_color_tokens.css +0 -1498
  42. package/dist/css/core/utilities.css +0 -429
  43. package/dist/css/recipes/16six-sidebar.css +0 -63
  44. package/dist/css/recipes/aligned-header.css +0 -16
  45. package/dist/css/recipes/domains-sidebar.css +0 -40
@@ -0,0 +1,87 @@
1
+ {
2
+ "name": "@rolemodel/optics",
3
+ "version": "2.1.2",
4
+ "packageManager": "yarn@4.2.2",
5
+ "description": "Optics is a css package that provides base styles and components that can be integrated and customized in a variety of projects.",
6
+ "main": "dist/css/optics.css",
7
+ "scripts": {
8
+ "test": "exit 0",
9
+ "build": "yarn build:css && yarn build:css-min && yarn build:tokens && yarn build:files",
10
+ "build:css": "postcss src/optics.css -o dist/css/optics.css",
11
+ "build:css-min": "postcss src/optics.css -o dist/css/optics.min.css --env=minify",
12
+ "build:tokens": "node build_token_json --source=src/core/tokens --output=dist/tokens/tokens.json",
13
+ "build:files": "mkdir -p dist/css/addons; cp LICENSE README.md package.json dist/; cp -r src/addons dist/css",
14
+ "storybook": "storybook dev -p 6006 --docs",
15
+ "build-storybook": "storybook build --docs",
16
+ "lint": "yarn lint:js && yarn lint:css",
17
+ "lint-fix": "yarn lint:js --fix && yarn lint:css --fix",
18
+ "lint:js": "eslint 'src/stories/**/*.js'",
19
+ "lint:css": "stylelint 'src/**/*.css'",
20
+ "prettier": "prettier -w .",
21
+ "prettier-check": "prettier -c .",
22
+ "sanity-check": "yarn lint && yarn prettier && yarn build && yarn build-storybook && rm -rf ./dist && rm -rf ./storybook-static",
23
+ "generate": "node ./tools/generate.js"
24
+ },
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "git+https://github.com/RoleModel/optics.git"
28
+ },
29
+ "keywords": [
30
+ "Design",
31
+ "CSS",
32
+ "System",
33
+ "RoleModel",
34
+ "Optics"
35
+ ],
36
+ "author": "RoleModel Software",
37
+ "license": "MIT",
38
+ "bugs": {
39
+ "url": "https://github.com/RoleModel/optics/issues"
40
+ },
41
+ "homepage": "https://github.com/RoleModel/optics#readme",
42
+ "publishConfig": {
43
+ "@RoleModel:registry": "https://npm.pkg.github.com"
44
+ },
45
+ "dependencies": {
46
+ "modern-css-reset": "^1.4.0"
47
+ },
48
+ "devDependencies": {
49
+ "@babel/preset-env": "^7.23.9",
50
+ "@storybook/addon-essentials": "^8.5.3",
51
+ "@storybook/blocks": "^8.5.3",
52
+ "@storybook/html": "^8.5.3",
53
+ "@storybook/html-vite": "^8.5.3",
54
+ "@storybook/manager-api": "^8.5.3",
55
+ "@storybook/preview-api": "^8.5.3",
56
+ "@storybook/test": "^8.5.3",
57
+ "@storybook/theming": "^8.5.3",
58
+ "cssnano": "^7.0.6",
59
+ "eslint": "^8.45.0",
60
+ "eslint-config-prettier": "^9.1.0",
61
+ "eslint-config-standard": "^17.1.0",
62
+ "eslint-plugin-import": "^2.27.5",
63
+ "eslint-plugin-n": "^16.0.1",
64
+ "eslint-plugin-promise": "^6.1.1",
65
+ "eslint-plugin-storybook": "^0.11.2",
66
+ "generate-template-files": "^3.2.1",
67
+ "postcss": "^8.4.38",
68
+ "postcss-cli": "^11.0.0",
69
+ "postcss-import": "^16.1.0",
70
+ "prettier": "^3.0.0",
71
+ "storybook": "^8.5.3",
72
+ "storybook-design-token": "^3.1.0",
73
+ "style-loader": "^3.3.3",
74
+ "stylelint": "^16.2.1",
75
+ "stylelint-config-idiomatic-order": "^10.0.0",
76
+ "stylelint-prettier": "^5.0.0",
77
+ "vite": "^5.4.14"
78
+ },
79
+ "peerDependencies": {
80
+ "tom-select": "^2.0.0"
81
+ },
82
+ "peerDependenciesMeta": {
83
+ "tom-select": {
84
+ "optional": true
85
+ }
86
+ }
87
+ }
package/package.json CHANGED
@@ -1,15 +1,16 @@
1
1
  {
2
2
  "name": "@rolemodel/optics",
3
- "version": "2.1.0",
3
+ "version": "2.1.2",
4
4
  "packageManager": "yarn@4.2.2",
5
5
  "description": "Optics is a css package that provides base styles and components that can be integrated and customized in a variety of projects.",
6
6
  "main": "dist/css/optics.css",
7
7
  "scripts": {
8
8
  "test": "exit 0",
9
- "build": "yarn build:css && yarn build:css-min && yarn build:tokens",
10
- "build:css": "mkdir -p dist/css; rsync -a src/ dist/css --exclude stories",
11
- "build:css-min": "postcss src/optics.css -o dist/css/optics.min.css",
9
+ "build": "yarn build:css && yarn build:css-min && yarn build:tokens && yarn build:files",
10
+ "build:css": "postcss src/optics.css -o dist/css/optics.css",
11
+ "build:css-min": "postcss src/optics.css -o dist/css/optics.min.css --env=minify",
12
12
  "build:tokens": "node build_token_json --source=src/core/tokens --output=dist/tokens/tokens.json",
13
+ "build:files": "mkdir -p dist/css/addons; cp LICENSE README.md package.json dist/; cp -r src/addons dist/css",
13
14
  "storybook": "storybook dev -p 6006 --docs",
14
15
  "build-storybook": "storybook build --docs",
15
16
  "lint": "yarn lint:js && yarn lint:css",
@@ -54,6 +55,7 @@
54
55
  "@storybook/preview-api": "^8.5.3",
55
56
  "@storybook/test": "^8.5.3",
56
57
  "@storybook/theming": "^8.5.3",
58
+ "cssnano": "^7.0.6",
57
59
  "eslint": "^8.45.0",
58
60
  "eslint-config-prettier": "^9.1.0",
59
61
  "eslint-config-standard": "^17.1.0",
package/postcss.config.js CHANGED
@@ -1,3 +1,6 @@
1
- module.exports = {
2
- plugins: [require('postcss-import')],
3
- }
1
+ module.exports = (context) => ({
2
+ plugins: {
3
+ 'postcss-import': {},
4
+ cssnano: context.env === 'minify' ? {} : false,
5
+ },
6
+ })
@@ -1,66 +0,0 @@
1
- .accordion {
2
- /* Public API (customizable component options) */
3
- --_op-accordion-summary-min-height: calc(8 * var(--op-size-unit)); /* 32px */
4
-
5
- overflow: hidden;
6
- interpolate-size: allow-keywords;
7
-
8
- /* Elements */
9
-
10
- summary {
11
- display: grid;
12
- min-height: var(--_op-accordion-summary-min-height);
13
- align-items: center;
14
- cursor: pointer;
15
- gap: var(--op-space-2x-small);
16
- grid-template-columns: auto 1fr auto;
17
-
18
- &::marker,
19
- &::-webkit-details-marker {
20
- display: none;
21
- content: '';
22
- }
23
-
24
- .accordion__label {
25
- color: var(--op-color-neutral-on-plus-max);
26
- font-size: var(--op-font-x-small);
27
- font-weight: var(--op-font-weight-semi-bold);
28
- }
29
-
30
- .accordion__marker {
31
- --__op-icon-font-size: var(--_op-icon-font-size-x-large);
32
- --__op-icon-optical-size: var(--_op-icon-optical-size-x-large);
33
-
34
- justify-self: flex-end;
35
- transition: var(--op-transition-accordion);
36
- user-select: none;
37
- }
38
- }
39
-
40
- &::details-content {
41
- height: 0;
42
- transition: var(--op-transition-accordion-content);
43
- }
44
-
45
- &[open] {
46
- summary .accordion__marker {
47
- rotate: 0.25turn;
48
- }
49
-
50
- &::details-content {
51
- height: auto;
52
- }
53
- }
54
-
55
- /* Modifiers */
56
-
57
- &.accordion--disable-animation {
58
- summary .accordion__marker {
59
- transition: none;
60
- }
61
-
62
- &::details-content {
63
- transition: none;
64
- }
65
- }
66
- }
@@ -1,171 +0,0 @@
1
- .alert {
2
- display: flex;
3
- align-items: center;
4
- padding: var(--op-space-x-small) var(--op-space-medium);
5
- border-radius: var(--op-radius-medium);
6
- gap: var(--op-space-small);
7
-
8
- /* Elements */
9
-
10
- .alert__icon {
11
- --__op-icon-font-size: var(--_op-icon-font-size-large);
12
- --__op-icon-optical-size: var(--_op-icon-optical-size-large);
13
- --__op-icon-weight: var(--_op-icon-weight-bold);
14
-
15
- line-height: var(--op-line-height-dense);
16
- }
17
-
18
- .alert__messages {
19
- display: flex;
20
- flex: 1;
21
- flex-direction: column;
22
- gap: var(--op-space-2x-small);
23
- }
24
-
25
- .alert__title {
26
- font-size: var(--op-font-medium);
27
- font-weight: var(--op-font-weight-medium);
28
- }
29
-
30
- .alert__description {
31
- font-size: var(--op-font-small);
32
- }
33
-
34
- /* Modifiers */
35
-
36
- &.alert--flash {
37
- position: fixed;
38
- z-index: var(--op-z-index-alert-group);
39
- top: var(--op-space-large);
40
- right: var(--op-space-large);
41
- animation: var(--op-animation-flash);
42
- }
43
-
44
- &.alert--warning {
45
- background-color: var(--op-color-alerts-warning-plus-eight);
46
- box-shadow: var(--op-border-all) var(--op-color-alerts-warning-base);
47
- color: var(--op-color-alerts-warning-on-plus-eight);
48
-
49
- .alert__title {
50
- color: var(--op-color-alerts-warning-on-plus-eight-alt);
51
- }
52
-
53
- &.alert--muted {
54
- background-color: var(--op-color-alerts-warning-plus-five);
55
- box-shadow: none;
56
- color: var(--op-color-alerts-warning-on-plus-five);
57
-
58
- .alert__title {
59
- color: var(--op-color-alerts-warning-on-plus-five-alt);
60
- }
61
- }
62
-
63
- &.alert--filled {
64
- background-color: var(--op-color-alerts-warning-base);
65
- box-shadow: none;
66
- color: var(--op-color-alerts-warning-on-base);
67
-
68
- .alert__title {
69
- color: var(--op-color-alerts-warning-on-base-alt);
70
- }
71
- }
72
- }
73
-
74
- /* alert--alert is an alias for alert--danger. See Alert.mdx for reasoning. */
75
- &.alert--danger,
76
- &.alert--alert {
77
- background-color: var(--op-color-alerts-danger-plus-eight);
78
- box-shadow: var(--op-border-all) var(--op-color-alerts-danger-base);
79
- color: var(--op-color-alerts-danger-on-plus-eight);
80
-
81
- /* stylelint-disable no-descending-specificity */
82
- .alert__title {
83
- color: var(--op-color-alerts-danger-on-plus-eight-alt);
84
- }
85
- /* stylelint-enable no-descending-specificity */
86
-
87
- &.alert--muted {
88
- background-color: var(--op-color-alerts-danger-plus-five);
89
- box-shadow: none;
90
- color: var(--op-color-alerts-danger-on-plus-five);
91
-
92
- .alert__title {
93
- color: var(--op-color-alerts-danger-on-plus-five-alt);
94
- }
95
- }
96
-
97
- &.alert--filled {
98
- background-color: var(--op-color-alerts-danger-base);
99
- box-shadow: none;
100
- color: var(--op-color-alerts-danger-on-base);
101
-
102
- .alert__title {
103
- color: var(--op-color-alerts-danger-on-base-alt);
104
- }
105
- }
106
- }
107
-
108
- &.alert--info {
109
- background-color: var(--op-color-alerts-info-plus-eight);
110
- box-shadow: var(--op-border-all) var(--op-color-alerts-info-base);
111
- color: var(--op-color-alerts-info-on-plus-eight);
112
-
113
- /* stylelint-disable no-descending-specificity */
114
- .alert__title {
115
- color: var(--op-color-alerts-info-on-plus-eight-alt);
116
- }
117
- /* stylelint-enable no-descending-specificity */
118
-
119
- &.alert--muted {
120
- background-color: var(--op-color-alerts-info-plus-five);
121
- box-shadow: none;
122
- color: var(--op-color-alerts-info-on-plus-five);
123
-
124
- .alert__title {
125
- color: var(--op-color-alerts-info-on-plus-five-alt);
126
- }
127
- }
128
-
129
- &.alert--filled {
130
- background-color: var(--op-color-alerts-info-base);
131
- box-shadow: none;
132
- color: var(--op-color-alerts-info-on-base);
133
-
134
- .alert__title {
135
- color: var(--op-color-alerts-info-on-base-alt);
136
- }
137
- }
138
- }
139
-
140
- &.alert--notice {
141
- background-color: var(--op-color-alerts-notice-plus-eight);
142
- box-shadow: var(--op-border-all) var(--op-color-alerts-notice-base);
143
- color: var(--op-color-alerts-notice-on-plus-eight);
144
-
145
- /* stylelint-disable no-descending-specificity */
146
- .alert__title {
147
- color: var(--op-color-alerts-notice-on-plus-eight-alt);
148
- }
149
- /* stylelint-enable no-descending-specificity */
150
-
151
- &.alert--muted {
152
- background-color: var(--op-color-alerts-notice-plus-five);
153
- box-shadow: none;
154
- color: var(--op-color-alerts-notice-on-plus-five);
155
-
156
- .alert__title {
157
- color: var(--op-color-alerts-notice-on-plus-five-alt);
158
- }
159
- }
160
-
161
- &.alert--filled {
162
- background-color: var(--op-color-alerts-notice-base);
163
- box-shadow: none;
164
- color: var(--op-color-alerts-notice-on-base);
165
-
166
- .alert__title {
167
- color: var(--op-color-alerts-notice-on-base-alt);
168
- }
169
- }
170
- }
171
- }
@@ -1,95 +0,0 @@
1
- .avatar {
2
- /* Public API (customizable component options) */
3
- --_op-avatar-border-radius: var(--op-radius-circle);
4
- --_op-avatar-inner-border-color: var(--op-color-neutral-minus-max);
5
- --_op-avatar-outer-border-color: var(--op-color-neutral-base);
6
- --_op-avatar-inner-border-width: calc(var(--op-border-width) + var(--op-border-width-large));
7
- --_op-avatar-outer-border-width: var(--op-border-width-large);
8
- --_op-avatar-disabled-opacity: var(--op-opacity-disabled);
9
- --_op-avatar-hover-opacity: var(--op-opacity-overlay);
10
- --_op-avatar-size-small: calc(8 * var(--op-size-unit)); /* 32px */
11
- --_op-avatar-size-medium: calc(10 * var(--op-size-unit)); /* 40px */
12
- --_op-avatar-size-large: calc(14 * var(--op-size-unit)); /* 56px */
13
-
14
- /* Private API (component option defaults) */
15
- --__op-avatar-size: var(--_op-avatar-size-large);
16
-
17
- position: relative;
18
- z-index: 1;
19
- display: block;
20
- overflow: hidden;
21
- width: var(--__op-avatar-size);
22
- min-width: var(--__op-avatar-size);
23
- height: var(--__op-avatar-size);
24
- min-height: var(--__op-avatar-size);
25
- border-radius: var(--_op-avatar-border-radius);
26
-
27
- &::before {
28
- position: absolute;
29
- z-index: 2;
30
- content: '';
31
- inset: 0;
32
- }
33
-
34
- &::after {
35
- position: absolute;
36
- z-index: 3;
37
- border-radius: var(--_op-avatar-border-radius);
38
- box-shadow:
39
- inset 0 0 0 var(--_op-avatar-outer-border-width) var(--_op-avatar-outer-border-color),
40
- inset 0 0 0 var(--_op-avatar-inner-border-width) var(--_op-avatar-inner-border-color);
41
- content: '';
42
- inset: 0;
43
- }
44
-
45
- img {
46
- width: 100%;
47
- height: 100%;
48
- object-fit: cover;
49
- }
50
-
51
- /* Disabled State */
52
- &.avatar--disabled {
53
- opacity: var(--_op-avatar-disabled-opacity);
54
- pointer-events: none;
55
- }
56
-
57
- /* Focus State */
58
- &:focus,
59
- &:focus-visible,
60
- &:focus-within {
61
- outline: none;
62
- }
63
-
64
- /* Hover State */
65
- &:hover:not(div, .avatar--disabled) {
66
- --_op-avatar-inner-border-color: var(--op-color-primary-base);
67
- --_op-avatar-outer-border-color: var(--op-color-primary-plus-one);
68
-
69
- cursor: pointer;
70
-
71
- &::before {
72
- background-color: var(--op-color-primary-base);
73
- opacity: var(--_op-avatar-hover-opacity);
74
- }
75
- }
76
-
77
- &:focus-visible:not(.avatar--disabled) {
78
- --_op-avatar-outer-border-color: var(--op-color-primary-base);
79
-
80
- cursor: pointer;
81
- }
82
-
83
- /* Size Modifiers */
84
- &.avatar--small {
85
- --__op-avatar-size: var(--_op-avatar-size-small);
86
- }
87
-
88
- &.avatar--medium {
89
- --__op-avatar-size: var(--_op-avatar-size-medium);
90
- }
91
-
92
- &.avatar--large {
93
- --__op-avatar-size: var(--_op-avatar-size-large);
94
- }
95
- }
@@ -1,73 +0,0 @@
1
- .badge {
2
- display: inline-flex;
3
- align-items: center;
4
- justify-content: center;
5
- border-radius: var(--op-radius-medium);
6
- background-color: var(--op-color-neutral-base);
7
- color: var(--op-color-neutral-on-base);
8
- cursor: inherit;
9
- font-size: var(--op-font-x-small);
10
- font-weight: var(--op-font-weight-bold);
11
- gap: var(--op-space-x-small);
12
- letter-spacing: var(--op-letter-spacing-label);
13
- line-height: var(--op-line-height-dense);
14
- padding-block: var(--op-space-2x-small);
15
- padding-inline: var(--op-space-x-small);
16
- user-select: none;
17
- white-space: nowrap;
18
-
19
- /* Elements */
20
-
21
- .material-symbols-outlined {
22
- font-size: var(--op-font-small);
23
- }
24
-
25
- /* Modifiers */
26
-
27
- &.badge--primary {
28
- background-color: var(--op-color-primary-base);
29
- color: var(--op-color-primary-on-base);
30
- }
31
-
32
- &.badge--warning {
33
- background-color: var(--op-color-alerts-warning-base);
34
- color: var(--op-color-alerts-warning-on-base);
35
- }
36
-
37
- &.badge--danger {
38
- background-color: var(--op-color-alerts-danger-base);
39
- color: var(--op-color-alerts-danger-on-base);
40
- }
41
-
42
- &.badge--info {
43
- background-color: var(--op-color-alerts-info-base);
44
- color: var(--op-color-alerts-info-on-base);
45
- }
46
-
47
- &.badge--notice {
48
- background-color: var(--op-color-alerts-notice-base);
49
- color: var(--op-color-alerts-notice-on-base);
50
- }
51
-
52
- &.badge--pill {
53
- border-radius: var(--op-radius-pill);
54
- }
55
-
56
- &.badge--notification-right {
57
- position: absolute;
58
- box-shadow: 0 0 0 var(--op-border-width-large) var(--op-color-neutral-plus-max);
59
- inset-block-start: 0;
60
- inset-inline-end: 0;
61
- pointer-events: none;
62
- transform: translateY(-50%) translateX(50%);
63
- }
64
-
65
- &.badge--notification-left {
66
- position: absolute;
67
- box-shadow: 0 0 0 var(--op-border-width-large) var(--op-color-neutral-plus-max);
68
- inset-block-start: 0;
69
- inset-inline-start: 0;
70
- pointer-events: none;
71
- transform: translateY(-50%) translateX(-50%);
72
- }
73
- }
@@ -1,37 +0,0 @@
1
- .breadcrumbs {
2
- /* Public API (customizable component options) */
3
- --_op-breadcrumbs-font-size-small: var(--op-font-x-small);
4
- --_op-breadcrumbs-font-size-large: var(--op-font-small);
5
-
6
- /* Private API (component option defaults) */
7
- --__op-breadcrumbs-font-size: var(--_op-breadcrumbs-font-size-small);
8
-
9
- display: flex;
10
- flex-wrap: wrap;
11
- align-items: baseline;
12
- gap: var(--op-space-x-small);
13
-
14
- /* Elements */
15
- .breadcrumbs__link {
16
- font-size: var(--__op-breadcrumbs-font-size);
17
- text-decoration: none;
18
-
19
- &:hover {
20
- text-decoration: underline;
21
- }
22
- }
23
-
24
- .breadcrumbs__text {
25
- font-size: var(--__op-breadcrumbs-font-size);
26
- font-weight: var(--op-font-weight-bold);
27
- }
28
-
29
- /* Modifiers */
30
- &.breadcrumbs--small {
31
- --__op-breadcrumbs-font-size: var(--_op-breadcrumbs-font-size-small);
32
- }
33
-
34
- &.breadcrumbs--large {
35
- --__op-breadcrumbs-font-size: var(--_op-breadcrumbs-font-size-large);
36
- }
37
- }