opui-css 5.0.0 → 5.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 (114) hide show
  1. package/CHANGELOG.md +317 -276
  2. package/LICENSE +21 -21
  3. package/MIGRATING.md +138 -127
  4. package/README.md +87 -87
  5. package/astro/index.ts +46 -46
  6. package/components/AGENTS.md +248 -248
  7. package/components/Accordion/Accordion.astro +52 -42
  8. package/components/Anchor/Anchor.astro +55 -51
  9. package/components/Avatar/Avatar.astro +38 -38
  10. package/components/Badge/Badge.astro +59 -59
  11. package/components/Button/Button.astro +45 -45
  12. package/components/ButtonGroup/ButtonGroup.astro +36 -29
  13. package/components/Callout/Callout.astro +75 -75
  14. package/components/Card/Card.astro +38 -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 +43 -41
  25. package/components/Divider/Divider.astro +17 -17
  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 -18
  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 +200 -194
  65. package/core/palette.css +110 -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 +193 -179
  72. package/css/components/button.css +227 -215
  73. package/css/components/callout.css +112 -109
  74. package/css/components/card.css +115 -117
  75. package/css/components/checkbox.css +211 -205
  76. package/css/components/chip.css +92 -87
  77. package/css/components/description-list.css +81 -80
  78. package/css/components/dialog.css +69 -68
  79. package/css/components/divider.css +20 -20
  80. package/css/components/drawer.css +171 -171
  81. package/css/components/form.css +147 -146
  82. package/css/components/icon-button.css +158 -139
  83. package/css/components/link.css +21 -21
  84. package/css/components/list.css +343 -345
  85. package/css/components/progress.css +103 -97
  86. package/css/components/radio.css +170 -172
  87. package/css/components/range.css +342 -337
  88. package/css/components/select.css +172 -169
  89. package/css/components/spinner.css +38 -37
  90. package/css/components/switch.css +271 -268
  91. package/css/components/table.css +173 -179
  92. package/css/components/tabs.css +84 -83
  93. package/css/components/text-field.css +449 -450
  94. package/css/components/text-input.css +68 -64
  95. package/css/components/textarea.css +26 -24
  96. package/css/components/toast.css +160 -161
  97. package/css/components/toggle-button.css +91 -87
  98. package/css/components/toggle-group.css +56 -56
  99. package/css/components/tooltip.css +70 -67
  100. package/css/components/typography.css +585 -585
  101. package/css/components.css +41 -41
  102. package/css/imports.css +17 -16
  103. package/css/js/checkbox.js +21 -21
  104. package/css/js/toast.js +94 -94
  105. package/css/theme.css +133 -132
  106. package/dist/op.css +4 -66
  107. package/dist/op.css.map +1 -1
  108. package/dist/opui.components.css +5234 -5154
  109. package/dist/opui.components.css.map +1 -1
  110. package/dist/opui.css +5798 -5663
  111. package/dist/opui.css.map +1 -1
  112. package/env.d.ts +14 -14
  113. package/open-props.css +8 -9
  114. package/package.json +81 -81
