@vielzeug/codex 26.10.7 → 26.10.10

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.
package/data/refine.json CHANGED
@@ -945,7 +945,7 @@
945
945
  "type": {
946
946
  "text": "object"
947
947
  },
948
- "default": "{ color: prop.string<ThemeColor>(), }",
948
+ "default": "{ color: prop.oneOf(THEME_COLORS), }",
949
949
  "description": "Prop bundle for components that support a theme colour."
950
950
  },
951
951
  {
@@ -954,7 +954,7 @@
954
954
  "type": {
955
955
  "text": "object"
956
956
  },
957
- "default": "{ size: prop.string<ComponentSize>(), }",
957
+ "default": "{ size: prop.oneOf(COMPONENT_SIZES), }",
958
958
  "description": "Prop bundle for components with discrete size variants."
959
959
  },
960
960
  {
@@ -981,7 +981,7 @@
981
981
  "type": {
982
982
  "text": "object"
983
983
  },
984
- "default": "{ rounded: prop.string<RoundedSize>(), }",
984
+ "default": "{ rounded: prop.oneOf(ROUNDED_SIZES), }",
985
985
  "description": "Prop bundle for components with configurable border-radius."
986
986
  },
987
987
  {
@@ -990,7 +990,7 @@
990
990
  "type": {
991
991
  "text": "object"
992
992
  },
993
- "default": "{ elevation: prop.number<ElevationLevel>(), }",
993
+ "default": "{ elevation: prop.oneOf(ELEVATION_LEVELS), }",
994
994
  "description": "Prop bundle for components with an elevation / box-shadow."
995
995
  },
996
996
  {
@@ -1054,6 +1054,114 @@
1054
1054
  "default": "{ lg: { '--_min-height': 'var(--size-40)', fontSize: 'var(--text-base)', }, md: { '--_min-height': 'var(--size-32)', fontSize: 'var(--text-sm)', }, sm: { '--_min-height': 'var(--size-28)', fontSize: 'var(--text-xs)', }, } satisfies FullSizePreset",
1055
1055
  "description": "Shared size preset for the file-input dropzone."
1056
1056
  },
1057
+ {
1058
+ "kind": "variable",
1059
+ "name": "COMPONENT_SIZES",
1060
+ "type": {
1061
+ "text": "['sm', 'md', 'lg']"
1062
+ },
1063
+ "default": "['sm', 'md', 'lg']",
1064
+ "description": "Component size variants"
1065
+ },
1066
+ {
1067
+ "kind": "variable",
1068
+ "name": "THEME_COLORS",
1069
+ "type": {
1070
+ "text": "['primary', 'secondary', 'info', 'success', 'warning', 'error']"
1071
+ },
1072
+ "default": "['primary', 'secondary', 'info', 'success', 'warning', 'error']",
1073
+ "description": "Semantic theme colors"
1074
+ },
1075
+ {
1076
+ "kind": "variable",
1077
+ "name": "VISUAL_VARIANTS",
1078
+ "type": {
1079
+ "text": "['solid', 'flat', 'bordered', 'outline', 'ghost', 'text', 'frost']"
1080
+ },
1081
+ "default": "['solid', 'flat', 'bordered', 'outline', 'ghost', 'text', 'frost']",
1082
+ "description": "Visual variant styles"
1083
+ },
1084
+ {
1085
+ "kind": "variable",
1086
+ "name": "FIELD_VARIANTS",
1087
+ "type": {
1088
+ "text": "['flat', 'solid', 'bordered', 'outline', 'ghost']"
1089
+ },
1090
+ "default": "['flat', 'solid', 'bordered', 'outline', 'ghost']",
1091
+ "description": "Variant set accepted by text-field-style inputs (everything except `text` and `frost`)."
1092
+ },
1093
+ {
1094
+ "kind": "variable",
1095
+ "name": "INPUT_VARIANTS",
1096
+ "type": {
1097
+ "text": "['solid', 'flat', 'bordered', 'outline', 'ghost', 'text']"
1098
+ },
1099
+ "default": "['solid', 'flat', 'bordered', 'outline', 'ghost', 'text']",
1100
+ "description": "Variant set accepted by input/select-style fields (everything except `frost`)."
1101
+ },
1102
+ {
1103
+ "kind": "variable",
1104
+ "name": "DENSITY_LEVELS",
1105
+ "type": {
1106
+ "text": "['compact', 'cozy', 'comfortable']"
1107
+ },
1108
+ "default": "['compact', 'cozy', 'comfortable']",
1109
+ "description": "Table/grid density levels"
1110
+ },
1111
+ {
1112
+ "kind": "variable",
1113
+ "name": "ROUNDED_SIZES",
1114
+ "type": {
1115
+ "text": "['none', 'sm', 'md', 'lg', 'xl', '2xl', '3xl', 'full']"
1116
+ },
1117
+ "default": "['none', 'sm', 'md', 'lg', 'xl', '2xl', '3xl', 'full']",
1118
+ "description": "Border radius variants"
1119
+ },
1120
+ {
1121
+ "kind": "variable",
1122
+ "name": "ELEVATION_LEVELS",
1123
+ "type": {
1124
+ "text": "[0, 1, 2, 3, 4, 5]"
1125
+ },
1126
+ "default": "[0, 1, 2, 3, 4, 5]",
1127
+ "description": "Elevation/shadow depth levels"
1128
+ },
1129
+ {
1130
+ "kind": "variable",
1131
+ "name": "PADDING_SIZES",
1132
+ "type": {
1133
+ "text": "['none', 'sm', 'md', 'lg', 'xl']"
1134
+ },
1135
+ "default": "['none', 'sm', 'md', 'lg', 'xl']",
1136
+ "description": "Internal spacing variants"
1137
+ },
1138
+ {
1139
+ "kind": "variable",
1140
+ "name": "BUTTON_TYPES",
1141
+ "type": {
1142
+ "text": "['button', 'submit', 'reset']"
1143
+ },
1144
+ "default": "['button', 'submit', 'reset']",
1145
+ "description": "Button form-submission types"
1146
+ },
1147
+ {
1148
+ "kind": "variable",
1149
+ "name": "LINK_TARGETS",
1150
+ "type": {
1151
+ "text": "['_blank', '_self', '_parent', '_top']"
1152
+ },
1153
+ "default": "['_blank', '_self', '_parent', '_top']",
1154
+ "description": "Anchor browsing-context values"
1155
+ },
1156
+ {
1157
+ "kind": "variable",
1158
+ "name": "INPUT_TYPES",
1159
+ "type": {
1160
+ "text": "[\n 'text',\n 'email',\n 'password',\n 'number',\n 'tel',\n 'url',\n 'search',\n 'date',\n 'time',\n 'datetime-local',\n 'month',\n 'week',\n]"
1161
+ },
1162
+ "default": "[ 'text', 'email', 'password', 'number', 'tel', 'url', 'search', 'date', 'time', 'datetime-local', 'month', 'week', ]",
1163
+ "description": "Allowed HTML5 input type values for `<ore-input>`"
1164
+ },
1057
1165
  {
1058
1166
  "kind": "variable",
1059
1167
  "name": "AVATAR_GROUP_TAG",
@@ -1112,6 +1220,14 @@
1112
1220
  }
