opui-css 4.1.0 → 5.0.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 (114) hide show
  1. package/CHANGELOG.md +282 -247
  2. package/LICENSE +21 -21
  3. package/MIGRATING.md +127 -105
  4. package/README.md +87 -87
  5. package/astro/index.ts +46 -46
  6. package/components/AGENTS.md +248 -247
  7. package/components/Accordion/Accordion.astro +42 -42
  8. package/components/Anchor/Anchor.astro +51 -51
  9. package/components/Avatar/Avatar.astro +38 -44
  10. package/components/Badge/Badge.astro +59 -54
  11. package/components/Button/Button.astro +45 -45
  12. package/components/ButtonGroup/ButtonGroup.astro +29 -29
  13. package/components/Callout/Callout.astro +75 -75
  14. package/components/Card/Card.astro +36 -36
  15. package/components/Checkbox/Checkbox.astro +76 -76
  16. package/components/Checkbox/CheckboxInput.astro +32 -32
  17. package/components/Chip/Chip.astro +37 -37
  18. package/components/ClassicSelect/ClassicSelect.astro +83 -83
  19. package/components/DescriptionList/Description.astro +12 -12
  20. package/components/DescriptionList/DescriptionList.astro +22 -22
  21. package/components/DescriptionList/Item.astro +12 -12
  22. package/components/DescriptionList/Term.astro +12 -12
  23. package/components/DescriptionList/index.ts +12 -12
  24. package/components/Dialog/Dialog.astro +41 -41
  25. package/components/Divider/Divider.astro +17 -14
  26. package/components/Drawer/Drawer.astro +49 -49
  27. package/components/Drawer/DrawerFooter.astro +14 -14
  28. package/components/Drawer/DrawerHeader.astro +31 -31
  29. package/components/FieldDescription/FieldDescription.astro +13 -13
  30. package/components/FieldGroup/FieldGroup.astro +31 -31
  31. package/components/FieldLegend/FieldLegend.astro +15 -15
  32. package/components/FieldSet/FieldSet.astro +15 -15
  33. package/components/Form/Form.astro +15 -15
  34. package/components/IconButton/IconButton.astro +26 -26
  35. package/components/List/List.astro +36 -36
  36. package/components/ListItem/ListItem.astro +118 -118
  37. package/components/Progress/Progress.astro +41 -40
  38. package/components/Radio/Radio.astro +70 -70
  39. package/components/Radio/RadioInput.astro +24 -24
  40. package/components/Range/Range.astro +136 -136
  41. package/components/Select/Select.astro +106 -106
  42. package/components/Switch/Switch.astro +101 -101
  43. package/components/Switch/SwitchInput.astro +25 -25
  44. package/components/Table/Body.astro +13 -13
  45. package/components/Table/Cell.astro +13 -13
  46. package/components/Table/Column.astro +15 -15
  47. package/components/Table/ColumnGroup.astro +13 -13
  48. package/components/Table/Head.astro +13 -13
  49. package/components/Table/HeaderCell.astro +13 -13
  50. package/components/Table/Row.astro +13 -13
  51. package/components/Table/Table.astro +18 -15
  52. package/components/Table/index.ts +20 -20
  53. package/components/Tabs/Tabs.astro +28 -28
  54. package/components/Tabs/TabsItem.astro +47 -47
  55. package/components/Tabs/TabsPanel.astro +21 -21
  56. package/components/Tabs/TabsTab.astro +19 -19
  57. package/components/Tabs/index.ts +14 -14
  58. package/components/TextField/TextField.astro +128 -128
  59. package/components/Textarea/Textarea.astro +106 -106
  60. package/components/Toast/Toast.astro +42 -42
  61. package/components/ToggleButton/ToggleButton.astro +53 -53
  62. package/components/ToggleGroup/ToggleGroup.astro +49 -49
  63. package/components/Tooltip/Tooltip.astro +30 -30
  64. package/core/normalize.css +194 -194
  65. package/core/palette.css +59 -59
  66. package/core/utils.css +71 -71
  67. package/css/components/accordion.css +174 -174
  68. package/css/components/anchor.css +27 -27
  69. package/css/components/avatar.css +65 -65
  70. package/css/components/badge.css +107 -107
  71. package/css/components/button-group.css +179 -179
  72. package/css/components/button.css +215 -215
  73. package/css/components/callout.css +109 -109
  74. package/css/components/card.css +117 -117
  75. package/css/components/checkbox.css +205 -205
  76. package/css/components/chip.css +87 -87
  77. package/css/components/description-list.css +80 -77
  78. package/css/components/dialog.css +68 -68
  79. package/css/components/divider.css +20 -20
  80. package/css/components/drawer.css +171 -171
  81. package/css/components/form.css +146 -146
  82. package/css/components/icon-button.css +139 -139
  83. package/css/components/link.css +21 -21
  84. package/css/components/list.css +345 -345
  85. package/css/components/progress.css +102 -97
  86. package/css/components/radio.css +172 -172
  87. package/css/components/range.css +337 -337
  88. package/css/components/select.css +169 -169
  89. package/css/components/spinner.css +37 -37
  90. package/css/components/switch.css +268 -268
  91. package/css/components/table.css +179 -179
  92. package/css/components/tabs.css +83 -77
  93. package/css/components/text-field.css +450 -450
  94. package/css/components/text-input.css +64 -64
  95. package/css/components/textarea.css +24 -24
  96. package/css/components/toast.css +161 -161
  97. package/css/components/toggle-button.css +87 -87
  98. package/css/components/toggle-group.css +56 -56
  99. package/css/components/tooltip.css +67 -67
  100. package/css/components/typography.css +585 -585
  101. package/css/components.css +41 -41
  102. package/css/imports.css +16 -16
  103. package/css/js/checkbox.js +21 -21
  104. package/css/js/toast.js +94 -94
  105. package/css/theme.css +132 -132
  106. package/dist/op.css +65 -65
  107. package/dist/op.css.map +1 -1
  108. package/dist/opui.components.css +5159 -5145
  109. package/dist/opui.components.css.map +1 -1
  110. package/dist/opui.css +5668 -5654
  111. package/dist/opui.css.map +1 -1
  112. package/env.d.ts +14 -14
  113. package/open-props.css +9 -9
  114. package/package.json +81 -81