@@ -1,41 +1,43 @@
1
- ---
2
- type Props = {
3
- [key: string]: any
4
- actionsAlign?: "start" | "end"
5
- class?: string
6
- closedby?: "any" | "closerequest" | "none"
7
- }
8
-
9
- export const title = "Dialog"
10
-
11
- const { actionsAlign, class: className, closedby, ...rest } = Astro.props
12
- ---
13
-
14
- <dialog
15
- class:list={["ui-dialog ui-card ui-elevated", className]}
16
- closedby={closedby}
17
- {...rest}
18
- >
19
- {
20
- Astro.slots.has("header") && (
21
- <hgroup>
22
- <slot name="header" />
23
- </hgroup>
24
- )
25
- }
26
- {
27
- Astro.slots.has("content") && (
28
- <div class="ui-content">
29
- <slot name="content" />
30
- </div>
31
- )
32
- }
33
- <slot />
34
- {
35
- Astro.slots.has("actions") && (
36
- <div class:list={["ui-actions", actionsAlign && `ui-align-${actionsAlign}`]}>
37
- <slot name="actions" />
38
- </div>
39
- )
40
- }
41
- </dialog>
1
+ ---
2
+ type Props = {
3
+ [key: string]: any
4
+ actionsAlign?: "start" | "end"
5
+ class?: string
6
+ closedby?: "any" | "closerequest" | "none"
7
+ }
8
+
9
+ export const title = "Dialog"
10
+
11
+ const { actionsAlign, class: className, closedby, ...rest } = Astro.props
12
+ ---
13
+
14
+ <dialog
15
+ class:list={["ui-dialog ui-card ui-elevated", className]}
16
+ closedby={closedby}
17
+ {...rest}
18
+ >
19
+ {
20
+ Astro.slots.has("header") && (
21
+ <hgroup>
22
+ <slot name="header" />
23
+ </hgroup>
24
+ )
25
+ }
26
+ {
27
+ Astro.slots.has("content") && (
28
+ <div class="ui-content">
29
+ <slot name="content" />
30
+ </div>
31
+ )
32
+ }
33
+ <slot />
34
+ {
35
+ Astro.slots.has("actions") && (
36
+ <div
37
+ class:list={["ui-actions", actionsAlign && `ui-align-${actionsAlign}`]}
38
+ >
39
+ <slot name="actions" />
40
+ </div>
41
+ )
42
+ }
43
+ </dialog>
@@ -1,17 +1,17 @@
1
- ---
2
- type Props = {
3
- [key: string]: any
4
- class?: string
5
- variant?: "tonal" | "filled" | "primary"
6
- }
7
-
8
- export const title = "Divider"
9
-
10
- const { class: className, variant, ...rest } = Astro.props
11
- const variantClass = variant ? `border-${variant}` : ""
12
- ---
13
-
14
- <hr
15
- class:list={["ui-divider", className, variantClass && `ui-${variantClass}`]}
16
- {...rest}
17
- />
1
+ ---
2
+ type Props = {
3
+ [key: string]: any
4
+ class?: string
5
+ variant?: "tonal" | "filled" | "primary"
6
+ }
7
+
8
+ export const title = "Divider"
9
+
10
+ const { class: className, variant, ...rest } = Astro.props
11
+ const variantClass = variant ? `border-${variant}` : ""
12
+ ---
13
+
14
+ <hr
15
+ class:list={["ui-divider", className, variantClass && `ui-${variantClass}`]}
16
+ {...rest}
17
+ />
@@ -1,49 +1,49 @@
1
- ---
2
- type Props = {
3
- [key: string]: any
4
- backdrop?: "transparent" | "blurred"
5
- class?: string
6
- closedby?: "any" | "closerequest" | "none"
7
- id?: string
8
- scrollLock?: boolean
9
- side?: "inline-start" | "inline-end" | "block-start" | "block-end"
10
- }
11
-
12
- export const title = "Drawer"
13
-
14
- const {
15
- backdrop = "blurred",
16
- class: className,
17
- closedby = "any",
18
- id,
19
- scrollLock = true,
20
- side = "inline-start",
21
- ...rest
22
- } = Astro.props
23
-
24
- const { $id } = Astro.locals
25
- const drawerId = id || $id("drawer")
26
- ---
27
-
28
- <dialog
29
- closedby={closedby}
30
- class:list={[
31
- "ui-drawer",
32
- side && `ui-${side}`,
33
- {
34
- "ui-backdrop-transparent": backdrop === "transparent",
35
- "ui-scroll-lock": scrollLock,
36
- },
37
- className,
38
- ]}
39
- id={drawerId}
40
- {...rest}
41
- >
42
- {Astro.slots.has("header") && <slot name="header" />}
43
-
44
- <div class="ui-content">
45
- <slot name="content" />
46
- </div>
47
-
48
- {Astro.slots.has("footer") && <slot name="footer" />}
49
- </dialog>
1
+ ---
2
+ type Props = {
3
+ [key: string]: any
4
+ backdrop?: "transparent" | "blurred"
5
+ class?: string
6
+ closedby?: "any" | "closerequest" | "none"
7
+ id?: string
8
+ scrollLock?: boolean
9
+ side?: "inline-start" | "inline-end" | "block-start" | "block-end"
10
+ }
11
+
12
+ export const title = "Drawer"
13
+
14
+ const {
15
+ backdrop = "blurred",
16
+ class: className,
17
+ closedby = "any",
18
+ id,
19
+ scrollLock = true,
20
+ side = "inline-start",
21
+ ...rest
22
+ } = Astro.props
23
+
24
+ const { $id } = Astro.locals
25
+ const drawerId = id || $id("drawer")
26
+ ---
27
+
28
+ <dialog
29
+ closedby={closedby}
30
+ class:list={[
31
+ "ui-drawer",
32
+ side && `ui-${side}`,
33
+ {
34
+ "ui-backdrop-transparent": backdrop === "transparent",
35
+ "ui-scroll-lock": scrollLock,
36
+ },
37
+ className,
38
+ ]}
39
+ id={drawerId}
40
+ {...rest}
41
+ >
42
+ {Astro.slots.has("header") && <slot name="header" />}
43
+
44
+ <div class="ui-content">
45
+ <slot name="content" />
46
+ </div>
47
+
48
+ {Astro.slots.has("footer") && <slot name="footer" />}
49
+ </dialog>
@@ -1,14 +1,14 @@
1
- ---
2
- type Props = {
3
- [key: string]: any
4
- class?: string
5
- }
6
-
7
- export const title = "Drawer Footer"
8
-
9
- const { class: className, ...rest } = Astro.props
10
- ---
11
-
12
- <div class:list={["ui-footer", className]} {...rest}>
13
- <slot />
14
- </div>
1
+ ---
2
+ type Props = {
3
+ [key: string]: any
4
+ class?: string
5
+ }
6
+
7
+ export const title = "Drawer Footer"
8
+
9
+ const { class: className, ...rest } = Astro.props
10
+ ---
11
+
12
+ <div class:list={["ui-footer", className]} {...rest}>
13
+ <slot />
14
+ </div>
@@ -1,31 +1,31 @@
1
- ---
2
- import IconButton from "../IconButton/IconButton.astro"
3
-
4
- type Props = {
5
- [key: string]: any
6
- class?: string
7
- heading?: string
8
- }
9
-
10
- export const title = "Drawer Header"
11
-
12
- const { class: className, heading, ...rest } = Astro.props
13
- ---
14
-
15
- <div class:list={["ui-header", className]} {...rest}>
16
- {heading && <span>{heading}</span>}
17
- <slot />
18
- <IconButton onclick="this.closest('dialog').close()" title="Close">
19
- <svg
20
- xmlns="http://www.w3.org/2000/svg"
21
- width="32"
22
- height="32"
23
- viewBox="0 0 32 32"
24
- >
25
- <path
26
- fill="currentColor"
27
- d="M26.29 4.293a1 1 0 1 1 1.414 1.414L17.413 16l10.291 10.29a1 1 0 1 1-1.414 1.414L16 17.413L5.707 27.704a1 1 0 0 1-1.414-1.414L14.585 16L4.293 5.707a1 1 0 0 1 1.414-1.414L16 14.584z"
28
- ></path>
29
- </svg>
30
- </IconButton>
31
- </div>
1
+ ---
2
+ import IconButton from "../IconButton/IconButton.astro"
3
+
4
+ type Props = {
5
+ [key: string]: any
6
+ class?: string
7
+ heading?: string
8
+ }
9
+
10
+ export const title = "Drawer Header"
11
+
12
+ const { class: className, heading, ...rest } = Astro.props
13
+ ---
14
+
15
+ <div class:list={["ui-header", className]} {...rest}>
16
+ {heading && <span>{heading}</span>}
17
+ <slot />
18
+ <IconButton onclick="this.closest('dialog').close()" title="Close">
19
+ <svg
20
+ xmlns="http://www.w3.org/2000/svg"
21
+ width="32"
22
+ height="32"
23
+ viewBox="0 0 32 32"
24
+ >
25
+ <path
26
+ fill="currentColor"
27
+ d="M26.29 4.293a1 1 0 1 1 1.414 1.414L17.413 16l10.291 10.29a1 1 0 1 1-1.414 1.414L16 17.413L5.707 27.704a1 1 0 0 1-1.414-1.414L14.585 16L4.293 5.707a1 1 0 0 1 1.414-1.414L16 14.584z"
28
+ ></path>
29
+ </svg>
30
+ </IconButton>
31
+ </div>
@@ -1,13 +1,13 @@
1
- ---
2
- type Props = {
3
- [key: string]: any
4
- class?: string
5
- }
6
-
7
- export const title = "Field Description"
8
-
9
- const { class: className, ...rest } = Astro.props
10
- ---
11
-
12
- <!-- prettier-ignore -->
13
- <p class:list={["ui-field-description", className]} {...rest}><slot /></p>
1
+ ---
2
+ type Props = {
3
+ [key: string]: any
4
+ class?: string
5
+ }
6
+
7
+ export const title = "Field Description"
8
+
9
+ const { class: className, ...rest } = Astro.props
10
+ ---
11
+
12
+ <!-- prettier-ignore -->
13
+ <p class:list={["ui-field-description", className]} {...rest}><slot /></p>
@@ -1,31 +1,31 @@
1
- ---
2
- type Props = {
3
- [key: string]: any
4
- class?: string
5
- direction?: "row" | "column"
6
- name?: string
7
- }
8
-
9
- export const title = "Field Group"
10
-
11
- const { class: className, direction, name, ...rest } = Astro.props
12
-
13
- const originalName = Astro.locals.currentFieldName
14
- if (name) {
15
- Astro.locals.currentFieldName = name
16
- }
17
-
18
- let html = ""
19
- try {
20
- html = await Astro.slots.render("default")
21
- } finally {
22
- Astro.locals.currentFieldName = originalName
23
- }
24
- ---
25
-
26
- <div
27
- class:list={["ui-field-group", direction && `ui-${direction}`, className]}
28
- {...rest}
29
- role="group"
30
- set:html={html}
31
- />
1
+ ---
2
+ type Props = {
3
+ [key: string]: any
4
+ class?: string
5
+ direction?: "row" | "column"
6
+ name?: string
7
+ }
8
+
9
+ export const title = "Field Group"
10
+
11
+ const { class: className, direction, name, ...rest } = Astro.props
12
+
13
+ const originalName = Astro.locals.currentFieldName
14
+ if (name) {
15
+ Astro.locals.currentFieldName = name
16
+ }
17
+
18
+ let html = ""
19
+ try {
20
+ html = await Astro.slots.render("default")
21
+ } finally {
22
+ Astro.locals.currentFieldName = originalName
23
+ }
24
+ ---
25
+
26
+ <div
27
+ class:list={["ui-field-group", direction && `ui-${direction}`, className]}
28
+ {...rest}
29
+ role="group"
30
+ set:html={html}
31
+ />
@@ -1,15 +1,15 @@
1
- ---
2
- type Props = {
3
- [key: string]: any
4
- as?: "legend" | "p" | string
5
- class?: string
6
- }
7
-
8
- export const title = "Field Legend"
9
-
10
- const { as: Tag = "legend", class: className, ...rest } = Astro.props
11
- const isLegend = Tag === "legend"
12
- ---
13
-
14
- <!-- prettier-ignore -->
15
- <Tag class:list={[{ "ui-legend": !isLegend }, className]} {...rest}><slot /></Tag>
1
+ ---
2
+ type Props = {
3
+ [key: string]: any
4
+ as?: "legend" | "p" | string
5
+ class?: string
6
+ }
7
+
8
+ export const title = "Field Legend"
9
+
10
+ const { as: Tag = "legend", class: className, ...rest } = Astro.props
11
+ const isLegend = Tag === "legend"
12
+ ---
13
+
14
+ <!-- prettier-ignore -->
15
+ <Tag class:list={[{ "ui-legend": !isLegend }, className]} {...rest}><slot /></Tag>
@@ -1,15 +1,15 @@
1
- ---
2
- type Props = {
3
- [key: string]: any
4
- as?: "fieldset" | "div" | string
5
- class?: string
6
- }
7
-
8
- export const title = "Field Set"
9
-
10
- const { as: Tag = "fieldset", class: className, ...rest } = Astro.props
11
- ---
12
-
13
- <Tag class:list={["ui-fieldset", className]} {...rest}>
14
- <slot />
15
- </Tag>
1
+ ---
2
+ type Props = {
3
+ [key: string]: any
4
+ as?: "fieldset" | "div" | string
5
+ class?: string
6
+ }
7
+
8
+ export const title = "Field Set"
9
+
10
+ const { as: Tag = "fieldset", class: className, ...rest } = Astro.props
11
+ ---
12
+
13
+ <Tag class:list={["ui-fieldset", className]} {...rest}>
14
+ <slot />
15
+ </Tag>
@@ -1,15 +1,15 @@
1
- ---
2
- type Props = {
3
- [key: string]: any
4
- as?: "form" | "div" | string
5
- class?: string
6
- }
7
-
8
- export const title = "Form"
9
-
10
- const { as: Tag = "form", class: className, ...rest } = Astro.props
11
- ---
12
-
13
- <Tag class:list={["ui-form", className]} {...rest}>
14
- <slot />
15
- </Tag>
1
+ ---
2
+ type Props = {
3
+ [key: string]: any
4
+ as?: "form" | "div" | string
5
+ class?: string
6
+ }
7
+
8
+ export const title = "Form"
9
+
10
+ const { as: Tag = "form", class: className, ...rest } = Astro.props
11
+ ---
12
+
13
+ <Tag class:list={["ui-form", className]} {...rest}>
14
+ <slot />
15
+ </Tag>
@@ -1,26 +1,26 @@
1
- ---
2
- type Props = {
3
- [key: string]: any
4
- as?: "a" | "button" | string
5
- class?: string
6
- color?: "critical" | "primary"
7
- href?: string
8
- size?: "small"
9
- variant?: "outlined" | "tonal" | "filled"
10
- }
11
-
12
- export const title = "Icon Button"
13
-
14
- const {
15
- as: Tag = Astro.props.href ? "a" : "button",
16
- class: className,
17
- color,
18
- href,
19
- size,
20
- variant,
21
- ...rest
22
- } = Astro.props
23
- ---
24
-
25
- <!-- prettier-ignore -->
26
- <Tag class:list={["ui-icon-button", size && `ui-${size}`, variant && `ui-${variant}`, color && `ui-${color}`, className]} href={href} {...rest}><slot /></Tag>
1
+ ---
2
+ type Props = {
3
+ [key: string]: any
4
+ as?: "a" | "button" | string
5
+ class?: string
6
+ color?: "critical" | "primary"
7
+ href?: string
8
+ size?: "small"
9
+ variant?: "outlined" | "tonal" | "filled"
10
+ }
11
+
12
+ export const title = "Icon Button"
13
+
14
+ const {
15
+ as: Tag = Astro.props.href ? "a" : "button",
16
+ class: className,
17
+ color,
18
+ href,
19
+ size,
20
+ variant,
21
+ ...rest
22
+ } = Astro.props
23
+ ---
24
+
25
+ <!-- prettier-ignore -->
26
+ <Tag class:list={["ui-icon-button", size && `ui-${size}`, variant && `ui-${variant}`, color && `ui-${color}`, className]} href={href} {...rest}><slot /></Tag>
@@ -1,36 +1,36 @@
1
- ---
2
- type Props = {
3
- bordered?: boolean
4
- dense?: boolean
5
- gutterless?: boolean
6
- variant?: "default" | "tonal" | "transparent"
7
- [key: string]: any
8
- }
9
-
10
- export const title = "List"
11
-
12
- const {
13
- bordered,
14
- class: className,
15
- dense,
16
- gutterless,
17
- variant,
18
- ...rest
19
- } = Astro.props
20
- ---
21
-
22
- <ul
23
- class:list={[
24
- "ui-list",
25
- {
26
- "ui-bordered": bordered,
27
- "ui-dense": dense,
28
- "ui-gutterless": gutterless,
29
- },
30
- variant && `ui-${variant}`,
31
- className,
32
- ]}
33
- {...rest}
34
- >
35
- <slot />
36
- </ul>
1
+ ---
2
+ type Props = {
3
+ bordered?: boolean
4
+ dense?: boolean
5
+ gutterless?: boolean
6
+ variant?: "default" | "tonal" | "transparent"
7
+ [key: string]: any
8
+ }
9
+
10
+ export const title = "List"
11
+
12
+ const {
13
+ bordered,
14
+ class: className,
15
+ dense,
16
+ gutterless,
17
+ variant,
18
+ ...rest
19
+ } = Astro.props
20
+ ---
21
+
22
+ <ul
23
+ class:list={[
24
+ "ui-list",
25
+ {
26
+ "ui-bordered": bordered,
27
+ "ui-dense": dense,
28
+ "ui-gutterless": gutterless,
29
+ },
30
+ variant && `ui-${variant}`,
31
+ className,
32
+ ]}
33
+ {...rest}
34
+ >
35
+ <slot />
36
+ </ul>