1113
1221
  ]
1114
1222
  },
1223
+ {
1224
+ "kind": "variable",
1225
+ "name": "AVATAR_STATUSES",
1226
+ "type": {
1227
+ "text": "['online', 'offline', 'busy', 'away']"
1228
+ },
1229
+ "default": "['online', 'offline', 'busy', 'away']"
1230
+ },
1115
1231
  {
1116
1232
  "kind": "variable",
1117
1233
  "name": "AVATAR_TAG",
@@ -1568,6 +1684,22 @@
1568
1684
  "summary": "",
1569
1685
  "demos": []
1570
1686
  },
1687
+ {
1688
+ "kind": "variable",
1689
+ "name": "CAROUSEL_ORIENTATIONS",
1690
+ "type": {
1691
+ "text": "['horizontal', 'vertical']"
1692
+ },
1693
+ "default": "['horizontal', 'vertical']"
1694
+ },
1695
+ {
1696
+ "kind": "variable",
1697
+ "name": "CAROUSEL_VARIANTS",
1698
+ "type": {
1699
+ "text": "['default', 'fade', 'filmstrip', 'gallery']"
1700
+ },
1701
+ "default": "['default', 'fade', 'filmstrip', 'gallery']"
1702
+ },
1571
1703
  {
1572
1704
  "kind": "variable",
1573
1705
  "name": "CAROUSEL_TAG",
@@ -1742,6 +1874,14 @@
1742
1874
  }
1743
1875
  ]
1744
1876
  },
1877
+ {
1878
+ "kind": "variable",
1879
+ "name": "CHAT_MESSAGE_STATUSES",
1880
+ "type": {
1881
+ "text": "['error', 'sending', 'sent']"
1882
+ },
1883
+ "default": "['error', 'sending', 'sent']"
1884
+ },
1745
1885
  {
1746
1886
  "kind": "variable",
1747
1887
  "name": "CHAT_MESSAGE_TAG",
@@ -2357,6 +2497,14 @@
2357
2497
  }
2358
2498
  ]
2359
2499
  },
2500
+ {
2501
+ "kind": "variable",
2502
+ "name": "KEYBOARD_KEY_SIZES",
2503
+ "type": {
2504
+ "text": "['sm', 'lg']"
2505
+ },
2506
+ "default": "['sm', 'lg']"
2507
+ },
2360
2508
  {
2361
2509
  "kind": "variable",
2362
2510
  "name": "KEYBOARD_SHORTCUT_TAG",
@@ -2607,6 +2755,15 @@
2607
2755
  }
2608
2756
  ]
2609
2757
  },
2758
+ {
2759
+ "kind": "variable",
2760
+ "name": "LIST_VARIANTS",
2761
+ "type": {
2762
+ "text": "['bordered', 'plain', 'separated']"
2763
+ },
2764
+ "default": "['bordered', 'plain', 'separated']",
2765
+ "description": "Visual variant for `ore-list`."
2766
+ },
2610
2767
  {
2611
2768
  "kind": "variable",
2612
2769
  "name": "LIST_CTX",
@@ -2693,6 +2850,14 @@
2693
2850
  }
2694
2851
  ]
2695
2852
  },
2853
+ {
2854
+ "kind": "variable",
2855
+ "name": "MARQUEE_DIRECTIONS",
2856
+ "type": {
2857
+ "text": "['left', 'right']"
2858
+ },
2859
+ "default": "['left', 'right']"
2860
+ },
2696
2861
  {
2697
2862
  "kind": "variable",
2698
2863
  "name": "MARQUEE_TAG",
@@ -2921,148 +3086,16 @@
2921
3086
  "type": {
2922
3087
  "text": "'ore-qr-code'"
2923
3088
  },
2924
- "default": "'ore-qr-code'",
2925
- "description": "Renders a QR code for `value` as inline SVG: themeable via `currentColor`,\ncrisp at any scale, no canvas. On capacity errors the component shows an\nerror state and emits `error` rather than throwing."
3089
+ "default": "'ore-qr-code'"
2926
3090
  },