@@ -1,118 +1,118 @@
1
- ---
2
- type Props = {
3
- as?: "a" | "button" | "div"
4
- borderTop?: boolean
5
- class?: string
6
- description?: string
7
- for?: string
8
- headline?: string
9
- inset?: boolean
10
- type?: "checkbox" | "radio" | "switch"
11
- [key: string]: any
12
- }
13
-
14
- export const title = "List Item"
15
-
16
- const {
17
- as: Tag,
18
- borderTop,
19
- class: className,
20
- description,
21
- for: htmlFor,
22
- headline,
23
- inset,
24
- type,
25
- ...rest
26
- } = Astro.props
27
-
28
- const hasLabel =
29
- type && (type === "checkbox" || type === "radio" || type === "switch")
30
- const labelClass = type || ""
31
- const liProps = Tag ? {} : rest
32
- const innerProps = Tag ? rest : {}
33
- ---
34
-
35
- <li
36
- class:list={[
37
- {
38
- "border-top": borderTop,
39
- inset,
40
- },
41
- className,
42
- ]}
43
- {...liProps}
44
- >
45
- {
46
- // Label + checkbox/radio/switch
47
- hasLabel ? (
48
- <label class={labelClass} for={htmlFor}>
49
- {Astro.slots.start && (
50
- <div class="start">
51
- <slot name="start" />
52
- </div>
53
- )}
54
- {Astro.slots.text || headline || description ? (
55
- <div class="text">
56
- {headline && <p>{headline}</p>}
57
- {description && <p>{description}</p>}
58
- <slot name="text" />
59
- </div>
60
- ) : null}
61
- {Astro.slots.end && (
62
- <div class="end">
63
- <slot name="end" />
64
- </div>
65
- )}
66
- <slot />
67
- </label>
68
- ) : // With custom tag
69
- Tag ? (
70
- <Tag {...innerProps}>
71
- {Astro.slots.start && (
72
- <div class="start">
73
- <slot name="start" />
74
- </div>
75
- )}
76
- {headline || description || Astro.slots.text ? (
77
- <div class="text">
78
- {headline && <p>{headline}</p>}
79
- {description && <p>{description}</p>}
80
- <slot name="text" />
81
- <slot />
82
- </div>
83
- ) : (
84
- <slot />
85
- )}
86
- {Astro.slots.end && (
87
- <div class="end">
88
- <slot name="end" />
89
- </div>
90
- )}
91
- </Tag>
92
- ) : (
93
- // Without custom tag
94
- <>
95
- {Astro.slots.start && (
96
- <div class="start">
97
- <slot name="start" />
98
- </div>
99
- )}
100
- {headline || description || Astro.slots.text ? (
101
- <div class="text">
102
- {headline && <p>{headline}</p>}
103
- {description && <p>{description}</p>}
104
- <slot name="text" />
105
- <slot />
106
- </div>
107
- ) : (
108
- <slot />
109
- )}
110
- {Astro.slots.end && (
111
- <div class="end">
112
- <slot name="end" />
113
- </div>
114
- )}
115
- </>
116
- )
117
- }
118
- </li>
1
+ ---
2
+ type Props = {
3
+ as?: "a" | "button" | "div"
4
+ borderTop?: boolean
5
+ class?: string
6
+ description?: string
7
+ for?: string
8
+ headline?: string
9
+ inset?: boolean
10
+ type?: "checkbox" | "radio" | "switch"
11
+ [key: string]: any
12
+ }
13
+
14
+ export const title = "List Item"
15
+
16
+ const {
17
+ as: Tag,
18
+ borderTop,
19
+ class: className,
20
+ description,
21
+ for: htmlFor,
22
+ headline,
23
+ inset,
24
+ type,
25
+ ...rest
26
+ } = Astro.props
27
+
28
+ const hasLabel =
29
+ type && (type === "checkbox" || type === "radio" || type === "switch")
30
+ const labelClass = type || ""
31
+ const liProps = Tag ? {} : rest
32
+ const innerProps = Tag ? rest : {}
33
+ ---
34
+
35
+ <li
36
+ class:list={[
37
+ {
38
+ "ui-border-top": borderTop,
39
+ "ui-inset": inset,
40
+ },
41
+ className,
42
+ ]}
43
+ {...liProps}
44
+ >
45
+ {
46
+ // Label + checkbox/radio/switch
47
+ hasLabel ? (
48
+ <label class={labelClass && `ui-${labelClass}`} for={htmlFor}>
49
+ {Astro.slots.start && (
50
+ <div class="ui-start">
51
+ <slot name="start" />
52
+ </div>
53
+ )}
54
+ {Astro.slots.text || headline || description ? (
55
+ <div class="ui-text">
56
+ {headline && <p>{headline}</p>}
57
+ {description && <p>{description}</p>}
58
+ <slot name="text" />
59
+ </div>
60
+ ) : null}
61
+ {Astro.slots.end && (
62
+ <div class="ui-end">
63
+ <slot name="end" />
64
+ </div>
65
+ )}
66
+ <slot />
67
+ </label>
68
+ ) : // With custom tag
69
+ Tag ? (
70
+ <Tag {...innerProps}>
71
+ {Astro.slots.start && (
72
+ <div class="ui-start">
73
+ <slot name="start" />
74
+ </div>
75
+ )}
76
+ {headline || description || Astro.slots.text ? (
77
+ <div class="ui-text">
78
+ {headline && <p>{headline}</p>}
79
+ {description && <p>{description}</p>}
80
+ <slot name="text" />
81
+ <slot />
82
+ </div>
83
+ ) : (
84
+ <slot />
85
+ )}
86
+ {Astro.slots.end && (
87
+ <div class="ui-end">
88
+ <slot name="end" />
89
+ </div>
90
+ )}
91
+ </Tag>
92
+ ) : (
93
+ // Without custom tag
94
+ <>
95
+ {Astro.slots.start && (
96
+ <div class="ui-start">
97
+ <slot name="start" />
98
+ </div>
99
+ )}
100
+ {headline || description || Astro.slots.text ? (
101
+ <div class="ui-text">
102
+ {headline && <p>{headline}</p>}
103
+ {description && <p>{description}</p>}
104
+ <slot name="text" />
105
+ <slot />
106
+ </div>
107
+ ) : (
108
+ <slot />
109
+ )}
110
+ {Astro.slots.end && (
111
+ <div class="ui-end">
112
+ <slot name="end" />
113
+ </div>
114
+ )}
115
+ </>
116
+ )
117
+ }
118
+ </li>
@@ -1,40 +1,41 @@
1
- ---
2
- type Props = {
3
- [key: string]: any
4
- "aria-busy"?: "true" | "false" | boolean
5
- "aria-describedby"?: string
6
- "aria-label"?: string
7
- class?: string
8
- id?: string
9
- max?: number | string
10
- value?: number | string
11
- variant?: "filled" | "default" | "tonal"
12
- }
13
-
14
- export const title = "Progress"
15
-
16
- const {
17
- "aria-busy": ariaBusy,
18
- "aria-describedby": ariaDescribedby,
19
- "aria-label": ariaLabel,
20
- class: className,
21
- id,
22
- max,
23
- value,
24
- variant,
25
- ...rest
26
- } = Astro.props
27
- ---
28
-
29
- <progress
30
- aria-busy={ariaBusy}
31
- aria-describedby={ariaDescribedby}
32
- aria-label={ariaLabel}
33
- class:list={["progress", className, variant]}
34
- id={id}
35
- max={max}
36
- value={value}
37
- {...rest}
38
- >
39
- <slot />
40
- </progress>
1
+ ---
2
+ type Props = {
3
+ [key: string]: any
4
+ "aria-busy"?: "true" | "false" | boolean
5
+ "aria-describedby"?: string
6
+ "aria-label"?: string
7
+ class?: string
8
+ id?: string
9
+ max?: number | string
10
+ value?: number | string
11
+ variant?: "filled" | "default" | "tonal"
12
+ }
13
+
14
+ export const title = "Progress"
15
+
16
+ const {
17
+ "aria-busy": ariaBusy,
18
+ "aria-describedby": ariaDescribedby,
19
+ "aria-label": ariaLabel,
20
+ class: className,
21
+ id,
22
+ max,
23
+ value,
24
+ variant,
25
+ ...rest
26
+ } = Astro.props
27
+ ---
28
+
29
+ <div class:list={["ui-progress", className, variant && `ui-${variant}`]}>
30
+ <progress
31
+ aria-busy={ariaBusy}
32
+ aria-describedby={ariaDescribedby}
33
+ aria-label={ariaLabel}
34
+ id={id}
35
+ max={max}
36
+ value={value}
37
+ {...rest}
38
+ >
39
+ <slot />
40
+ </progress>
41
+ </div>
@@ -1,70 +1,70 @@
1
- ---
2
- import RadioInput from "./RadioInput.astro"
3
-
4
- type Props = {
5
- [key: string]: any
6
- checked?: boolean
7
- class?: string
8
- disabled?: boolean
9
- critical?: boolean
10
- hideLabel?: boolean
11
- id?: string
12
- name?: string
13
- required?: boolean
14
- size?: "small" | "large"
15
- stack?: boolean
16
- value?: string
17
- }
18
-
19
- export const title = "Radio"
20
-
21
- const {
22
- checked,
23
- class: className,
24
- disabled,
25
- critical,
26
- hideLabel,
27
- id,
28
- name,
29
- required,
30
- size,
31
- stack,
32
- value,
33
- ...rest
34
- } = Astro.props
35
-
36
- const { $id, currentFieldName } = Astro.locals
37
- const endTextId = Astro.slots.has("end-text") ? $id("end-text") : undefined
38
-
39
- const finalName = name || currentFieldName
40
- ---
41
-
42
- <label
43
- class:list={[
44
- "radio",
45
- size,
46
- {
47
- stack,
48
- },
49
- className,
50
- ]}
51
- data-invalid={critical || undefined}
52
- >
53
- <RadioInput
54
- aria-describedby={endTextId}
55
- {checked}
56
- {disabled}
57
- {id}
58
- name={finalName}
59
- {required}
60
- {value}
61
- {...rest}
62
- />
63
- <!-- prettier-ignore --><span class:list={[hideLabel ? "sr-only" : "label"]}><slot /></span>
64
- {
65
- Astro.slots.has("end-text") && (
66
- <!-- prettier-ignore -->
67
- <span id={endTextId} class="end-text"><slot name="end-text" /></span>
68
- )
69
- }
70
- </label>
1
+ ---
2
+ import RadioInput from "./RadioInput.astro"
3
+
4
+ type Props = {
5
+ [key: string]: any
6
+ checked?: boolean
7
+ class?: string
8
+ disabled?: boolean
9
+ critical?: boolean
10
+ hideLabel?: boolean
11
+ id?: string
12
+ name?: string
13
+ required?: boolean
14
+ size?: "small" | "large"
15
+ stack?: boolean
16
+ value?: string
17
+ }
18
+
19
+ export const title = "Radio"
20
+
21
+ const {
22
+ checked,
23
+ class: className,
24
+ disabled,
25
+ critical,
26
+ hideLabel,
27
+ id,
28
+ name,
29
+ required,
30
+ size,
31
+ stack,
32
+ value,
33
+ ...rest
34
+ } = Astro.props
35
+
36
+ const { $id, currentFieldName } = Astro.locals
37
+ const endTextId = Astro.slots.has("end-text") ? $id("end-text") : undefined
38
+
39
+ const finalName = name || currentFieldName
40
+ ---
41
+
42
+ <label
43
+ class:list={[
44
+ "ui-radio",
45
+ size && `ui-${size}`,
46
+ {
47
+ "ui-stack": stack,
48
+ },
49
+ className,
50
+ ]}
51
+ data-invalid={critical || undefined}
52
+ >
53
+ <RadioInput
54
+ aria-describedby={endTextId}
55
+ {checked}
56
+ {disabled}
57
+ {id}
58
+ name={finalName}
59
+ {required}
60
+ {value}
61
+ {...rest}
62
+ />
63
+ <!-- prettier-ignore --><span class:list={[hideLabel ? "ui-sr-only" : "ui-label"]}><slot /></span>
64
+ {
65
+ Astro.slots.has("end-text") && (
66
+ <!-- prettier-ignore -->
67
+ <span id={endTextId} class="ui-end-text"><slot name="end-text" /></span>
68
+ )
69
+ }
70
+ </label>
@@ -1,24 +1,24 @@
1
- ---
2
- type Props = {
3
- [key: string]: any
4
- checked?: boolean
5
- disabled?: boolean
6
- id?: string
7
- name?: string
8
- required?: boolean
9
- value?: string
10
- }
11
-
12
- const { checked, disabled, id, name, required, value, ...rest } = Astro.props
13
- ---
14
-
15
- <input
16
- type="radio"
17
- {checked}
18
- {disabled}
19
- {id}
20
- {name}
21
- {required}
22
- {value}
23
- {...rest}
24
- />
1
+ ---
2
+ type Props = {
3
+ [key: string]: any
4
+ checked?: boolean
5
+ disabled?: boolean
6
+ id?: string
7
+ name?: string
8
+ required?: boolean
9
+ value?: string
10
+ }
11
+
12
+ const { checked, disabled, id, name, required, value, ...rest } = Astro.props
13
+ ---
14
+
15
+ <input
16
+ type="radio"
17
+ {checked}
18
+ {disabled}
19
+ {id}
20
+ {name}
21
+ {required}
22
+ {value}
23
+ {...rest}
24
+ />