Core changes: - Add @defgroup/@ingroup to 1791 C2+ contracts (555 files) for HCA 128× pre-training DSA grouping - Add §0.1 Pre-Training Frequency matrix to semantics-core - Add §VIII Attention Architecture rules (ATTN_1-4) with MLA/CSA/HCA/DSA mechanics - Add @defgroup/@ingroup to canonical syntax (§II) and all contract examples Agent prompts (5 files): - Add ZERO-STATE RATIONALE with MLA/CSA/HCA/DSA compression mechanics - Add pre-training note: @RATIONALE/@REJECTED are in-context learned tags - svelte-coder: add missing #region contract, fix Svelte rule violations - python-coder/fullstack-coder: honor function contracts from speckit plan - qa-tester: add attention compliance audit (P3 ATTN_1-4 checks) Skills (6 files): - Translate all axiom_config descriptions to English - Fix doc_dirs to index .opencode/ and .specify/ - Deduplicate 5× complexity_rules → single global_tags catalog - Reduce semantics-svelte 591→485 lines (remove duplicate code blocks) - Fix semantics-testing: 'Short IDs' → 'Short hierarchical IDs' - Fix all examples: flat IDs → hierarchical Domain.Name format - Fix Svelte examples: replace raw Tailwind + <button> with semantic tokens + /ui Speckit workflow (commands + templates): - speckit.plan: add Function-Level Contracts for C3+ with @PRE/@POST/@TEST_EDGE - speckit.plan: add Attention Compliance Gate (ATTN_1-4 before contract generation) - speckit.tasks: add function contract inlining format (constraints in task description) - speckit.specify: load semantics-core for spec density rules - spec-template: add #region contract, @SEMANTICS grouping, hierarchical IDs - ux-reference-template: add #region wrapper - plan-template: add attention gate, @defgroup/@ingroup guidance - tasks-template: add attention audit + rebuild + orphan check tasks - constitution.md: translate to English, add Principle VIII (attention-optimized contracts) Reference modules rewritten (hierarchical IDs + full contracts): - Auth.Jwt: 6 child contracts with @RATIONALE/@REJECTED/@TEST_EDGE - Api.Auth: 5 endpoints with @TEST_EDGE + molecular CoT markers - Migration.Model: @defgroup Migration with 18 @ACTION + 6 @INVARIANT Scripts: - add_defgroup_ingroup.py: zero-risk additive @ingroup migration (1791 insertions) - migrate_hierarchical.py: flat→hierarchical ID dry-run analysis (792 contracts) - merge_prompts.py: merge all prompts/skills/commands into one review file Config: - axiom_config.yaml: 749→395 lines (-47%), English, doc_dirs include prompts - Fix test_datasets.py import collision (rename → test_datasets_routes.py) - Fix test_preview.py: SupersetClient→get_superset_client, AsyncMock, logger f-string
64 lines
1.8 KiB
Svelte
64 lines
1.8 KiB
Svelte
<!-- #region Select [C:2] [TYPE Component] [SEMANTICS select, dropdown, form, atom, option] -->
|
|
<!-- @ingroup UI -->
|
|
<!-- @BRIEF Standardized select dropdown component with label and Tailwind styling. -->
|
|
<!-- @LAYER UI -->
|
|
<!--
|
|
@SEMANTICS: select, dropdown, form-field, ui-atom
|
|
@PURPOSE: Standardized dropdown selection component.
|
|
@LAYER Atom
|
|
@RELATION DEPENDS_ON -> [EXT:frontend:Utils]
|
|
|
|
@UX_STATE: Idle -> Current value is selectable from the provided options.
|
|
@UX_STATE: Disabled -> Native disabled state prevents selection changes.
|
|
-->
|
|
|
|
<script lang="ts">
|
|
// [SECTION: IMPORTS]
|
|
import { cn } from "$lib/utils.js";
|
|
// [/SECTION: IMPORTS]
|
|
|
|
// Deterministic ID counter (hydration-safe, no Math.random)
|
|
let _selectSeq = 0;
|
|
|
|
// [SECTION: PROPS]
|
|
let {
|
|
label = "",
|
|
value = $bindable(""),
|
|
options = [],
|
|
disabled = false,
|
|
id: externalId = undefined,
|
|
class: className = "",
|
|
...rest
|
|
} = $props();
|
|
|
|
const assignId = () => externalId ?? `select-${++_selectSeq}`;
|
|
let id = $state(assignId());
|
|
</script>
|
|
|
|
<!-- [SECTION: TEMPLATE] -->
|
|
<div class="flex flex-col gap-1.5 w-full">
|
|
{#if label}
|
|
<label for={id} class="text-sm font-medium text-text">
|
|
{label}
|
|
</label>
|
|
{/if}
|
|
|
|
<select
|
|
{id}
|
|
{disabled}
|
|
bind:value
|
|
class={cn(
|
|
"flex h-10 w-full rounded-md border border-border-strong bg-surface-card px-3 py-2 text-sm text-text ring-offset-white focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
className,
|
|
)}
|
|
{...rest}
|
|
>
|
|
{#each options as option}
|
|
<option value={option.value}>{option.label}</option>
|
|
{/each}
|
|
</select>
|
|
</div>
|
|
<!-- [/SECTION: TEMPLATE] -->
|
|
|
|
<!-- #endregion Select -->
|