2927
3091
  {
2928
3092
  "kind": "class",
2929
3093
  "name": "OreQrCodeElement",
2930
3094
  "tagName": "ore-qr-code",
2931
3095
  "customElement": true,
2932
- "description": "Renders a QR code for `value` as inline SVG: themeable via `currentColor`,\ncrisp at any scale, no canvas. On capacity errors the component shows an\nerror state and emits `error` rather than throwing.",
3096
+ "description": "",
2933
3097
  "summary": "",
2934
- "attributes": [
2935
- {
2936
- "name": "value",
2937
- "type": {
2938
- "text": "string"
2939
- },
2940
- "description": "The payload to encode"
2941
- },
2942
- {
2943
- "name": "error-correction",
2944
- "type": {
2945
- "text": "'L' | 'M' | 'Q' | 'H'"
2946
- },
2947
- "description": "'L' | 'M' | 'Q' | 'H' (default 'M')"
2948
- },
2949
- {
2950
- "name": "margin",
2951
- "type": {
2952
- "text": "number"
2953
- },
2954
- "description": "Quiet-zone modules (default 4)"
2955
- },
2956
- {
2957
- "name": "size",
2958
- "type": {
2959
- "text": "'sm' | 'md' | 'lg'"
2960
- },
2961
- "description": "'sm' | 'md' | 'lg', or a pixel value"
2962
- },
2963
- {
2964
- "name": "label",
2965
- "type": {
2966
- "text": "string"
2967
- },
2968
- "description": "Accessible label (default \"QR code\")"
2969
- },
2970
- {
2971
- "name": "rounded",
2972
- "type": {
2973
- "text": "string"
2974
- },
2975
- "description": "Border radius for the card variant"
2976
- }
2977
- ],
2978
- "events": [
2979
- {
2980
- "name": "render",
2981
- "description": "detail: `{ version, size }` after each successful render",
2982
- "type": {
2983
- "text": "CustomEvent"
2984
- }
2985
- },
2986
- {
2987
- "name": "error",
2988
- "description": "detail: `{ error }` when encoding fails",
2989
- "type": {
2990
- "text": "CustomEvent"
2991
- }
2992
- }
2993
- ],
2994
- "slots": [
2995
- {
2996
- "name": "caption",
2997
- "description": "Optional caption rendered below the code"
2998
- }
2999
- ],
3000
- "cssParts": [
3001
- {
3002
- "name": "wrapper",
3003
- "description": "Outer container"
3004
- },
3005
- {
3006
- "name": "svg",
3007
- "description": "The rendered `<svg>` element"
3008
- },
3009
- {
3010
- "name": "caption",
3011
- "description": "Caption slot container"
3012
- },
3013
- {
3014
- "name": "error",
3015
- "description": "Error-state container"
3016
- }
3017
- ],
3018
- "cssProperties": [
3019
- {
3020
- "name": "--qr-code-dark",
3021
- "description": "Module color (default `currentColor`)"
3022
- },
3023
- {
3024
- "name": "--qr-code-light",
3025
- "description": "Background color (default `transparent`)"
3026
- },
3027
- {
3028
- "name": "--qr-code-size",
3029
- "description": "Rendered size in px (overrides `size`)"
3030
- },
3031
- {
3032
- "name": "--qr-code-radius",
3033
- "description": "Border radius"
3034
- },
3035
- {
3036
- "name": "--qr-code-padding",
3037
- "description": "Inner padding"
3038
- },
3039
- {
3040
- "name": "--qr-code-bg",
3041
- "description": "Card background (variant=\"card\")"
3042
- },
3043
- {
3044
- "name": "--qr-code-border",
3045
- "description": "Card border width (variant=\"card\")"
3046
- },
3047
- {
3048
- "name": "--qr-code-border-color",
3049
- "description": "Card border color (variant=\"card\")"
3050
- },
3051
- {
3052
- "name": "--qr-code-shadow",
3053
- "description": "Card box shadow (variant=\"card\")"
3054
- },
3055
- {
3056
- "name": "--qr-code-error-color",
3057
- "description": "Error-state text color"
3058
- }
3059
- ],
3060
- "demos": [
3061
- {
3062
- "url": "",
3063
- "description": "```html\n<ore-qr-code value=\"https://example.com\"></ore-qr-code>\n<ore-qr-code value=\"otpauth://…\" error-correction=\"H\" size=\"256\"></ore-qr-code>\n```"
3064
- }
3065
- ]
3098
+ "demos": []
3066
3099
  },
3067
3100
  {
3068
3101
  "kind": "variable",
@@ -4989,68 +5022,180 @@
4989
5022
  },
4990
5023
  {
4991
5024
  "kind": "variable",
4992
- "name": "ALERT_TAG",
5025
+ "name": "ASYNC_TAG",
4993
5026
  "type": {
4994
- "text": "'ore-alert'"
5027
+ "text": "'ore-async'"
4995
5028
  },
4996
- "default": "'ore-alert'",
4997
- "description": "A status/feedback banner with optional heading, icon slot, and dismiss button."
5029
+ "default": "'ore-async'",
5030
+ "description": "A container for handling asynchronous states (loading, empty, error, success).\nSimplifies data fetching UI by providing consistent fallbacks."
4998
5031
  },
4999
5032
  {
5000
5033
  "kind": "class",
5001
- "name": "OreAlertElement",
5002
- "tagName": "ore-alert",
5034
+ "name": "OreAsyncElement",
5035
+ "tagName": "ore-async",
5003
5036
  "customElement": true,
5004
- "description": "A status/feedback banner with optional heading, icon slot, and dismiss button.",
5037
+ "description": "A container for handling asynchronous states (loading, empty, error, success).\nSimplifies data fetching UI by providing consistent fallbacks.",
5005
5038
  "summary": "",
5006
5039
  "attributes": [
5007
5040
  {
5008
- "name": "color",
5041
+ "name": "status",
5009
5042
  "type": {
5010
- "text": "'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
5043
+ "text": "'idle' | 'loading' | 'empty' | 'error' | 'success'"
5011
5044
  },
5012
- "description": "Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
5045
+ "description": "current state: 'idle' | 'loading' | 'empty' | 'error' | 'success' (default: 'success')",
5046
+ "default": "'success'"
5013
5047
  },
5014
5048
  {
5015
- "name": "variant",
5049
+ "name": "retryable",
5016
5050
  "type": {
5017
- "text": "'flat' | 'solid' | 'bordered'"
5051
+ "text": "boolean"
5018
5052
  },
5019
- "description": "Visual style: 'flat' | 'solid' | 'bordered'"
5053
+ "description": "show retry button in error state (default: false)",
5054
+ "default": "false"
5020
5055
  },
5021
5056
  {
5022
- "name": "size",
5057
+ "name": "empty-label",
5023
5058
  "type": {
5024
- "text": "'sm' | 'md' | 'lg'"
5059
+ "text": "string"
5025
5060
  },
5026
- "description": "Size: 'sm' | 'md' | 'lg'"
5061
+ "description": "title for empty state (default: 'No content yet')",
5062
+ "default": "'No content yet'"
5027
5063
  },
5028
5064
  {
5029
- "name": "rounded",
5065
+ "name": "empty-description",
5030
5066
  "type": {
5031
- "text": "'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
5067
+ "text": "string"
5032
5068
  },
5033
- "description": "Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
5069
+ "description": "optional text for empty state"
5034
5070
  },
5035
5071
  {
5036
- "name": "heading",
5072
+ "name": "error-label",
5037
5073
  "type": {
5038
5074
  "text": "string"
5039
5075
  },
5040
- "description": "Bold heading text above the content"
5076
+ "description": "title for error state (default: 'Something went wrong')",
5077
+ "default": "'Something went wrong'"
5041
5078
  },
5042
5079
  {
5043
- "name": "dismissible",
5080
+ "name": "error-description",
5044
5081
  "type": {
5045
- "text": "boolean"
5082
+ "text": "string"
5046
5083
  },
5047
- "description": "Show a close (×) button"
5048
- },
5084
+ "description": "optional text for error state"
5085
+ }
5086
+ ],
5087
+ "events": [
5049
5088
  {
5050
- "name": "embedded",
5089
+ "name": "retry",
5090
+ "description": "Emitted when the retry button is clicked (no detail payload)",
5051
5091
  "type": {
5052
- "text": "boolean"
5053
- },
5092
+ "text": "CustomEvent"
5093
+ }
5094
+ }
5095
+ ],
5096
+ "slots": [
5097
+ {
5098
+ "name": "",
5099
+ "description": "default content shown in 'success' state"
5100
+ },
5101
+ {
5102
+ "name": "loading",
5103
+ "description": "custom loading UI (overrides default skeletons)"
5104
+ },
5105
+ {
5106
+ "name": "empty",
5107
+ "description": "custom empty UI (overrides default icon/label)"
5108
+ },
5109
+ {
5110
+ "name": "error",
5111
+ "description": "custom error UI (overrides default icon/label)"
5112
+ }
5113
+ ],
5114
+ "cssProperties": [
5115
+ {
5116
+ "name": "--async-color",
5117
+ "description": "Text/icon color used by default async state content"
5118
+ },
5119
+ {
5120
+ "name": "--async-gap",
5121
+ "description": "Vertical spacing between icon, title, description, and actions"
5122
+ },
5123
+ {
5124
+ "name": "--async-icon-size",
5125
+ "description": "Icon size for built-in loading/empty/error visuals"
5126
+ }
5127
+ ],
5128
+ "demos": [
5129
+ {
5130
+ "url": "",
5131
+ "description": "```html\n<!-- Success state: default slot is shown -->\n<ore-async status=\"success\">\n <ul><li>Item one</li><li>Item two</li></ul>\n</ore-async>\n<!-- Loading state: shows skeleton placeholders -->\n<ore-async status=\"loading\"></ore-async>\n<!-- Empty state with custom message -->\n<ore-async status=\"empty\" empty-label=\"No results\" empty-description=\"Try adjusting your filters.\"></ore-async>\n<!-- Error state with retry button -->\n<ore-async status=\"error\" retryable error-label=\"Failed to load\" error-description=\"Check your connection.\"></ore-async>\n```"
5132
+ }
5133
+ ]
5134
+ },
5135
+ {
5136
+ "kind": "variable",
5137
+ "name": "ALERT_TAG",
5138
+ "type": {
5139
+ "text": "'ore-alert'"
5140
+ },
5141
+ "default": "'ore-alert'",
5142
+ "description": "A status/feedback banner with optional heading, icon slot, and dismiss button."
5143
+ },
5144
+ {
5145
+ "kind": "class",
5146
+ "name": "OreAlertElement",
5147
+ "tagName": "ore-alert",
5148
+ "customElement": true,
5149
+ "description": "A status/feedback banner with optional heading, icon slot, and dismiss button.",
5150
+ "summary": "",
5151
+ "attributes": [
5152
+ {
5153
+ "name": "color",
5154
+ "type": {
5155
+ "text": "'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
5156
+ },
5157
+ "description": "Theme color: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
5158
+ },
5159
+ {
5160
+ "name": "variant",
5161
+ "type": {
5162
+ "text": "'flat' | 'solid' | 'bordered'"
5163
+ },
5164
+ "description": "Visual style: 'flat' | 'solid' | 'bordered'"
5165
+ },
5166
+ {
5167
+ "name": "size",
5168
+ "type": {
5169
+ "text": "'sm' | 'md' | 'lg'"
5170
+ },
5171
+ "description": "Size: 'sm' | 'md' | 'lg'"
5172
+ },
5173
+ {
5174
+ "name": "rounded",
5175
+ "type": {
5176
+ "text": "'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
5177
+ },
5178
+ "description": "Border radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
5179
+ },
5180
+ {
5181
+ "name": "heading",
5182
+ "type": {
5183
+ "text": "string"
5184
+ },
5185
+ "description": "Bold heading text above the content"
5186
+ },
5187
+ {
5188
+ "name": "dismissible",
5189
+ "type": {
5190
+ "text": "boolean"
5191
+ },
5192
+ "description": "Show a close (×) button"
5193
+ },
5194
+ {
5195
+ "name": "embedded",
5196
+ "type": {
5197
+ "text": "boolean"
5198
+ },
5054
5199
  "description": "Passive surface for a host that owns lifecycle and announcements; the close button only emits `dismiss`"
5055
5200
  },
5056
5201
  {
@@ -5174,118 +5319,6 @@
5174
5319
  }
5175
5320
  ]
5176
5321
  },
5177
- {
5178
- "kind": "variable",
5179
- "name": "ASYNC_TAG",
5180
- "type": {
5181
- "text": "'ore-async'"
5182
- },
5183
- "default": "'ore-async'",
5184
- "description": "A container for handling asynchronous states (loading, empty, error, success).\nSimplifies data fetching UI by providing consistent fallbacks."
5185
- },
5186
- {
5187
- "kind": "class",
5188
- "name": "OreAsyncElement",
5189
- "tagName": "ore-async",
5190
- "customElement": true,
5191
- "description": "A container for handling asynchronous states (loading, empty, error, success).\nSimplifies data fetching UI by providing consistent fallbacks.",
5192
- "summary": "",
5193
- "attributes": [
5194
- {
5195
- "name": "status",
5196
- "type": {
5197
- "text": "'idle' | 'loading' | 'empty' | 'error' | 'success'"
5198
- },
5199
- "description": "current state: 'idle' | 'loading' | 'empty' | 'error' | 'success' (default: 'success')",
5200
- "default": "'success'"
5201
- },
5202
- {
5203
- "name": "retryable",
5204
- "type": {
5205
- "text": "boolean"
5206
- },
5207
- "description": "show retry button in error state (default: false)",
5208
- "default": "false"
5209
- },
5210
- {
5211
- "name": "empty-label",
5212
- "type": {
5213
- "text": "string"
5214
- },
5215
- "description": "title for empty state (default: 'No content yet')",
5216
- "default": "'No content yet'"
5217
- },
5218
- {
5219
- "name": "empty-description",
5220
- "type": {
5221
- "text": "string"
5222
- },
5223
- "description": "optional text for empty state"
5224
- },
5225
- {
5226
- "name": "error-label",
5227
- "type": {
5228
- "text": "string"
5229
- },
5230
- "description": "title for error state (default: 'Something went wrong')",
5231
- "default": "'Something went wrong'"
5232
- },
5233
- {
5234
- "name": "error-description",
5235
- "type": {
5236
- "text": "string"
5237
- },
5238
- "description": "optional text for error state"
5239
- }
5240
- ],
5241
- "events": [
5242
- {
5243
- "name": "retry",
5244
- "description": "Emitted when the retry button is clicked (no detail payload)",
5245
- "type": {
5246
- "text": "CustomEvent"
5247
- }
5248
- }
5249
- ],
5250
- "slots": [
5251
- {
5252
- "name": "",
5253
- "description": "default content shown in 'success' state"
5254
- },
5255
- {
5256
- "name": "loading",
5257
- "description": "custom loading UI (overrides default skeletons)"
5258
- },
5259
- {
5260
- "name": "empty",
5261
- "description": "custom empty UI (overrides default icon/label)"
5262
- },
5263
- {
5264
- "name": "error",
5265
- "description": "custom error UI (overrides default icon/label)"
5266
- }
5267
- ],
5268
- "cssProperties": [
5269
- {
5270
- "name": "--async-color",
5271
- "description": "Text/icon color used by default async state content"
5272
- },
5273
- {
5274
- "name": "--async-gap",
5275
- "description": "Vertical spacing between icon, title, description, and actions"
5276
- },
5277
- {
5278
- "name": "--async-icon-size",
5279
- "description": "Icon size for built-in loading/empty/error visuals"
5280
- }
5281
- ],
5282
- "demos": [
5283
- {
5284
- "url": "",
5285
- "description": "```html\n<!-- Success state: default slot is shown -->\n<ore-async status=\"success\">\n <ul><li>Item one</li><li>Item two</li></ul>\n</ore-async>\n<!-- Loading state: shows skeleton placeholders -->\n<ore-async status=\"loading\"></ore-async>\n<!-- Empty state with custom message -->\n<ore-async status=\"empty\" empty-label=\"No results\" empty-description=\"Try adjusting your filters.\"></ore-async>\n<!-- Error state with retry button -->\n<ore-async status=\"error\" retryable error-label=\"Failed to load\" error-description=\"Check your connection.\"></ore-async>\n```"
5286
- }
5287
- ]
5288
- },
5289
5322
  {
5290
5323
  "kind": "variable",
5291
5324
  "name": "BADGE_TAG",
@@ -6312,6 +6345,15 @@
6312
6345
  },
6313
6346
  "default": "['solid', 'flat', 'bordered', 'outline', 'ghost', 'text', 'frost']"
6314
6347
  },
6348
+ {
6349
+ "kind": "variable",
6350
+ "name": "BUTTON_EFFECTS",
6351
+ "type": {
6352
+ "text": "['shine', 'rainbow']"
6353
+ },
6354
+ "default": "['shine', 'rainbow']",
6355
+ "description": "Animated border effect for ore-button."
6356
+ },
6315
6357
  {
6316
6358
  "kind": "variable",
6317
6359
  "name": "BUTTON_TAG",
@@ -6437,181 +6479,83 @@
6437
6479
  },
6438
6480
  {
6439
6481
  "name": "loader",
6440
- "description": "The loading spinner element"
6441
- },
6442
- {
6443
- "name": "content",
6444
- "description": "The button content wrapper"
6445
- }
6446
- ],
6447
- "cssProperties": [
6448
- {
6449
- "name": "--button-bg",
6450
- "description": "Background color override"
6451
- },
6452
- {
6453
- "name": "--button-color",
6454
- "description": "Text color override"
6455
- },
6456
- {
6457
- "name": "--button-border",
6458
- "description": "Border width override"
6459
- },
6460
- {
6461
- "name": "--button-border-color",
6462
- "description": "Border color override"
6463
- },
6464
- {
6465
- "name": "--button-radius",
6466
- "description": "Border radius override"
6467
- },
6468
- {
6469
- "name": "--button-padding",
6470
- "description": "Inner padding override"
6471
- },
6472
- {
6473
- "name": "--button-gap",
6474
- "description": "Gap between icon and text override"
6475
- },
6476
- {
6477
- "name": "--button-font-size",
6478
- "description": "Font size override"
6479
- },
6480
- {
6481
- "name": "--button-frost-active-bg",
6482
- "description": "Background when pressed (frost variant)"
6483
- },
6484
- {
6485
- "name": "--button-frost-active-border-color",
6486
- "description": "Border color when pressed (frost variant)"
6487
- }
6488
- ],
6489
- "demos": [
6490
- {
6491
- "url": "",
6492
- "description": "```html\n<ore-button variant=\"solid\" color=\"primary\">Click me</ore-button>\n<ore-button loading color=\"success\">Processing...</ore-button>\n<ore-button effect=\"shine\" color=\"primary\">Shine</ore-button>\n<ore-button effect=\"rainbow\" variant=\"frost\">Rainbow</ore-button>\n```"
6493
- }
6494
- ]
6495
- },
6496
- {
6497
- "kind": "variable",
6498
- "name": "BUTTON_GROUP_CTX"
6499
- },
6500
- {
6501
- "kind": "variable",
6502
- "name": "BUTTON_GROUP_TAG",
6503
- "type": {
6504
- "text": "'ore-button-group'"
6505
- },
6506
- "default": "'ore-button-group'",
6507
- "description": "A container for grouping related buttons.\nChild `ore-button` components automatically inherit the group's color, size, and variant."
6508
- },
6509
- {
6510
- "kind": "class",
6511
- "name": "OreButtonGroupElement",
6512
- "tagName": "ore-button-group",
6513
- "customElement": true,
6514
- "description": "A container for grouping related buttons.\nChild `ore-button` components automatically inherit the group's color, size, and variant.",
6515
- "summary": "",
6516
- "attributes": [
6517
- {
6518
- "name": "attached",
6519
- "type": {
6520
- "text": "boolean"
6521
- },
6522
- "description": "Join buttons together into a unit"
6523
- },
6524
- {
6525
- "name": "color",
6526
- "type": {
6527
- "text": "'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
6528
- },
6529
- "description": "Shared color tint: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error'"
6530
- },
6531
- {
6532
- "name": "fullwidth",
6533
- "type": {
6534
- "text": "boolean"
6535
- },
6536
- "description": "Group spans full width"
6537
- },
6538
- {
6539
- "name": "label",
6540
- "type": {
6541
- "text": "string"
6542
- },
6543
- "description": "Accessible label"
6544
- },
6545
- {
6546
- "name": "orientation",
6547
- "type": {
6548
- "text": "'horizontal' | 'vertical'"
6549
- },
6550
- "description": "'horizontal' | 'vertical'"
6551
- },
6552
- {
6553
- "name": "rounded",
6554
- "type": {
6555
- "text": "'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full'"
6556
- },
6557
- "description": "Corner radius: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full' (bare attribute defaults to 'full')"
6558
- },
6559
- {
6560
- "name": "size",
6561
- "type": {
6562
- "text": "'sm' | 'md' | 'lg'"
6563
- },
6564
- "description": "Shared size: 'sm' | 'md' | 'lg'"
6565
- },
6566
- {
6567
- "name": "variant",
6568
- "type": {
6569
- "text": "'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'frost'"
6570
- },
6571
- "description": "Shared visual variant: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'frost'"
6572
- }
6573
- ],
6574
- "slots": [
6575
- {
6576
- "name": "",
6577
- "description": "Place ore-button elements here"
6578
- }
6579
- ],
6580
- "cssParts": [
6482
+ "description": "The loading spinner element"
6483
+ },
6581
6484
  {
6582
- "name": "group",
6583
- "description": "Group container."
6485
+ "name": "content",
6486
+ "description": "The button content wrapper"
6584
6487
  }
6585
6488
  ],
6586
6489
  "cssProperties": [
6587
6490
  {
6588
- "name": "--group-gap",
6589
- "description": "Gap between buttons (non-attached mode)"
6491
+ "name": "--button-bg",
6492
+ "description": "Background color override"
6493
+ },
6494
+ {
6495
+ "name": "--button-color",
6496
+ "description": "Text color override"
6497
+ },
6498
+ {
6499
+ "name": "--button-border",
6500
+ "description": "Border width override"
6590
6501
  },
6591
6502
  {
6592
- "name": "--group-radius",
6593
- "description": "Border radius of the group container, defaults to the `rounded` attribute's token"
6503
+ "name": "--button-border-color",
6504
+ "description": "Border color override"
6594
6505
  },
6595
6506
  {
6596
6507
  "name": "--button-radius",
6597
- "description": "Passed through to child buttons to control corner radius"
6508
+ "description": "Border radius override"
6509
+ },
6510
+ {
6511
+ "name": "--button-padding",
6512
+ "description": "Inner padding override"
6513
+ },
6514
+ {
6515
+ "name": "--button-gap",
6516
+ "description": "Gap between icon and text override"
6517
+ },
6518
+ {
6519
+ "name": "--button-font-size",
6520
+ "description": "Font size override"
6598
6521
  },
6599
6522
  {
6600
- "name": "--button-border-start",
6601
- "description": "Passed through to suppress start borders in attached mode"
6523
+ "name": "--button-frost-active-bg",
6524
+ "description": "Background when pressed (frost variant)"
6602
6525
  },
6603
6526
  {
6604
- "name": "--button-border-top",
6605
- "description": "Passed through to suppress top borders in vertical attached mode"
6527
+ "name": "--button-frost-active-border-color",
6528
+ "description": "Border color when pressed (frost variant)"
6606
6529
  }
6607
6530
  ],
6608
6531
  "demos": [
6609
6532
  {
6610
6533
  "url": "",
6611
- "description": "```html\n<ore-button-group attached rounded=\"full\">\n <ore-button variant=\"solid\" color=\"primary\">Save</ore-button>\n <ore-button variant=\"solid\" color=\"primary\">Save &amp; Continue</ore-button>\n</ore-button-group>\n<ore-button-group orientation=\"vertical\" size=\"sm\">\n <ore-button>Top</ore-button>\n <ore-button>Middle</ore-button>\n <ore-button>Bottom</ore-button>\n</ore-button-group>\n```"
6534
+ "description": "```html\n<ore-button variant=\"solid\" color=\"primary\">Click me</ore-button>\n<ore-button loading color=\"success\">Processing...</ore-button>\n<ore-button effect=\"shine\" color=\"primary\">Shine</ore-button>\n<ore-button effect=\"rainbow\" variant=\"frost\">Rainbow</ore-button>\n```"
6612
6535
  }
6613
6536
  ]
6614
6537
  },
6538
+ {
6539
+ "kind": "variable",
6540
+ "name": "BUTTON_GROUP_CTX"
6541
+ },
6542
+ {
6543
+ "kind": "variable",
6544
+ "name": "BUTTON_GROUP_TAG",
6545
+ "type": {
6546
+ "text": "'ore-button-group'"
6547
+ },
6548
+ "default": "'ore-button-group'"
6549
+ },
6550
+ {
6551
+ "kind": "class",
6552
+ "name": "OreButtonGroupElement",
6553
+ "tagName": "ore-button-group",
6554
+ "customElement": true,
6555
+ "description": "",
6556
+ "summary": "",
6557
+ "demos": []
6558
+ },
6615
6559
  {
6616
6560
  "kind": "variable",
6617
6561
  "name": "CALENDAR_TAG",
@@ -7584,6 +7528,14 @@
7584
7528
  },
7585
7529
  "default": "{ activeFilters: (count) => `${count} active filter${count === 1 ? '' : 's'}`, addFilter: 'Add filter…', ascending: 'A → Z', clearAllFilters: 'Clear all filters', clearFiltersAndSearch: 'Clear all filters & search', clearSort: 'Clear sort', closeSearch: 'Close search', collapseRow: 'Collapse row', columnOptions: 'Column options', columnVisibility: 'Column visibility', comfortableDensity: 'Density: Comfortable', compactDensity: 'Density: Compact', contains: 'Contains', cozyDensity: 'Density: Cozy', data: 'Data', descending: 'Z → A', emptyValue: '(empty)', equals: 'Equals', expandRow: 'Expand row', filter: 'Filter', filterBy: 'Filter by', filterOperator: (field) => `${field} operator`, greaterThan: 'Greater than', hiddenColumns: (count) => `${count} hidden column${count === 1 ? '' : 's'}`, lessThan: 'Less than', nextPage: 'Next page', numericAscending: '0 → 9', numericDescending: '9 → 0', pageNavigation: 'Page navigation', pagination: 'Pagination', previousPage: 'Previous page', property: 'Property', range: (start, end, total) => `${start} to ${end} of ${total}`, removeFilter: 'Remove filter', resetColumns: 'Reset', rowDetails: 'Row details', rows: (count) => `${count} row${count === 1 ? '' : 's'}`, rowsPerPage: 'Rows per page', search: 'Search', selectAllRows: 'Select all rows on this page', selectRow: 'Select row', sort: 'Sort', sortBy: 'Sort by', views: 'Views', visibleColumns: (count, total) => `${count} of ${total} visible`, }"
7586
7530
  },
7531
+ {
7532
+ "kind": "variable",
7533
+ "name": "SELECTION_MODES",
7534
+ "type": {
7535
+ "text": "['multi', 'none', 'single']"
7536
+ },
7537
+ "default": "['multi', 'none', 'single']"
7538
+ },
7587
7539
  {
7588
7540
  "kind": "function",
7589
7541
  "name": "createDataGridModel",
@@ -9616,101 +9568,6 @@
9616
9568
  }
9617
9569
  ]
9618
9570
  },
9619
- {
9620
- "kind": "variable",
9621
- "name": "RADIO_GROUP_CTX"
9622
- },
9623
- {
9624
- "kind": "variable",
9625
- "name": "RADIO_GROUP_TAG",
9626
- "type": {
9627
- "text": "'ore-radio-group'"
9628
- },
9629
- "default": "'ore-radio-group'",
9630
- "description": "A group of radio buttons that allows users to select a single option from a set.\nSupports keyboard navigation (arrows) and automatic value management."
9631
- },
9632
- {
9633
- "kind": "class",
9634
- "name": "OreRadioGroupElement",
9635
- "tagName": "ore-radio-group",
9636
- "customElement": true,
9637
- "description": "A group of radio buttons that allows users to select a single option from a set.\nSupports keyboard navigation (arrows) and automatic value management.",
9638
- "summary": "",
9639
- "attributes": [
9640
- {
9641
- "name": "value",
9642
- "type": {
9643
- "text": "string"
9644
- },
9645
- "description": "Selected value"
9646
- },
9647
- {
9648
- "name": "name",
9649
- "type": {
9650
- "text": "string"
9651
- },
9652
- "description": "Form field name"
9653
- },
9654
- {
9655
- "name": "label",
9656
- "type": {
9657
- "text": "string"
9658
- },
9659
- "description": "Group label"
9660
- },
9661
- {
9662
- "name": "orientation",
9663
- "type": {
9664
- "text": "'vertical' | 'horizontal'"
9665
- },
9666
- "description": "Layout: 'vertical' | 'horizontal'"
9667
- },
9668
- {
9669
- "name": "required",
9670
- "type": {
9671
- "text": "boolean"
9672
- },
9673
- "description": "Required field"
9674
- }
9675
- ],
9676
- "events": [
9677
- {
9678
- "name": "change",
9679
- "description": "Emitted when a radio is selected. detail: { values: string[], labels: string[], originalEvent?: Event }",
9680
- "type": {
9681
- "text": "CustomEvent"
9682
- }
9683
- }
9684
- ],
9685
- "slots": [
9686
- {
9687
- "name": "",
9688
- "description": "Place `ore-radio` elements here"
9689
- }
9690
- ],
9691
- "cssParts": [
9692
- {
9693
- "name": "items",
9694
- "description": "Items container."
9695
- }
9696
- ],
9697
- "cssProperties": [
9698
- {
9699
- "name": "--radio-group-direction",
9700
- "description": "Flex direction of the items list ('row' | 'column')"
9701
- },
9702
- {
9703
- "name": "--radio-group-gap",
9704
- "description": "Gap between radio items"
9705
- }
9706
- ],
9707
- "demos": [
9708
- {
9709
- "url": "",
9710
- "description": "```html\n<ore-radio-group name=\"plan\" label=\"Choose a plan\" value=\"free\" required>\n <ore-radio value=\"free\">Free</ore-radio>\n <ore-radio value=\"pro\">Pro</ore-radio>\n <ore-radio value=\"enterprise\">Enterprise</ore-radio>\n</ore-radio-group>\n<ore-radio-group name=\"direction\" orientation=\"horizontal\" color=\"primary\">\n <ore-radio value=\"left\">Left</ore-radio>\n <ore-radio value=\"right\">Right</ore-radio>\n</ore-radio-group>\n```"
9711
- }
9712
- ]
9713
- },
9714
9571
  {
9715
9572
  "kind": "variable",
9716
9573
  "name": "RATING_TAG",
@@ -9864,6 +9721,101 @@
9864
9721
  }
9865
9722
  ]
9866
9723
  },
9724
+ {
9725
+ "kind": "variable",
9726
+ "name": "RADIO_GROUP_CTX"
9727
+ },
9728
+ {
9729
+ "kind": "variable",
9730
+ "name": "RADIO_GROUP_TAG",
9731
+ "type": {
9732
+ "text": "'ore-radio-group'"
9733
+ },
9734
+ "default": "'ore-radio-group'",
9735
+ "description": "A group of radio buttons that allows users to select a single option from a set.\nSupports keyboard navigation (arrows) and automatic value management."
9736
+ },
9737
+ {
9738
+ "kind": "class",
9739
+ "name": "OreRadioGroupElement",
9740
+ "tagName": "ore-radio-group",
9741
+ "customElement": true,
9742
+ "description": "A group of radio buttons that allows users to select a single option from a set.\nSupports keyboard navigation (arrows) and automatic value management.",
9743
+ "summary": "",
9744
+ "attributes": [
9745
+ {
9746
+ "name": "value",
9747
+ "type": {
9748
+ "text": "string"
9749
+ },
9750
+ "description": "Selected value"
9751
+ },
9752
+ {
9753
+ "name": "name",
9754
+ "type": {
9755
+ "text": "string"
9756
+ },
9757
+ "description": "Form field name"
9758
+ },
9759
+ {
9760
+ "name": "label",
9761
+ "type": {
9762
+ "text": "string"
9763
+ },
9764
+ "description": "Group label"
9765
+ },
9766
+ {
9767
+ "name": "orientation",
9768
+ "type": {
9769
+ "text": "'vertical' | 'horizontal'"
9770
+ },
9771
+ "description": "Layout: 'vertical' | 'horizontal'"
9772
+ },
9773
+ {
9774
+ "name": "required",
9775
+ "type": {
9776
+ "text": "boolean"
9777
+ },
9778
+ "description": "Required field"
9779
+ }
9780
+ ],
9781
+ "events": [
9782
+ {
9783
+ "name": "change",
9784
+ "description": "Emitted when a radio is selected. detail: { values: string[], labels: string[], originalEvent?: Event }",
9785
+ "type": {
9786
+ "text": "CustomEvent"
9787
+ }
9788
+ }
9789
+ ],
9790
+ "slots": [
9791
+ {
9792
+ "name": "",
9793
+ "description": "Place `ore-radio` elements here"
9794
+ }
9795
+ ],
9796
+ "cssParts": [
9797
+ {
9798
+ "name": "items",
9799
+ "description": "Items container."
9800
+ }
9801
+ ],
9802
+ "cssProperties": [
9803
+ {
9804
+ "name": "--radio-group-direction",
9805
+ "description": "Flex direction of the items list ('row' | 'column')"
9806
+ },
9807
+ {
9808
+ "name": "--radio-group-gap",
9809
+ "description": "Gap between radio items"
9810
+ }
9811
+ ],
9812
+ "demos": [
9813
+ {
9814
+ "url": "",
9815
+ "description": "```html\n<ore-radio-group name=\"plan\" label=\"Choose a plan\" value=\"free\" required>\n <ore-radio value=\"free\">Free</ore-radio>\n <ore-radio value=\"pro\">Pro</ore-radio>\n <ore-radio value=\"enterprise\">Enterprise</ore-radio>\n</ore-radio-group>\n<ore-radio-group name=\"direction\" orientation=\"horizontal\" color=\"primary\">\n <ore-radio value=\"left\">Left</ore-radio>\n <ore-radio value=\"right\">Right</ore-radio>\n</ore-radio-group>\n```"
9816
+ }
9817
+ ]
9818
+ },
9867
9819
  {
9868
9820
  "kind": "variable",
9869
9821
  "name": "SELECT_TAG",
@@ -13125,6 +13077,14 @@
13125
13077
  }
13126
13078
  ]
13127
13079
  },
13080
+ {
13081
+ "kind": "variable",
13082
+ "name": "ORE_MENU_ITEM_TYPES",
13083
+ "type": {
13084
+ "text": "['checkbox', 'radio']"
13085
+ },
13086
+ "default": "['checkbox', 'radio']"
13087
+ },
13128
13088
  {
13129
13089
  "kind": "variable",
13130
13090
  "name": "MENU_ITEM_TAG",